diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/AnimationJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/AnimationJson.java index 8391ebc..5908e7a 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/AnimationJson.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/AnimationJson.java @@ -15,4 +15,10 @@ public AnimationJson() { } + public String getAnimationName(){return this.animationName;} + + public ArrayList getEditor(){return this.editors;} + + + } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java index 8d669ba..d10fa07 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java @@ -4,9 +4,15 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.LinearLayout; +import android.widget.ListView; import android.widget.TextView; +import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.FragmentHomeBinding; +import org.ntlab.acanthus_client.entities.Animation; +import org.ntlab.acanthus_client.entities.AnimationJson; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -14,11 +20,14 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import java.util.Collection; + public class HomeFragment extends Fragment { private HomeViewModel homeViewModel; private FragmentHomeBinding binding; + @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { homeViewModel = @@ -27,6 +36,11 @@ binding = FragmentHomeBinding.inflate(inflater, container, false); View root = binding.getRoot(); + ListView listView = binding.option; + Collection animationJsons = null; + BaseAdapter adapter = new ListAnimationViewAdapter(this.getActivity().getApplicationContext(), R.layout.animation_home, animationJsons); + listView.setAdapter(adapter); + final TextView textView = binding.textHome; homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { @Override @@ -37,6 +51,9 @@ return root; } + public void onCreateAnimationView(Animation animation){ + } + @Override public void onDestroyView() { super.onDestroyView(); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/ListAnimationViewAdapter.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/ListAnimationViewAdapter.java new file mode 100644 index 0000000..70e14e7 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/ListAnimationViewAdapter.java @@ -0,0 +1,95 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.home; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.TextView; + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.entities.Animation; +import org.ntlab.acanthus_client.entities.AnimationJson; +import org.ntlab.acanthus_client.entities.Editor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.HashSet; + +public class ListAnimationViewAdapter extends BaseAdapter { + + static class ViewHolder{ + TextView animationName; + TextView editorsName; + TextView LastUpDate; + } + + private LayoutInflater inflater; + private int itemLayoutId; + private ArrayList titles; + private ArrayList> animationEditors; + + ListAnimationViewAdapter(Context context, int itemLayoutId, + Collection animationJsons) { + super(); + int i = 0; + this.inflater = (LayoutInflater) + context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.itemLayoutId = itemLayoutId; + for(AnimationJson animationJson: animationJsons){ + this.titles.add(animationJson.getAnimationName()); + ArrayList editors = new ArrayList<>(); + for(Editor editor: animationJson.getEditor()){ + editors.add(editor.getEditorAccount().getName()); + } + animationEditors.add(editors); + } + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + // 最初だけ View を inflate して、それを再利用する + if (convertView == null) { + // activity_main.xml に list.xml を inflate して convertView とする + convertView = inflater.inflate(itemLayoutId, parent, false); + // ViewHolder を生成 + holder = new ViewHolder(); + holder.animationName = convertView.findViewById(R.id.animationName); + holder.editorsName = convertView.findViewById(R.id.editorsName); + holder.LastUpDate = convertView.findViewById(R.id.lastUpDate); + convertView.setTag(holder); + } + // holder を使って再利用 + else { + holder = (ViewHolder) convertView.getTag(); + } + + // holder の imageView にセット + holder.animationName.setText(titles.get(position)); + // 現在の position にあるファイル名リストを holder の textView にセット + for(String ed : animationEditors.get(position)){ + holder.editorsName.setText(ed); + + } + + return convertView; + } + + @Override + public int getCount() { + return 0; + } + + @Override + public Object getItem(int i) { + return null; + } + + @Override + public long getItemId(int i) { + return 0; + } + +} diff --git a/app/src/main/res/layout/animation_home.xml b/app/src/main/res/layout/animation_home.xml new file mode 100644 index 0000000..c9bf824 --- /dev/null +++ b/app/src/main/res/layout/animation_home.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index dd4ed2f..89c3db1 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -68,6 +68,17 @@ android:layout_height="wrap_content" android:text="LastUpDate: 00:00:00" /> + + + + +