diff --git a/app/build.gradle b/app/build.gradle index 29f1e302..f31e3a97 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ android { shrinkResources true debuggable false multiDexEnabled false - proguardFile 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { applicationIdSuffix '.debug' @@ -66,8 +66,8 @@ dependencies { implementation 'com.github.nuclearfog:LinkAndScrollMovement:1.4.1' implementation 'com.github.kyleduo:SwitchButton:2.0.3-SNAPSHOT' implementation 'com.github.UnifiedPush:android-connector:2.1.1' - implementation 'com.google.android.material:material:1.9.0' + implementation 'com.google.android.material:material:1.10.0' implementation 'jp.wasabeef:picasso-transformations:2.4.0' implementation 'net.danlew:android.joda:2.12.5' implementation 'org.jsoup:jsoup:1.16.1' -} \ No newline at end of file +} diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/fragments/ListFragment.java b/app/src/main/java/org/nuclearfog/twidda/ui/fragments/ListFragment.java index 7ec5553c..1dc557e7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/fragments/ListFragment.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/fragments/ListFragment.java @@ -50,6 +50,8 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener private RecyclerView list; private SwipeRefreshLayout reload; + + private ItemViewModel viewModel; protected GlobalSettings settings; private boolean enableSwipe = true; @@ -66,7 +68,7 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener list.setLayoutManager(new LinearLayoutManager(requireContext())); AppStyles.setSwipeRefreshColor(reload, settings); - ItemViewModel viewModel = new ViewModelProvider(requireActivity()).get(ItemViewModel.class); + viewModel = new ViewModelProvider(requireActivity()).get(ItemViewModel.class); viewModel.getSelectedItem().observe(getViewLifecycleOwner(), this); reload.setOnRefreshListener(this); @@ -74,6 +76,13 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener } + @Override + public void onDestroyView() { + viewModel.getSelectedItem().removeObserver(this); + super.onDestroyView(); + } + + @Override public final void onRefresh() { onReload(); diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/views/LockableConstraintLayout.java b/app/src/main/java/org/nuclearfog/twidda/ui/views/LockableConstraintLayout.java index 54e6845d..ab267356 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/views/LockableConstraintLayout.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/views/LockableConstraintLayout.java @@ -40,8 +40,8 @@ public class LockableConstraintLayout extends ConstraintLayout { case MotionEvent.ACTION_SCROLL: case MotionEvent.ACTION_MOVE: float deltaY = ev.getAxisValue(MotionEvent.AXIS_Y) - yPos; - // detect scroll down, then aquire scroll lock - if (!yLock && deltaY < 0.0f && callback != null) { + // detect swipe up, then aquire scroll lock + if (deltaY < 0.0f && callback != null) { yLock = callback.aquireVerticalScrollLock(); } // fall through