import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
+import android.os.Looper;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.view.ViewPropertyAnimator;
});
}
public void showFab() {
- if (wantedFabState == FAB_SHOWN)
+ if (wantedFabState == FAB_SHOWN) {
+// Logger.debug("fab", "Ignoring request to show already visible FAB");
return;
+ }
// b.btnAddTransaction.show();
if (this.fabSlideAnimator != null) {
fab.clearAnimation();
}
+ Logger.debug("fab", "Showing FAB");
wantedFabState = FAB_SHOWN;
slideFabTo(0, 200L,
com.google.android.material.animation.AnimationUtils.LINEAR_OUT_SLOW_IN_INTERPOLATOR);
}
public void hideFab() {
- if (wantedFabState == FAB_HIDDEN)
+ if (wantedFabState == FAB_HIDDEN) {
+// Logger.debug("fab", "Ignoring request to hide FAB -- already hidden");
return;
+ }
calcVerticalFabOffset();
fab.clearAnimation();
}
+ Logger.debug("fab", "Hiding FAB");
wantedFabState = FAB_HIDDEN;
slideFabTo(fabVerticalOffset, 150L,
com.google.android.material.animation.AnimationUtils.FAST_OUT_LINEAR_IN_INTERPOLATOR);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- Logger.debug("touch", "Scrolled " + dy);
+// Logger.debug("touch", "Scrolled " + dy);
if (dy <= 0) {
showFab();
}
generation++;
int thisGeneration = generation;
fabHandler.hideManagedFab();
- new Handler().postDelayed(() -> {
+ new Handler(Looper.getMainLooper()).postDelayed(() -> {
if (generation != thisGeneration)
return;