]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/MobileLedgerListFragment.java
more pronounced day/month delimiters in the transaction list
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / MobileLedgerListFragment.java
index b7cafca484a8cfb98271212ae01256046122e0f3..658ce66b9b8b13252787c5539f3ff65b7384a13c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2019 Damyan Ivanov.
+ * Copyright © 2021 Damyan Ivanov.
  * This file is part of MoLe.
  * MoLe is free software: you can distribute it and/or modify it
  * under the term of the GNU General Public License as published by
 
 package net.ktnx.mobileledger.ui;
 
-import android.view.MotionEvent;
-
 import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.RecyclerView;
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import net.ktnx.mobileledger.ui.activity.MainActivity;
 import net.ktnx.mobileledger.ui.transaction_list.TransactionListAdapter;
 import net.ktnx.mobileledger.utils.Colors;
-import net.ktnx.mobileledger.utils.DimensionUtils;
 
-public class MobileLedgerListFragment extends Fragment {
-    public SwipeRefreshLayout swiper;
+public abstract class MobileLedgerListFragment extends Fragment {
     public TransactionListAdapter modelAdapter;
-    protected MainActivity mActivity;
-    protected RecyclerView root;
+    public abstract SwipeRefreshLayout getRefreshLayout();
+    @NonNull
+    public MainActivity getMainActivity() {
+        return (MainActivity) requireActivity();
+    }
     protected void themeChanged(Integer counter) {
-        swiper.setColorSchemeColors(Colors.getSwipeCircleColors());
+        getRefreshLayout().setColorSchemeColors(Colors.getSwipeCircleColors());
     }
     public void onBackgroundTaskRunningChanged(Boolean isRunning) {
-        if (mActivity == null)
+        if (getActivity() == null)
             return;
-        if (swiper == null)
+        SwipeRefreshLayout l = getRefreshLayout();
+        if (l == null)
             return;
-        swiper.setRefreshing(isRunning);
-    }
-    protected void manageFabOnScroll() {
-        int triggerPixels = DimensionUtils.dp2px(mActivity, 30f);
-        root.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
-            private float upAnchor = -1;
-            private float downAnchor = -1;
-            private float lastY;
-            @Override
-            public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
-                switch (e.getActionMasked()) {
-                    case MotionEvent.ACTION_DOWN:
-                        lastY = upAnchor = downAnchor = e.getAxisValue(MotionEvent.AXIS_Y);
-                        break;
-                    case MotionEvent.ACTION_MOVE:
-                        final float currentY = e.getAxisValue(MotionEvent.AXIS_Y);
-                        if (currentY > lastY) {
-                            // swipe down
-                            upAnchor = lastY;
-
-                            mActivity.fabShouldShow();
-                        }
-                        else {
-                            // swipe up
-                            downAnchor = lastY;
-
-                            if (currentY < upAnchor - triggerPixels)
-                                mActivity.fabHide();
-                        }
-
-                        lastY = currentY;
-
-                        break;
-                }
-                return false;
-            }
-            @Override
-            public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
-            }
-            @Override
-            public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
-            }
-        });
+        l.setRefreshing(isRunning);
     }
 }