diff options
author | Docile-Alligator <chineseperson5@gmail.com> | 2022-03-14 06:15:44 +0000 |
---|---|---|
committer | Docile-Alligator <chineseperson5@gmail.com> | 2022-03-14 06:15:44 +0000 |
commit | cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5 (patch) | |
tree | 6956c2038edeb78bfde19ec97350ae5141c5e9fc | |
parent | 3cae2b0dbadfcc109f8e7f52170722c664638d1f (diff) | |
download | infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.tar infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.tar.gz infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.tar.bz2 infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.tar.lz infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.tar.xz infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.tar.zst infinity-for-reddit-cfd295aea8a5a1f6ba460fa25f972c1e4cc523e5.zip |
Version 5.1.9-beta2. Optimize AppBarStateChangeListener.
-rw-r--r-- | app/build.gradle | 4 | ||||
-rw-r--r-- | app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java | 12 |
2 files changed, 11 insertions, 5 deletions
diff --git a/app/build.gradle b/app/build.gradle index 779678fc..0cf2ae1c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { applicationId "ml.docilealligator.infinityforreddit" minSdkVersion 21 targetSdkVersion 30 - versionCode 94 - versionName "5.1.9-beta1" + versionCode 95 + versionName "5.1.9-beta2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java index dffd958c..43e11941 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java @@ -4,15 +4,21 @@ import com.google.android.material.appbar.AppBarLayout; public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener { private AppBarStateChangeListener.State mCurrentState = AppBarStateChangeListener.State.IDLE; + private int lastOffset = -1; @Override - public final void onOffsetChanged(AppBarLayout appBarLayout, int i) { - if (i == 0) { + public final void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { + if (lastOffset == verticalOffset) { + return; + } + lastOffset = verticalOffset; + + if (verticalOffset == 0) { if (mCurrentState != AppBarStateChangeListener.State.EXPANDED) { onStateChanged(appBarLayout, AppBarStateChangeListener.State.EXPANDED); } mCurrentState = AppBarStateChangeListener.State.EXPANDED; - } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) { + } else if (Math.abs(verticalOffset) >= appBarLayout.getTotalScrollRange()) { if (mCurrentState != AppBarStateChangeListener.State.COLLAPSED) { onStateChanged(appBarLayout, AppBarStateChangeListener.State.COLLAPSED); } |