]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
profile list: don't hide the collapse arrow when editting is enabled
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / MainActivity.java
index 1eb8f45832269edd5f34f31a45aff13f44163a21..f934d4d69de330432d019619c722940516bd2ac9 100644 (file)
@@ -88,9 +88,7 @@ public class MainActivity extends ProfileThemedActivity {
     DrawerLayout drawer;
     private LinearLayout profileListContainer;
     private View profileListHeadArrow, profileListHeadMore, profileListHeadCancel;
-    private LinearLayout profileListHeadMoreAndCancel;
     private FragmentManager fragmentManager;
-    private TextView tvLastUpdate;
     private RetrieveTransactionsTask retrieveTransactionsTask;
     private View bTransactionListCancelDownload;
     private ProgressBar progressBar;
@@ -98,7 +96,6 @@ public class MainActivity extends ProfileThemedActivity {
     private SectionsPagerAdapter mSectionsPagerAdapter;
     private ViewPager mViewPager;
     private FloatingActionButton fab;
-    private boolean profileModificationEnabled = false;
     private boolean profileListExpanded = false;
     private ProfilesRecyclerViewAdapter mProfileListAdapter;
     private int mCurrentPage;
@@ -122,11 +119,10 @@ public class MainActivity extends ProfileThemedActivity {
 
     }
     @Override
-    protected void onSaveInstanceState(Bundle outState) {
+    protected void onSaveInstanceState(@NotNull Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putInt(STATE_CURRENT_PAGE, mViewPager.getCurrentItem());
-        if (mAccountFilter != null)
-            outState.putString(STATE_ACC_FILTER, mAccountFilter);
+        if (mAccountFilter != null) outState.putString(STATE_ACC_FILTER, mAccountFilter);
     }
     @Override
     protected void onDestroy() {
@@ -162,9 +158,9 @@ public class MainActivity extends ProfileThemedActivity {
         profileListHeadArrow = findViewById(R.id.nav_profiles_arrow);
         profileListHeadMore = findViewById(R.id.nav_profiles_start_edit);
         profileListHeadCancel = findViewById(R.id.nav_profiles_cancel_edit);
-        profileListHeadMoreAndCancel = findViewById(R.id.nav_profile_list_head_buttons);
+        LinearLayout profileListHeadMoreAndCancel =
+                findViewById(R.id.nav_profile_list_head_buttons);
         drawer = findViewById(R.id.drawer_layout);
-        tvLastUpdate = findViewById(R.id.transactions_last_update);
         bTransactionListCancelDownload = findViewById(R.id.transaction_list_cancel_download);
         progressBar = findViewById(R.id.transaction_list_progress_bar);
         progressLayout = findViewById(R.id.transaction_progress_layout);
@@ -268,18 +264,24 @@ public class MainActivity extends ProfileThemedActivity {
         if (editingProfilesObserver == null) {
             editingProfilesObserver = (o, arg) -> {
                 if (mProfileListAdapter.isEditingProfiles()) {
-                    profileListHeadArrow.clearAnimation();
-                    profileListHeadArrow.setVisibility(View.GONE);
                     profileListHeadMore.setVisibility(View.GONE);
+                    profileListHeadMore
+                            .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_out));
                     profileListHeadCancel.setVisibility(View.VISIBLE);
+                    profileListHeadCancel
+                            .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
                 }
                 else {
-                    profileListHeadArrow.setRotation(180f);
-                    profileListHeadArrow.setVisibility(View.VISIBLE);
                     profileListHeadCancel.setVisibility(View.GONE);
+                    profileListHeadCancel
+                            .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_out));
                     profileListHeadMore.setVisibility(View.GONE);
-                    profileListHeadMore
-                            .setVisibility(profileListExpanded ? View.VISIBLE : View.GONE);
+                    if (profileListExpanded) {
+                        profileListHeadMore.setVisibility(View.VISIBLE);
+                        profileListHeadMore
+                                .startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
+                    }
+                    else profileListHeadMore.setVisibility(View.GONE);
                 }
             };
             mProfileListAdapter.addEditingProfilesObserver(editingProfilesObserver);
@@ -330,7 +332,7 @@ public class MainActivity extends ProfileThemedActivity {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) return;
 
         List<ShortcutInfo> shortcuts = new ArrayList<>();
-        try (LockHolder lh = Data.profiles.lockForReading()) {
+        try (LockHolder ignored = Data.profiles.lockForReading()) {
             for (int i = 0; i < Data.profiles.size(); i++) {
                 MobileLedgerProfile p = Data.profiles.get(i);
                 if (!p.isPostingPermitted()) continue;
@@ -526,43 +528,18 @@ public class MainActivity extends ProfileThemedActivity {
     private void showAccountSummaryFragment() {
         mViewPager.setCurrentItem(0, true);
         Data.accountFilter.setValue(null);
-//        FragmentTransaction ft = fragmentManager.beginTransaction();
-//        accountSummaryFragment = new AccountSummaryFragment();
-//        ft.replace(R.id.root_frame, accountSummaryFragment);
-//        ft.commit();
-//        currentFragment = accountSummaryFragment;
     }
     public void onLatestTransactionsClicked(View view) {
         drawer.closeDrawers();
 
         showTransactionsFragment((String) null);
     }
-    private void resetFragmentBackStack() {
-//        fragmentManager.popBackStack(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
-    }
     private void showTransactionsFragment(String accName) {
         Data.accountFilter.setValue(accName);
         mViewPager.setCurrentItem(1, true);
     }
     private void showTransactionsFragment(LedgerAccount account) {
-        showTransactionsFragment((account == null) ? (String) null : account.getName());
-//        FragmentTransaction ft = fragmentManager.beginTransaction();
-//        if (transactionListFragment == null) {
-//            debug("flow", "MainActivity creating TransactionListFragment");
-//            transactionListFragment = new TransactionListFragment();
-//        }
-//        Bundle bundle = new Bundle();
-//        if (account != null) {
-//            bundle.putString(TransactionListFragment.BUNDLE_KEY_FILTER_ACCOUNT_NAME,
-//                    account.getName());
-//        }
-//        transactionListFragment.setArguments(bundle);
-//        ft.replace(R.id.root_frame, transactionListFragment);
-//        if (account != null)
-//            ft.addToBackStack(getResources().getString(R.string.title_activity_transaction_list));
-//        ft.commit();
-//
-//        currentFragment = transactionListFragment;
+        showTransactionsFragment((account == null) ? null : account.getName());
     }
     public void showAccountTransactions(LedgerAccount account) {
         mBackMeansToAccountList = true;
@@ -676,30 +653,51 @@ public class MainActivity extends ProfileThemedActivity {
                        Data.profiles.size()));
     }
     private void collapseProfileList() {
+        boolean wasExpanded = profileListExpanded;
         profileListExpanded = false;
 
-        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) {
+        if (wasExpanded) {
+            final Animation animation = AnimationUtils.loadAnimation(this, R.anim.slide_up);
+            animation.setAnimationListener(new Animation.AnimationListener() {
+                @Override
+                public void onAnimationStart(Animation animation) {
 
-            }
-        });
-        mProfileListAdapter.stopEditingProfiles();
+                }
+                @Override
+                public void onAnimationEnd(Animation animation) {
+                    profileListContainer.setVisibility(View.GONE);
+                }
+                @Override
+                public void onAnimationRepeat(Animation animation) {
 
-        profileListContainer.startAnimation(animation);
-        profileListHeadArrow.setRotation(0f);
-        profileListHeadArrow
-                .startAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate_180_back));
-        profileListHeadMore.setVisibility(View.GONE);
+                }
+            });
+            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;
@@ -733,7 +731,7 @@ public class MainActivity extends ProfileThemedActivity {
 
                     // removing all child accounts from the view
                     int start = -1, count = 0;
-                    try (LockHolder lh = Data.accounts.lockForWriting()) {
+                    try (LockHolder ignored = Data.accounts.lockForWriting()) {
                         for (int i = 0; i < Data.accounts.size(); i++) {
                             if (acc.isParentOf(Data.accounts.get(i))) {
 //                                debug("accounts", String.format("Found a child '%s' at position %d",
@@ -771,7 +769,7 @@ public class MainActivity extends ProfileThemedActivity {
                     animator.rotationBy(-180);
                     List<LedgerAccount> children =
                             Data.profile.get().loadVisibleChildAccountsOf(acc);
-                    try (LockHolder lh = Data.accounts.lockForWriting()) {
+                    try (LockHolder ignored = Data.accounts.lockForWriting()) {
                         int parentPos = Data.accounts.indexOf(acc);
                         if (parentPos != -1) {
                             // may have disappeared in a concurrent refresh operation
@@ -798,7 +796,7 @@ public class MainActivity extends ProfileThemedActivity {
 
     public class SectionsPagerAdapter extends FragmentPagerAdapter {
 
-        public SectionsPagerAdapter(FragmentManager fm) {
+        SectionsPagerAdapter(FragmentManager fm) {
             super(fm);
         }