]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
fix new transaction (+) fab appearing when returning to the app while the drawer...
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / MainActivity.java
index 21ed55884181b8814a5e8e33fd358f4134e770c5..27cc9eba6b68a98e0496130899c8d5cc2a7ae781 100644 (file)
@@ -36,8 +36,8 @@ import android.view.animation.AnimationUtils;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
-import android.widget.Toast;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.app.ActionBarDrawerToggle;
 import androidx.appcompat.widget.Toolbar;
 import androidx.core.view.GravityCompat;
@@ -50,6 +50,7 @@ import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewpager.widget.ViewPager;
 
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.google.android.material.snackbar.Snackbar;
 
 import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.async.DbOpQueue;
@@ -184,6 +185,23 @@ public class MainActivity extends ProfileThemedActivity {
             drawer.addDrawerListener(barDrawerToggle);
         }
         barDrawerToggle.syncState();
+        drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
+            @Override
+            public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
+                if (slideOffset > 0.2)
+                    fabHide();
+            }
+            @Override
+            public void onDrawerOpened(@NonNull View drawerView) {
+                fabHide();
+            }
+            @Override
+            public void onDrawerClosed(@NonNull View drawerView) {
+                fabShouldShow();
+            }
+            @Override
+            public void onDrawerStateChanged(int newState) {}
+        });
 
 
         try {
@@ -364,18 +382,18 @@ public class MainActivity extends ProfileThemedActivity {
             // profiles not yet loaded from DB
             findViewById(R.id.loading_layout).setVisibility(View.VISIBLE);
             findViewById(R.id.no_profiles_layout).setVisibility(View.GONE);
-            findViewById(R.id.pager_layout).setVisibility(View.GONE);
+            findViewById(R.id.main_app_layout).setVisibility(View.GONE);
             return;
         }
 
         if (newList.isEmpty()) {
             findViewById(R.id.no_profiles_layout).setVisibility(View.VISIBLE);
-            findViewById(R.id.pager_layout).setVisibility(View.GONE);
+            findViewById(R.id.main_app_layout).setVisibility(View.GONE);
             findViewById(R.id.loading_layout).setVisibility(View.GONE);
             return;
         }
 
-        findViewById(R.id.pager_layout).setVisibility(View.VISIBLE);
+        findViewById(R.id.main_app_layout).setVisibility(View.VISIBLE);
         findViewById(R.id.no_profiles_layout).setVisibility(View.GONE);
         findViewById(R.id.loading_layout).setVisibility(View.GONE);
 
@@ -597,8 +615,8 @@ public class MainActivity extends ProfileThemedActivity {
             TransactionListViewModel.scheduleTransactionListReload();
         }
         else
-            Toast.makeText(this, error, Toast.LENGTH_LONG)
-                 .show();
+            Snackbar.make(mViewPager, error, Snackbar.LENGTH_LONG)
+                    .show();
     }
     public void onRetrieveStart() {
         ProgressBar progressBar = findViewById(R.id.transaction_list_progress_bar);
@@ -634,7 +652,7 @@ public class MainActivity extends ProfileThemedActivity {
         }
     }
     public void fabShouldShow() {
-        if ((profile != null) && profile.isPostingPermitted())
+        if ((profile != null) && profile.isPostingPermitted() && !drawer.isOpen())
             fab.show();
     }
     public void fabHide() {