From b004d9b3d148a28ca29bc6c2f042a6ab9f4c9366 Mon Sep 17 00:00:00 2001 From: Niki Date: Fri, 28 Jun 2024 11:53:16 +0900 Subject: [PATCH] =?UTF-8?q?=E8=A6=AA=E3=81=AE=E5=90=8D=E5=89=8D=E5=87=BA?= =?UTF-8?q?=E3=81=97=E3=81=9F=E3=82=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 1 - .../feature/parent/ChildListAdapter.java | 49 +++++++++++++++++++ .../feature/parent/ParentAdapter.java | 3 ++ .../feature/parent/ParentMainFragment.java | 19 +++++++ .../main/res/layout/add_task_list_dialog.xml | 11 ++++- .../src/main/res/layout/select_child_list.xml | 17 +++++++ feature/setting/build.gradle | 1 + .../feature/setting/SettingMainFragment.java | 32 +++++++++++- .../main/res/layout/fragment_setting_main.xml | 20 ++++++-- gradle/libs.versions.toml | 2 + 10 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 feature/parent/src/main/java/one/nem/kidshift/feature/parent/ChildListAdapter.java create mode 100644 feature/parent/src/main/res/layout/select_child_list.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 0ad17cb..8978d23 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ChildListAdapter.java b/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ChildListAdapter.java new file mode 100644 index 0000000..a36f5af --- /dev/null +++ b/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ChildListAdapter.java @@ -0,0 +1,49 @@ +package one.nem.kidshift.feature.parent; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.chip.Chip; + +import java.util.List; + +import one.nem.kidshift.model.ChildModel; +import one.nem.kidshift.model.tasks.TaskItemModel; + +public class ChildListAdapter extends RecyclerView.Adapter { + + private final List childDataList; + + ChildListAdapter(List childDataList) { + this.childDataList = childDataList; + } + + static class MainViewHolder extends RecyclerView.ViewHolder { + CheckBox childname; + + MainViewHolder(@NonNull View itemView) { + super(itemView); + childname = itemView.findViewById(R.id.childname); + } + } + + @NonNull + @Override + public MainViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){ + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.select_child_list,parent,false); + return new MainViewHolder(view); + } + + public void onBindViewHolder(@NonNull MainViewHolder holder,int position){ + ChildModel childData = this.childDataList.get(position); + holder.childname.setText(childData.getDisplayName()); + } + + @Override + public int getItemCount(){ return childDataList.size();} +} diff --git a/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentAdapter.java b/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentAdapter.java index afcb2de..32447db 100644 --- a/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentAdapter.java +++ b/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentAdapter.java @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.List; +import one.nem.kidshift.model.ChildModel; import one.nem.kidshift.model.tasks.TaskItemModel; public class ParentAdapter extends RecyclerView.Adapter { @@ -18,6 +19,8 @@ public class ParentAdapter extends RecyclerView.Adapter taskDataList) { this.taskDataList = taskDataList; } + + static class MainViewHolder extends RecyclerView.ViewHolder{ TextView taskTitle; TextView taskContents; diff --git a/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentMainFragment.java b/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentMainFragment.java index 628bf6f..7ce3b8a 100644 --- a/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentMainFragment.java +++ b/feature/parent/src/main/java/one/nem/kidshift/feature/parent/ParentMainFragment.java @@ -18,7 +18,9 @@ import java.util.List; import javax.inject.Inject; import dagger.hilt.android.AndroidEntryPoint; +import one.nem.kidshift.data.ChildData; import one.nem.kidshift.data.TaskData; +import one.nem.kidshift.model.ChildModel; import one.nem.kidshift.model.tasks.TaskItemModel; import one.nem.kidshift.utils.KSLogger; @@ -29,6 +31,8 @@ public class ParentMainFragment extends Fragment { KSLogger ksLogger; @Inject TaskData taskData; + @Inject + ChildData childData; public ParentMainFragment() { // Required empty public constructor @@ -53,10 +57,25 @@ public class ParentMainFragment extends Fragment { RecyclerView.Adapter mainAdapter = new ParentAdapter(task); recyclerView.setAdapter(mainAdapter); + + //お手伝い追加ダイアログ LayoutInflater inflater1 = requireActivity().getLayoutInflater(); View view1 = inflater1.inflate(R.layout.add_task_list_dialog,null); + //子供選択表示 + RecyclerView recyclerView1 = view1.findViewById(R.id.taskchild); + + recyclerView1.setHasFixedSize(true); + + RecyclerView.LayoutManager layoutManager1 = new LinearLayoutManager(getContext()); + recyclerView1.setLayoutManager(layoutManager1); + + List child = childData.getChildList(); + + RecyclerView.Adapter mainAdapter1 = new ChildListAdapter(child); + recyclerView1.setAdapter(mainAdapter1); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext()); builder.setTitle("お手伝い名追加") .setView(view1) diff --git a/feature/parent/src/main/res/layout/add_task_list_dialog.xml b/feature/parent/src/main/res/layout/add_task_list_dialog.xml index 4e78929..933bc67 100644 --- a/feature/parent/src/main/res/layout/add_task_list_dialog.xml +++ b/feature/parent/src/main/res/layout/add_task_list_dialog.xml @@ -24,11 +24,20 @@ android:layout_height="wrap_content" android:layout_marginTop="15dp" android:ems="10" - android:inputType="number" android:hint="金額を入力" + android:inputType="number" android:textSize="20dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/taskname" /> + + \ No newline at end of file diff --git a/feature/parent/src/main/res/layout/select_child_list.xml b/feature/parent/src/main/res/layout/select_child_list.xml new file mode 100644 index 0000000..89bb73b --- /dev/null +++ b/feature/parent/src/main/res/layout/select_child_list.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/feature/setting/build.gradle b/feature/setting/build.gradle index 7f894dd..247f8e3 100644 --- a/feature/setting/build.gradle +++ b/feature/setting/build.gradle @@ -32,6 +32,7 @@ dependencies { implementation libs.material implementation libs.navigation.fragment implementation libs.navigation.ui + implementation libs.swiperefreshlayout testImplementation libs.junit androidTestImplementation libs.ext.junit androidTestImplementation libs.espresso.core diff --git a/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingMainFragment.java b/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingMainFragment.java index e09b134..a03613f 100644 --- a/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingMainFragment.java +++ b/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingMainFragment.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; @@ -88,9 +89,38 @@ public class SettingMainFragment extends Fragment { //親の名前、アドレス表示 ParentModel parent = parentData.getParent("poiuytrew"); - //RecyclerViewの処理 + + + View view = inflater.inflate(R.layout.fragment_setting_main, container, false); + // Pull-to-refresh(スワイプで更新) + SwipeRefreshLayout swipeRefreshLayout = view.findViewById(R.id.swipe_refresh_layout); + swipeRefreshLayout.setOnRefreshListener(() ->{ + + TextView username = view.findViewById(R.id.username); + TextView useradress = view.findViewById(R.id.useradress); + + username.setText(parent.getDisplayName()); + useradress.setText(parent.getEmail()); + + RecyclerView recyclerView = view.findViewById(R.id.childrecyclerview); + + recyclerView.setHasFixedSize(true); + + RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext()); + recyclerView.setLayoutManager(layoutManager); + + List child = childData.getChildList(); + + RecyclerView.Adapter mainAdapter = new SettingAdapter(child); + recyclerView.setAdapter(mainAdapter); + + swipeRefreshLayout.setRefreshing(false); + + }); + + //RecyclerViewの処理 TextView username = view.findViewById(R.id.username); TextView useradress = view.findViewById(R.id.useradress); diff --git a/feature/setting/src/main/res/layout/fragment_setting_main.xml b/feature/setting/src/main/res/layout/fragment_setting_main.xml index 3a5c9c7..4affa6f 100644 --- a/feature/setting/src/main/res/layout/fragment_setting_main.xml +++ b/feature/setting/src/main/res/layout/fragment_setting_main.xml @@ -1,10 +1,23 @@ - + tools:context=".SettingMainFragment" + android:id="@+id/swipe_refresh_layout"> + + + + + + + + + + @@ -87,4 +100,5 @@ app:layout_constraintStart_toStartOf="parent" /> - \ No newline at end of file + + \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8278c18..5a45870 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,6 +9,7 @@ material = "1.12.0" activity = "1.9.0" constraintlayout = "2.1.4" nav = "2.7.7" +swiperefreshlayout = "1.1.0" [libraries] gson = { module = "com.google.code.gson:gson", version.ref = "gson" } @@ -26,6 +27,7 @@ com-google-dagger-hilt-compiler = { group="com.google.dagger", name="hilt-compil navigation-fragment = { group="androidx.navigation", name="navigation-fragment", version.ref="nav"} navigation-ui = { group="androidx.navigation", name="navigation-ui", version.ref="nav"} navigation-dynamic-features-fragment = { group="androidx.navigation", name="navigation-dynamic-features-fragment", version.ref="nav"} +swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "swiperefreshlayout" } [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" }