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;
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 {
// 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);
~ 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
--- /dev/null
+<?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
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>
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"
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"