]> git.ktnx.net Git - mobile-ledger.git/commitdiff
reorganization of profile list
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 5 May 2019 12:53:47 +0000 (15:53 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 5 May 2019 12:53:47 +0000 (15:53 +0300)
always visible, gear icon too

add profile icon appears only when editing the profile list

the idea is that switching profiles is the main action to perform when the
drawer is open, so no need to hide it behind a collapsible list

adding a profile is still a second level action, hidden behind the gead icon

app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
app/src/main/res/layout/main_navigation.xml
app/src/main/res/layout/nav_profile_list_head.xml

index bbc8fa79428b42c9d29d2fbe3c1255d57eacf09a..00b26525ad59597ba54febf31e1295d56001ba41 100644 (file)
@@ -32,7 +32,6 @@ import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewPropertyAnimator;
-import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
@@ -89,8 +88,7 @@ public class MainActivity extends ProfileThemedActivity {
     private static final String PREF_THEME_ID = "themeId";
     public AccountSummaryFragment mAccountSummaryFragment;
     DrawerLayout drawer;
-    private LinearLayout profileListContainer;
-    private View profileListHeadArrow, profileListHeadMore, profileListHeadCancel;
+    private View profileListHeadMore, profileListHeadCancel, profileListHeadAddProfile;
     private FragmentManager fragmentManager;
     private View bTransactionListCancelDownload;
     private ProgressBar progressBar;
@@ -157,12 +155,11 @@ public class MainActivity extends ProfileThemedActivity {
         setContentView(R.layout.activity_main);
 
         fab = findViewById(R.id.btn_add_transaction);
-        profileListContainer = findViewById(R.id.nav_profile_list_container);
-        profileListHeadArrow = findViewById(R.id.nav_profiles_arrow);
         profileListHeadMore = findViewById(R.id.nav_profiles_start_edit);
         profileListHeadCancel = findViewById(R.id.nav_profiles_cancel_edit);
         LinearLayout profileListHeadMoreAndCancel =
                 findViewById(R.id.nav_profile_list_head_buttons);
+        profileListHeadAddProfile = findViewById(R.id.nav_new_profile_button);
         drawer = findViewById(R.id.drawer_layout);
         bTransactionListCancelDownload = findViewById(R.id.transaction_list_cancel_download);
         progressBar = findViewById(R.id.transaction_list_progress_bar);
@@ -267,18 +264,20 @@ public class MainActivity extends ProfileThemedActivity {
                     profileListHeadCancel.setVisibility(View.VISIBLE);
                     profileListHeadCancel
                             .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
+                    profileListHeadAddProfile.setVisibility(View.VISIBLE);
+                    profileListHeadAddProfile
+                            .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
                 }
                 else {
                     profileListHeadCancel.setVisibility(View.GONE);
                     profileListHeadCancel
                             .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_out));
-                    profileListHeadMore.setVisibility(View.GONE);
-                    if (profileListExpanded) {
-                        profileListHeadMore.setVisibility(View.VISIBLE);
-                        profileListHeadMore
-                                .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
-                    }
-                    else profileListHeadMore.setVisibility(View.GONE);
+                    profileListHeadMore.setVisibility(View.VISIBLE);
+                    profileListHeadMore
+                            .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
+                    profileListHeadAddProfile.setVisibility(View.GONE);
+                    profileListHeadAddProfile
+                            .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_out));
                 }
             };
             mProfileListAdapter.addEditingProfilesObserver(editingProfilesObserver);
