From 42a7a36fcd870c6bd22d1a407f51ff0ea3ca5260 Mon Sep 17 00:00:00 2001 From: Damyan Ivanov Date: Sun, 5 May 2019 15:53:47 +0300 Subject: [PATCH] reorganization of profile list 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 --- .../ui/activity/MainActivity.java | 107 ++---------------- app/src/main/res/layout/main_navigation.xml | 4 +- .../main/res/layout/nav_profile_list_head.xml | 18 ++- 3 files changed, 24 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java index bbc8fa79..00b26525 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java @@ -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 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(); diff --git a/app/src/main/res/layout/main_navigation.xml b/app/src/main/res/layout/main_navigation.xml index 25a8f93f..14c2eccd 100644 --- a/app/src/main/res/layout/main_navigation.xml +++ b/app/src/main/res/layout/main_navigation.xml @@ -149,8 +149,7 @@ android:layout_height="wrap_content" android:animateLayoutChanges="true" android:nestedScrollingEnabled="false" - android:orientation="vertical" - android:visibility="gone"> + android:orientation="vertical"> - diff --git a/app/src/main/res/layout/nav_profile_list_head.xml b/app/src/main/res/layout/nav_profile_list_head.xml index 5bd0f4a0..97550331 100644 --- a/app/src/main/res/layout/nav_profile_list_head.xml +++ b/app/src/main/res/layout/nav_profile_list_head.xml @@ -23,14 +23,18 @@ android:layout_height="@dimen/thumb_row_height"> + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/ic_add_circle_white_24dp" /> @@ -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" -- 2.39.5