]> git.ktnx.net Git - mobile-ledger.git/commitdiff
reorganize main activity layout to let the CoordinatorLayout do its job with the...
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 3 May 2020 19:27:41 +0000 (22:27 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 3 May 2020 19:27:41 +0000 (22:27 +0300)
also leads to a cleaner situation on new installs - no drawer until a
profile is created

app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
app/src/main/res/layout/activity_main.xml
app/src/main/res/layout/main_app_layout.xml [new file with mode: 0644]
app/src/main/res/layout/main_navigation.xml
app/src/main/res/layout/no_profiles.xml

index bc481a6de20a319008b42dba06f39509a73d1956..a193996103381e3a61fa9af5c49ef012ebe14f88 100644 (file)
@@ -37,6 +37,7 @@ import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.app.ActionBarDrawerToggle;
 import androidx.appcompat.widget.Toolbar;
 import androidx.core.view.GravityCompat;
@@ -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);
 
index 61592e84179582ccd098b586877a2fff38862271..9c4bcb908043ecc0a6727c7214617c87bd6786d4 100644 (file)
   ~ You should have received a copy of the GNU General Public License
   ~ along with MoLe. If not, see <https://www.gnu.org/licenses/>.
   -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:theme="@style/AppTheme.AppBarOverlay"
-    tools:context=".ui.activity.MainActivity">
+    android:layout_height="match_parent">
 
-    <androidx.appcompat.widget.Toolbar
-        android:id="@+id/toolbar"
-        android:layout_width="match_parent"
-        android:layout_height="?attr/actionBarSize"
-        android:background="?colorPrimary"
-        app:popupTheme="@style/AppTheme.PopupOverlay" />
+    <include layout="@layout/loading" />
 
