keep the new transaction FAB hidden when the profile doesn't permit new transactions
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 27 Jan 2019 18:19:09 +0000 (20:19 +0200)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 27 Jan 2019 18:19:09 +0000 (20:19 +0200)
app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryFragment.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java

index 0944d1f..6ce84c7 100644 (file)
@@ -144,12 +144,12 @@ public class AccountSummaryFragment extends MobileLedgerListFragment {
                     }
                 }));
 
-        fab.show();
+        mActivity.fabShouldShow();
         root.addOnScrollListener(new RecyclerView.OnScrollListener() {
             @Override
             public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                 if (fab != null) {
-                    if (dy < 0) fab.show();
+                    if (dy < 0) mActivity.fabShouldShow();
                     if (dy > 0) fab.hide();
                 }
             }
index f8bb6ce..83b608b 100644 (file)
@@ -22,6 +22,7 @@ import android.content.pm.PackageInfo;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.ColorInt;
+import android.support.design.widget.FloatingActionButton;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
@@ -62,6 +63,7 @@ public class MainActivity extends AppCompatActivity {
     private LinearLayout progressLayout;
     private SectionsPagerAdapter mSectionsPagerAdapter;
     private ViewPager mViewPager;
+    private FloatingActionButton fab;
 
     @Override
     protected void onStart() {
@@ -87,6 +89,7 @@ public class MainActivity extends AppCompatActivity {
         setContentView(R.layout.activity_main);
         Toolbar toolbar = findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);
+        fab = findViewById(R.id.btn_add_transaction);
 
         Data.profile.addObserver((o, arg) -> {
             MobileLedgerProfile profile = Data.profile.get();
@@ -94,6 +97,8 @@ public class MainActivity extends AppCompatActivity {
                 if (profile == null) setTitle(R.string.app_name);
                 else setTitle(profile.getName());
                 updateLastUpdateTextFromDB();
+                if (profile.isPostingPermitted()) fab.show();
+                else fab.hide();
             });
         });
 
@@ -383,5 +388,8 @@ public class MainActivity extends AppCompatActivity {
             return 2;
         }
     }
-
+    public void fabShouldShow() {
+        MobileLedgerProfile profile = Data.profile.get();
+        if (profile.isPostingPermitted()) fab.show();
+    }
 }
index 6610c3b..1f6fbda 100644 (file)
@@ -149,11 +149,11 @@ public class TransactionListFragment extends MobileLedgerListFragment {
 
         FloatingActionButton fab = mActivity.findViewById(R.id.btn_add_transaction);
 
-        fab.show();
+        mActivity.fabShouldShow();
         root.addOnScrollListener(new RecyclerView.OnScrollListener() {
             @Override
             public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-                if (dy < 0) fab.show();
+                if (dy < 0) mActivity.fabShouldShow();
                 if (dy > 0) fab.hide();
             }
         });