@@ -294,20 +293,6 @@ public class MainActivity extends ProfileThemedActivity {
         profileListHeadMoreAndCancel
                 .setOnClickListener((v) -> mProfileListAdapter.flipEditingProfiles());
 
-        if (drawerListener == null) {
-            drawerListener = new DrawerLayout.SimpleDrawerListener() {
-                @Override
-                public void onDrawerClosed(View drawerView) {
-                    super.onDrawerClosed(drawerView);
-                    collapseProfileList();
-                }
-            };
-            drawer.addDrawerListener(drawerListener);
-        }
-
-        findViewById(R.id.nav_profile_list_head_layout)
-                .setOnClickListener(this::navProfilesHeadClicked);
-        findViewById(R.id.nav_profiles_label).setOnClickListener(this::navProfilesHeadClicked);
         setupProfile();
     }
     private void scheduleDataRetrievalIfStale(Date lastUpdate) {
@@ -395,7 +380,6 @@ public class MainActivity extends ProfileThemedActivity {
             // data sets below
             return;
         }
-        collapseProfileList();
 
         drawer.closeDrawers();
 
@@ -614,75 +598,6 @@ public class MainActivity extends ProfileThemedActivity {
     public void fabHide() {
         fab.hide();
     }
-    public void navProfilesHeadClicked(View view) {
-        if (profileListExpanded) {
-            collapseProfileList();
-        }
-        else {
-            expandProfileList();
-        }
-    }
-    private void expandProfileList() {
-        profileListExpanded = true;
-
-
-        profileListContainer.setVisibility(View.VISIBLE);
-        profileListContainer.startAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_down));
-        profileListHeadArrow.startAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate_180));
-        profileListHeadMore.setVisibility(View.VISIBLE);
-        profileListHeadMore.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
-        final ArrayList<MobileLedgerProfile> profiles = Data.profiles.getValue();
-        findViewById(R.id.nav_profile_list).setMinimumHeight(
-                (int) (getResources().getDimension(R.dimen.thumb_row_height) *
-                       (profiles != null ? profiles.size() : 0)));
-    }
-    private void collapseProfileList() {
-        boolean wasExpanded = profileListExpanded;
-        profileListExpanded = false;
-
-        if (wasExpanded) {
-            final Animation animation = AnimationUtils.loadAnimation(this, R.anim.slide_up);
-            animation.setAnimationListener(new Animation.AnimationListener() {
-                @Override
-                public void onAnimationStart(Animation animation) {
-
-                }
-                @Override
-                public void onAnimationEnd(Animation animation) {
-                    profileListContainer.setVisibility(View.GONE);
-                }
-                @Override
-                public void onAnimationRepeat(Animation animation) {
-
-                }
-            });
-            mProfileListAdapter.stopEditingProfiles();
-
-            profileListContainer.startAnimation(animation);
-            profileListHeadArrow.setRotation(0f);
-            profileListHeadArrow
-                    .startAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate_180_back));
-            final Animation moreAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_out);
-            moreAnimation.setAnimationListener(new Animation.AnimationListener() {
-                @Override
-                public void onAnimationStart(Animation animation) {
-                }
-                @Override
-                public void onAnimationEnd(Animation animation) {
-                    profileListHeadMore.setVisibility(View.GONE);
-                }
-                @Override
-                public void onAnimationRepeat(Animation animation) {
-                }
-            });
-            profileListHeadMore.startAnimation(moreAnimation);
-        }
-        else {
-            profileListContainer.setVisibility(View.GONE);
-            profileListHeadArrow.setRotation(0f);
-            profileListHeadMore.setVisibility(View.GONE);
-        }
-    }
     public void onAccountSummaryRowViewClicked(View view) {
         ViewGroup row;
         if (view.getId() == R.id.account_expander) row = (ViewGroup) view.getParent().getParent();
index 25a8f93f5f0f06f502c4b8fe6de01343a89dafed..14c2eccd4e9c2185a74ba358843a4a57d13ba71b 100644 (file)
                         android:layout_height="wrap_content"
                         android:animateLayoutChanges="true"
                         android:nestedScrollingEnabled="false"
-                        android:orientation="vertical"
-                        android:visibility="gone">
+                        android:orientation="vertical">
 
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/nav_profile_list"
 
                         </androidx.recyclerview.widget.RecyclerView>
 
-                        <include layout="@layout/nav_profile_list_new_profile_row" />
                     </LinearLayout>
 
                 </LinearLayout>
index 5bd0f4a0d32197e00451c4fb054a968d2d7bb7ec..97550331ab2a5cbdacf7435244814f8dfee520f1 100644 (file)
     android:layout_height="@dimen/thumb_row_height">
 
     <ImageView
-        android:id="@+id/nav_profiles_arrow"
+        android:id="@+id/nav_new_profile_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:background="@drawable/ic_expand_more_black_24dp"
-        android:gravity="start|center_vertical"
+        android:layout_gravity="center"
+        android:paddingStart="8dp"
+        android:paddingEnd="8dp"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toStartOf="@id/nav_profile_list_head_buttons"
         app:layout_constraintStart_toEndOf="@id/nav_profiles_label"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:srcCompat="@drawable/ic_add_circle_white_24dp" />
 
     <LinearLayout
         android:id="@+id/nav_profile_list_head_buttons"
@@ -50,6 +54,8 @@
             android:layout_height="wrap_content"
             android:background="@drawable/ic_clear_black_24dp"
             android:gravity="end|center_vertical"
+            android:paddingStart="8dp"
+            android:paddingEnd="8dp"
             android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
@@ -61,7 +67,8 @@
             android:layout_height="wrap_content"
             android:background="@drawable/ic_settings_black_24dp"
             android:gravity="end|center_vertical"
-            android:visibility="gone"
+            android:paddingStart="8dp"
+            android:paddingEnd="8dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -73,7 +80,6 @@
         style="@style/nav_button"
         android:layout_width="wrap_content"
         android:layout_height="0dp"
-        android:drawableStart="@drawable/ic_view_list_black_24dp"
         android:gravity="start|center_vertical"
         android:text="@string/profiles"
         app:layout_constraintBottom_toBottomOf="parent"