-    <androidx.drawerlayout.widget.DrawerLayout
-        android:id="@+id/drawer_layout"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:openDrawer="start">
+    <include
+        layout="@layout/no_profiles"
+        android:visibility="gone" />
 
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-            <include layout="@layout/loading" />
-
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:visibility="gone"
-                android:id="@+id/pager_layout"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-                <com.google.android.material.floatingactionbutton.FloatingActionButton
-                    android:id="@+id/btn_add_transaction"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="bottom|end"
-                    android:layout_margin="@dimen/fab_margin"
-                    app:backgroundTint="?colorAccent"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:maxImageSize="36dp"
-                    app:srcCompat="@drawable/ic_add_white_24dp" />
-
-                <LinearLayout
-                    android:id="@+id/main_header"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent">
-
-                    <LinearLayout
-                        android:id="@+id/transactions_last_update_layout"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:elevation="24dp"
-                        android:orientation="horizontal">
-
-                        <TextView
-                            android:id="@+id/transaction_last_update_label"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:paddingStart="8dp"
-                            android:paddingEnd="8dp"
-                            android:text="@string/transactions_last_update_label"
-                            android:textColor="@android:color/tertiary_text_light" />
-
-                        <TextView
-                            android:id="@+id/transactions_last_update"
-                            style="@android:style/Widget.DeviceDefault.Light.TextView"
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:text="\?"
-                            android:textColor="@android:color/tertiary_text_light"
-                            tools:ignore="HardcodedText" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:id="@+id/transaction_progress_layout"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="center_vertical"
-                        android:orientation="horizontal"
-                        android:visibility="gone">
-
-                        <ProgressBar
-                            android:id="@+id/transaction_list_progress_bar"
-                            style="?android:attr/progressBarStyleHorizontal"
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="-8dp"
-                            android:layout_marginBottom="-7dp"
-                            android:layout_weight="1"
-                            android:indeterminate="true"
-                            android:padding="0dp"
-                            android:progressTint="?colorPrimary"
-                            app:layout_constraintEnd_toEndOf="parent"
-                            app:layout_constraintStart_toStartOf="parent" />
-
-                        <TextView
-                            android:id="@+id/transaction_list_cancel_download"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/ic_clear_black_24dp"
-                            android:clickable="true"
-                            android:focusable="true"
-                            android:onClick="onStopTransactionRefreshClick" />
-                    </LinearLayout>
-
-                </LinearLayout>
-
-                <androidx.viewpager.widget.ViewPager
-                    android:id="@+id/root_frame"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/main_header">
-
-                </androidx.viewpager.widget.ViewPager>
-
-                <View
-                    android:layout_width="0dp"
-                    android:layout_height="4dp"
-                    android:background="@drawable/drop_shadow"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@id/main_header" />
-
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <include layout="@layout/no_profiles" />
-        </androidx.constraintlayout.widget.ConstraintLayout>
-
-        <include layout="@layout/main_navigation" />
-
-    </androidx.drawerlayout.widget.DrawerLayout>
-</LinearLayout>
+    <include
+        layout="@layout/main_app_layout"
+        android:visibility="gone" />
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/main_app_layout.xml b/app/src/main/res/layout/main_app_layout.xml
new file mode 100644 (file)
index 0000000..86e9187
--- /dev/null
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright © 2020 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
+  ~ the Free Software Foundation, either version 3 of the License, or
+  ~ (at your opinion), any later version.
+  ~
+  ~ MoLe is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  ~ GNU General Public License terms for details.
+  ~
+  ~ You should have received a copy of the GNU General Public License
+  ~ along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+  -->
+
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/main_app_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:theme="@style/AppTheme.AppBarOverlay"
+    tools:context=".ui.activity.MainActivity">
+
+
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/btn_add_transaction"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|end"
+        android:layout_margin="@dimen/fab_margin"
+        app:backgroundTint="?colorAccent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:maxImageSize="36dp"
+        app:srcCompat="@drawable/ic_add_white_24dp" />
+
+    <androidx.drawerlayout.widget.DrawerLayout
+        android:id="@+id/drawer_layout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:openDrawer="start">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/pager_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <androidx.appcompat.widget.Toolbar
+                android:id="@+id/toolbar"
+                android:layout_width="match_parent"
+                android:layout_height="?attr/actionBarSize"
+                android:background="?colorPrimary"
+                app:popupTheme="@style/AppTheme.PopupOverlay"
+                app:layout_constraintTop_toTopOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"/>
+
+            <LinearLayout
+                android:id="@+id/main_header"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@id/toolbar">
+
+                <LinearLayout
+                    android:id="@+id/transactions_last_update_layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:elevation="24dp"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:id="@+id/transaction_last_update_label"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:paddingStart="8dp"
+                        android:paddingEnd="8dp"
+                        android:text="@string/transactions_last_update_label"
+                        android:textColor="@android:color/tertiary_text_light" />
+
+                    <TextView
+                        android:id="@+id/transactions_last_update"
+                        style="@android:style/Widget.DeviceDefault.Light.TextView"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="\?"
+                        android:textColor="@android:color/tertiary_text_light"
+                        tools:ignore="HardcodedText" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/transaction_progress_layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:visibility="gone">
+
+                    <ProgressBar
+                        android:id="@+id/transaction_list_progress_bar"
+                        style="?android:attr/progressBarStyleHorizontal"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="-8dp"
+                        android:layout_marginBottom="-7dp"
+                        android:layout_weight="1"
+                        android:indeterminate="true"
+                        android:padding="0dp"
+                        android:progressTint="?colorPrimary"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent" />
+
+                    <TextView
+                        android:id="@+id/transaction_list_cancel_download"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/ic_clear_accent_24dp"
+                        android:clickable="true"
+                        android:focusable="true"
+                        android:onClick="onStopTransactionRefreshClick" />
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <androidx.viewpager.widget.ViewPager
+                android:id="@+id/root_frame"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/main_header">
+
+            </androidx.viewpager.widget.ViewPager>
+
+            <View
+                android:layout_width="0dp"
+                android:layout_height="4dp"
+                android:background="@drawable/drop_shadow"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@id/main_header" />
+
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+        <include layout="@layout/main_navigation" />
+
+    </androidx.drawerlayout.widget.DrawerLayout>
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
index fb30743c8420a1711e2d20247499b911d995d352..afbd199aa9034e6f09cc7f55dbc64bdee86c92ec 100644 (file)
@@ -23,8 +23,7 @@
     android:layout_height="match_parent"
     android:layout_gravity="start"
     android:fitsSystemWindows="true"
-    android:theme="@style/ThemeOverlay.AppCompat.Light"
-    tools:showIn="@layout/activity_main">
+    android:theme="@style/ThemeOverlay.AppCompat.Light">
 
 
     <androidx.constraintlayout.widget.ConstraintLayout
                             android:layout_height="wrap_content"
                             android:isScrollContainer="false"
                             android:nestedScrollingEnabled="false"
-                            android:orientation="vertical"
-                            android:paddingStart="0dp">
+                            android:orientation="vertical">
 
                         </androidx.recyclerview.widget.RecyclerView>
 
index a072d151dffc1fefe8f958237fb62645234c24f1..8a7049616bdf2b99a44f4de4752d46b1b6b49f0e 100644 (file)
@@ -21,7 +21,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="?table_row_dark_bg"
-    android:visibility="gone">
+    android:visibility="visible">
 
     <FrameLayout
         android:id="@+id/welcome_header"
@@ -78,6 +78,7 @@
             android:layout_marginEnd="8dp"
             android:layout_marginBottom="8dp"
             android:backgroundTint="?colorAccent"
+            android:textColor="@color/design_default_color_on_primary"
             android:drawablePadding="16dp"
             android:text="@string/create_profile_label"
             app:layout_constraintBottom_toBottomOf="parent"