From 6769397484015359044a29a475fddae40d141fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Tue, 9 Jul 2024 15:01:26 +0900 Subject: [PATCH] =?UTF-8?q?=E6=8C=99=E5=8B=95=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/common/CommonHomeFragment.java | 123 +++++++++--------- 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/feature/common/src/main/java/one/nem/kidshift/feature/common/CommonHomeFragment.java b/feature/common/src/main/java/one/nem/kidshift/feature/common/CommonHomeFragment.java index d2dffef..f580c03 100644 --- a/feature/common/src/main/java/one/nem/kidshift/feature/common/CommonHomeFragment.java +++ b/feature/common/src/main/java/one/nem/kidshift/feature/common/CommonHomeFragment.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import androidx.core.view.MenuHost; import androidx.core.view.MenuProvider; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Lifecycle; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -80,6 +81,7 @@ public class CommonHomeFragment extends Fragment { private KSLogger logger; CompactCalendarView compactCalendarView; + View calendarContainer; SwipeRefreshLayout swipeRefreshLayout; TaskListItemAdapter taskListItemAdapter; TextView calendarTitleTextView; @@ -140,6 +142,7 @@ public class CommonHomeFragment extends Fragment { RecyclerView taskListRecyclerView = view.findViewById(R.id.taskListRecyclerView); taskListRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); taskListRecyclerView.setAdapter(taskListItemAdapter); + taskListRecyclerView.setItemViewCacheSize(10); recyclerViewAnimUtils.setSlideUpAnimation(taskListRecyclerView); swipeRefreshLayout = view.findViewById(R.id.swipeRefreshLayout); @@ -148,63 +151,7 @@ public class CommonHomeFragment extends Fragment { calendarTitleTextView = view.findViewById(R.id.calendarTitleTextView); calendarPrevButton = view.findViewById(R.id.calendarPrevButton); calendarNextButton = view.findViewById(R.id.calendarNextButton); - - initCalender(); - - MenuHost menuHost = requireActivity(); - menuHost.addMenuProvider(new MenuProvider() { - @Override - public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { - menu.clear(); - menuInflater.inflate(R.menu.common_home_toolbar_menu, menu); - } - - @Override - public boolean onMenuItemSelected(@NonNull MenuItem menuItem) { - if (menuItem.getItemId() == R.id.toggle_calendar) { - View calendarContainer = view.findViewById(R.id.calendarContainer); - if (calendarContainer.getVisibility() == View.VISIBLE) { - Animation slideUp = AnimationUtils.loadAnimation(getContext(), one.nem.kidshift.shared.R.anim.slide_up); - calendarContainer.startAnimation(slideUp); - slideUp.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - recyclerViewRefresh(); - } - - @Override - public void onAnimationEnd(Animation animation) { - calendarContainer.setVisibility(View.GONE); - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - }); - } else { - Animation slideDown = AnimationUtils.loadAnimation(getContext(), one.nem.kidshift.shared.R.anim.slide_down); - calendarContainer.startAnimation(slideDown); - slideDown.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - calendarContainer.setVisibility(View.VISIBLE); - recyclerViewRefresh(); - } - - @Override - public void onAnimationEnd(Animation animation) { - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - }); - } - return true; - } - return false; - } - }); + calendarContainer = view.findViewById(R.id.calendarContainer); initCalender(); updateData(); @@ -268,6 +215,62 @@ public class CommonHomeFragment extends Fragment { toolBarManager.setTitle("KidShift"); toolBarManager.setSubtitle("保護者ビュー - タスク一覧"); } + MenuHost menuHost = requireActivity(); + + menuHost.invalidateMenu(); + menuHost.addMenuProvider(new MenuProvider() { + @Override + public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { + logger.debug("onCreateMenu, インフレート"); + menu.clear(); + menuInflater.inflate(R.menu.common_home_toolbar_menu, menu); + } + + @Override + public boolean onMenuItemSelected(@NonNull MenuItem menuItem) { + if (menuItem.getItemId() == R.id.toggle_calendar) { + if (calendarContainer.getVisibility() == View.VISIBLE) { + Animation slideUp = AnimationUtils.loadAnimation(getContext(), one.nem.kidshift.shared.R.anim.slide_up); + calendarContainer.startAnimation(slideUp); + slideUp.setAnimationListener(new Animation.AnimationListener() { + @Override + public void onAnimationStart(Animation animation) { + recyclerViewRefresh(); + } + + @Override + public void onAnimationEnd(Animation animation) { + calendarContainer.setVisibility(View.GONE); + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + }); + } else { + Animation slideDown = AnimationUtils.loadAnimation(getContext(), one.nem.kidshift.shared.R.anim.slide_down); + calendarContainer.startAnimation(slideDown); + slideDown.setAnimationListener(new Animation.AnimationListener() { + @Override + public void onAnimationStart(Animation animation) { + calendarContainer.setVisibility(View.VISIBLE); + recyclerViewRefresh(); + } + + @Override + public void onAnimationEnd(Animation animation) { + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + }); + } + return true; + } + return false; + } + }, this.getViewLifecycleOwner(), Lifecycle.State.RESUMED); } @@ -347,9 +350,11 @@ public class CommonHomeFragment extends Fragment { } }).thenAccept(taskItemModel -> { requireActivity().runOnUiThread(() -> { - taskListItemAdapter.notifyItemRangeRemoved(0, taskListItemAdapter.getItemCount()); +// taskListItemAdapter.notifyItemRangeRemoved(0, taskListItemAdapter.getItemCount()); +// taskListItemAdapter.setTaskItemModelList(taskItemModel); +// taskListItemAdapter.notifyItemRangeInserted(0, taskItemModel.size()); taskListItemAdapter.setTaskItemModelList(taskItemModel); - taskListItemAdapter.notifyItemRangeInserted(0, taskItemModel.size()); + taskListItemAdapter.notifyItemRangeChanged(0, taskItemModel.size()); }); }); }