From 2a3dc26794f8e0ff0a04f2f05f398aa7cb890d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 5 Jul 2024 15:44:28 +0900 Subject: [PATCH] Revert "test" This reverts commit 9694c321935912f88f50da7cc561d16c16fd47cc. --- .../feature/setting/SettingMainFragment.java | 168 ++++++++++++------ 1 file changed, 109 insertions(+), 59 deletions(-) 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 dd9c8e6..bcc16da 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 @@ -24,10 +24,7 @@ import javax.inject.Inject; import dagger.hilt.android.AndroidEntryPoint; import one.nem.kidshift.data.ChildData; -import one.nem.kidshift.data.KSActions; import one.nem.kidshift.data.ParentData; -import one.nem.kidshift.data.UserSettings; -import one.nem.kidshift.data.room.utils.CacheWrapper; import one.nem.kidshift.model.ChildModel; import one.nem.kidshift.model.ParentModel; import one.nem.kidshift.model.callback.ChildModelCallback; @@ -52,16 +49,6 @@ public class SettingMainFragment extends Fragment { @Inject FabManager fabManager; - @Inject - CacheWrapper cacheWrapper; - - @Inject - UserSettings userSettings; - - @Inject - KSActions ksActions; - - private KSLogger logger; TextView username; @@ -103,10 +90,15 @@ public class SettingMainFragment extends Fragment { } }).thenAcceptAsync(parentModel -> { - requireActivity().runOnUiThread(() -> { - username.setText(parentModel.getName() != null ? parentModel.getName() : "親の名前"); - userMailAddress.setText(parentModel.getEmail() != null ? parentModel.getEmail() : "親のアドレス"); - }); + try { + Thread.sleep(5000); // デバッグのための遅延、実際のアプリでは削除 + } catch (InterruptedException e) { + e.printStackTrace(); + } +// requireActivity().runOnUiThread(() -> { +// username.setText(parentModel.getName() != null ? parentModel.getName() : "親の名前"); +// userMailAddress.setText(parentModel.getEmail() != null ? parentModel.getEmail() : "親のアドレス"); +// }); }); } @@ -134,9 +126,9 @@ public class SettingMainFragment extends Fragment { } }).thenAcceptAsync(childModels -> { mainAdapter.setChildDataList(childModels); - requireActivity().runOnUiThread(() -> { - mainAdapter.notifyItemRangeChanged(0, childModels.size()); - }); +// requireActivity().runOnUiThread(() -> { +// mainAdapter.notifyDataSetChanged(); +// }); }); } @@ -147,20 +139,22 @@ public class SettingMainFragment extends Fragment { CompletableFuture updateParent = updateParentInfo(); CompletableFuture updateChildList = updateChildInfo(); -// swipeRefreshLayout.setRefreshing(true); + logger.debug(String.valueOf((swipeRefreshLayout == null))); + + swipeRefreshLayout.setRefreshing(true); logger.debug("アップデート開始"); - return updateParent.thenCombine(updateChildList, (res1, res2) -> null) + return updateParent.thenCombineAsync(updateChildList, (res1, res2) -> null) .thenRunAsync(() -> { -// requireActivity().runOnUiThread(() -> { -// logger.debug("アップデート完了"); -// swipeRefreshLayout.setRefreshing(false); -// }); + requireActivity().runOnUiThread(() -> { + logger.debug("アップデート完了"); + swipeRefreshLayout.setRefreshing(false); + }); }).exceptionally(e -> { -// requireActivity().runOnUiThread(() -> { -// logger.error("アップデート失敗: " + e.getMessage()); -// swipeRefreshLayout.setRefreshing(false); -// }); + requireActivity().runOnUiThread(() -> { + logger.error("アップデート失敗: " + e.getMessage()); + swipeRefreshLayout.setRefreshing(false); + }); return null; }); } @@ -174,50 +168,106 @@ public class SettingMainFragment extends Fragment { View view = inflater.inflate(R.layout.fragment_setting_main, container, false); + logger.debug("Point 2"); + + // ビューの取得 username = view.findViewById(R.id.username); userMailAddress = view.findViewById(R.id.useradress); swipeRefreshLayout = view.findViewById(R.id.swipe_refresh_layout); RecyclerView recyclerView = view.findViewById(R.id.childrecyclerview); + logger.debug("Point 3"); + // RecyclerViewの設定 RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext()); recyclerView.setLayoutManager(layoutManager); mainAdapter = new SettingAdapter(); recyclerView.setAdapter(mainAdapter); -// updateInfo().thenRun(() -> { -// logger.debug("ユーザー情報の更新完了"); -// }); + logger.debug("Point 4"); + + // ユーザー情報の更新(初回) + updateInfo().thenRun(() -> { + logger.debug("ユーザー情報の更新完了"); + }); + + logger.debug("Point 5"); + + // スワイプリフレッシュのリスナー + swipeRefreshLayout.setOnRefreshListener(() -> { + updateInfo(); // ユーザー情報の更新 + }); + + logger.debug("Point 6"); + + // ダイアログの設定 + LayoutInflater dialogInflater = requireActivity().getLayoutInflater(); + + View addChildDialogView = dialogInflater.inflate(R.layout.fragment_login_dialog_view, null); + + View childListItemView = inflater.inflate(R.layout.list_item_child_name_list, container, false); + + logger.debug("Point 7"); + + mainAdapter.setLoginButtonCallback(childId -> { + 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.show(); + }); + + logger.debug("Point 8"); + + logger.debug("Point 9"); + + logger.debug("Point 10"); + + // ダイアログの表示 + + if (!fabManager.isShown()) fabManager.show(); + + fabManager.setFabEventCallback(new FabEventCallback() { + @Override + public void onClicked() { + //子供の名前追加のダイアログ + View dialogView = dialogInflater.inflate(R.layout.add_child_list_dialog, null); + new MaterialAlertDialogBuilder(requireContext()) + .setTitle("お子様の名前を入力してください。") + .setView(dialogView) + .setPositiveButton("追加", (dialog, which) -> { + ChildModel childModel = new ChildModel(); + childModel.setName(Objects.requireNonNull(((TextView) dialogView.findViewById(R.id.childNameEditText)).getText()).toString()); + childData.addChild(childModel).thenAccept(childModel1 -> { // Debug + logger.debug("子供を追加しました: " + childModel1.getName()); + }).thenRun(() -> { + updateChildInfo(); + }); + }) + .setNeutralButton("閉じる", (dialog, which) -> { + dialog.cancel(); + }).show(); + } + + @Override + public void onLongClicked() { + // Do nothing + } + }); + + logger.debug("Point 11"); return view; } - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - - super.onViewCreated(view, savedInstanceState); - -// ksActions.syncChildList().thenAcceptAsync(childList -> { -// mainAdapter.setChildDataList(childList); -// requireActivity().runOnUiThread(() -> { -// mainAdapter.notifyDataSetChanged(); -// }); -// }); - - cacheWrapper.getChildList().thenAcceptAsync(childList -> { - mainAdapter.setChildDataList(childList); - requireActivity().runOnUiThread(() -> { -// mainAdapter.notifyDataSetChanged(); - }); - }); - - CompletableFuture.supplyAsync(() -> userSettings.getCache().getParent()).thenAcceptAsync(parentModel -> { - requireActivity().runOnUiThread(() -> { - username.setText(parentModel.getName() != null ? parentModel.getName() : "親の名前"); - userMailAddress.setText(parentModel.getEmail() != null ? parentModel.getEmail() : "親のアドレス"); - }); - }); - } @Override public void onResume() { super.onResume();