From 0474b4455b6d5a2cc0f50cee3cd24b4556d0b1f6 Mon Sep 17 00:00:00 2001 From: yamamoto Date: Wed, 3 Jul 2024 16:16:16 +0900 Subject: [PATCH] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=81=AELoginDialog=E3=82=84?= =?UTF-8?q?=E3=82=8A=E3=81=BE=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/retrofit/KidShiftApiService.java | 2 +- .../feature/setting/SettingAdapter.java | 18 +++++ .../feature/setting/SettingMainFragment.java | 66 ++++++++++++++++--- .../res/layout/fragment_login_dialog_view.xml | 26 ++++++++ 4 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 feature/setting/src/main/res/layout/fragment_login_dialog_view.xml diff --git a/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java b/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java index 8b66f43..942ca7f 100644 --- a/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java +++ b/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java @@ -122,7 +122,7 @@ public interface KidShiftApiService { * @param id 子供ID * @return ChildLoginCodeResponse */ - @POST("/parent/child/{id}/login") + @GET("/parent/child/{id}/login") @Headers(AuthorizationInterceptor.HEADER_PLACEHOLDER) Call issueLoginCode(@Path("id") String id); diff --git a/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingAdapter.java b/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingAdapter.java index 4f3bf0c..fa84688 100644 --- a/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingAdapter.java +++ b/feature/setting/src/main/java/one/nem/kidshift/feature/setting/SettingAdapter.java @@ -4,6 +4,7 @@ import android.inputmethodservice.Keyboard; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.TextView; import androidx.annotation.NonNull; @@ -15,8 +16,14 @@ import one.nem.kidshift.model.ChildModel; public class SettingAdapter extends RecyclerView.Adapter { + public interface LoginButtonCallback { + void onLoginButtonClicked(String childId); + } + private List childDataList; + private LoginButtonCallback loginButtonCallback; + SettingAdapter() { } @@ -25,13 +32,19 @@ public class SettingAdapter extends RecyclerView.Adapter { + if (this.loginButtonCallback != null) { + this.loginButtonCallback.onLoginButtonClicked(childData.getId()); + } + }); } @Override 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 79905aa..abea035 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 @@ -12,6 +12,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -64,9 +65,10 @@ public class SettingMainFragment extends Fragment { /** * 親情報を更新する + * * @return CompletableFuture */ - private CompletableFuture updateParentInfo(){ + private CompletableFuture updateParentInfo() { return parentData.getParent(new ParentModelCallback() { @Override public void onUnchanged() { @@ -91,10 +93,11 @@ public class SettingMainFragment extends Fragment { /** * 子供情報を更新する + * * @return CompletableFuture */ @SuppressLint("NotifyDataSetChanged") - private CompletableFuture updateChildInfo(){ + private CompletableFuture updateChildInfo() { return childData.getChildList(new ChildModelCallback() { @Override public void onUnchanged() { @@ -171,19 +174,64 @@ public class SettingMainFragment extends Fragment { // ダイアログの設定 LayoutInflater dialogInflater = requireActivity().getLayoutInflater(); - View childListView = dialogInflater.inflate(R.layout.add_child_list_dialog,null); + View childListView = dialogInflater.inflate(R.layout.add_child_list_dialog, null); + View addChildDialogView = dialogInflater.inflate(R.layout.fragment_login_dialog_view, null); + + View childListItemView = inflater.inflate(R.layout.list_item_child_name_list, container, false); + + mainAdapter.setLoginButtonCallback(new SettingAdapter.LoginButtonCallback() { + @Override + public void onLoginButtonClicked(String childId) { +// Toast.makeText(getContext(), "ボタンがクリックされました(" + childId + ")", Toast.LENGTH_LONG).show(); + int loginCode = childData.issueLoginCode(childId).join(); + TextView loginCodeTextView = addChildDialogView.findViewById(R.id.loginCode); + new StringBuilder(Integer.toString(loginCode)).insert(3, "-"); + + loginCodeTextView.setText( + new StringBuilder(Integer.toString(loginCode)).insert(3, "-") + ); + + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); + builder.setTitle("ログインコード") + .setView(addChildDialogView) + .setNeutralButton("閉じる", null); + builder.create(); + +// childListItemView.findViewById(R.id.loginButton).setOnClickListener(v -> { + builder.show(); +// }); + } + }); + +// int loginCode = childData.issueLoginCode("543256").join(); +// TextView loginCodeTextView = addChildDialogView.findViewById(R.id.loginCode); +// new StringBuilder(Integer.toString(loginCode)).insert(3,"-"); +// +// loginCodeTextView.setText( +// new StringBuilder(Integer.toString(loginCode)).insert(3,"-")); + + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); + builder.setTitle("ログインコード") + .setView(addChildDialogView) + .setNeutralButton("閉じる", null); + builder.create(); +// +// childListItemView.findViewById(R.id.loginButton).setOnClickListener(v -> { +// builder.show(); +// }); + //子供の名前追加のダイアログ - MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); - builder.setTitle("お子様の名前を入力してください。") + MaterialAlertDialogBuilder addChildBuilder = new MaterialAlertDialogBuilder(requireContext()); + addChildBuilder.setTitle("お子様の名前を入力してください。") .setView(childListView) - .setPositiveButton("追加",null) - .setNeutralButton("閉じる",null); - builder.create(); + .setPositiveButton("追加", null) + .setNeutralButton("閉じる", null); + addChildBuilder.create(); // ダイアログの表示 view.findViewById(R.id.addchildname).setOnClickListener(v -> { - builder.show(); + addChildBuilder.show(); }); return view; diff --git a/feature/setting/src/main/res/layout/fragment_login_dialog_view.xml b/feature/setting/src/main/res/layout/fragment_login_dialog_view.xml new file mode 100644 index 0000000..c9e9110 --- /dev/null +++ b/feature/setting/src/main/res/layout/fragment_login_dialog_view.xml @@ -0,0 +1,26 @@ + + + + + + + + + + \ No newline at end of file