X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FMainActivity.java;h=64a30812437677d3a8ea349e9f1cb1004c12e2b5;hp=3c9a6798a11110a034c4cb01a2af71bb4d21ff2b;hb=831ffd898c61c728d860f908e1dec288ae4060a3;hpb=541deb95e67eac219de586058419bb89cd6134a1 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 3c9a6798..64a30812 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 @@ -46,6 +46,7 @@ import net.ktnx.mobileledger.ui.account_summary.AccountSummaryFragment; import net.ktnx.mobileledger.ui.profiles.ProfileDetailFragment; import net.ktnx.mobileledger.ui.profiles.ProfilesRecyclerViewAdapter; import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment; +import net.ktnx.mobileledger.ui.transaction_list.TransactionListViewModel; import net.ktnx.mobileledger.utils.Colors; import net.ktnx.mobileledger.utils.MLDB; @@ -66,12 +67,13 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; -public class MainActivity extends CrashReportingActivity { +public class MainActivity extends ProfileThemedActivity { private static final String STATE_CURRENT_PAGE = "current_page"; private static final String BUNDLE_SAVED_STATE = "bundle_savedState"; DrawerLayout drawer; private LinearLayout profileListContainer; - private View profileListHeadArrow; + private View profileListHeadArrow, profileListHeadMore, profileListHeadCancel; + private LinearLayout profileListHeadMoreAndCancel; private FragmentManager fragmentManager; private TextView tvLastUpdate; private RetrieveTransactionsTask retrieveTransactionsTask; @@ -89,7 +91,6 @@ public class MainActivity extends CrashReportingActivity { protected void onStart() { super.onStart(); - Data.lastUpdateDate.set(null); updateLastUpdateTextFromDB(); Date lastUpdate = Data.lastUpdateDate.get(); @@ -114,9 +115,14 @@ public class MainActivity extends CrashReportingActivity { setContentView(R.layout.activity_main); + setupProfile(); + 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); + 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); @@ -241,28 +247,40 @@ public class MainActivity extends CrashReportingActivity { mProfileListAdapter.addEditingProfilesObserver(new Observer() { @Override public void update(Observable o, Object arg) { - final View profilesArrow = findViewById(R.id.nav_profiles_arrow); if (mProfileListAdapter.isEditingProfiles()) { - profilesArrow.clearAnimation(); - profilesArrow.setVisibility(View.GONE); -// findViewById(R.id.nav_profiles_arrow).setAlpha(0f); - findViewById(R.id.nav_profiles_cancel_edit).setVisibility(View.VISIBLE); + profileListHeadArrow.clearAnimation(); + profileListHeadArrow.setVisibility(View.GONE); + profileListHeadMore.setVisibility(View.GONE); + profileListHeadCancel.setVisibility(View.VISIBLE); } else { - profilesArrow.setVisibility(View.VISIBLE); -// findViewById(R.id.nav_profiles_arrow).setAlpha(1f); - findViewById(R.id.nav_profiles_cancel_edit).setVisibility(View.GONE); + profileListHeadArrow.setRotation(180f); + profileListHeadArrow.setVisibility(View.VISIBLE); + profileListHeadCancel.setVisibility(View.GONE); + profileListHeadMore.setVisibility(View.GONE); + profileListHeadMore + .setVisibility(profileListExpanded ? View.VISIBLE : View.GONE); } } }); - findViewById(R.id.nav_profiles_cancel_edit).setOnClickListener((v) -> { - mProfileListAdapter.stopEditingProfiles(); - }); LinearLayoutManager llm = new LinearLayoutManager(this); llm.setOrientation(RecyclerView.VERTICAL); root.setLayoutManager(llm); + + profileListHeadMore.setOnClickListener((v) -> mProfileListAdapter.flipEditingProfiles()); + profileListHeadCancel.setOnClickListener((v) -> mProfileListAdapter.flipEditingProfiles()); + profileListHeadMoreAndCancel + .setOnClickListener((v) -> mProfileListAdapter.flipEditingProfiles()); + + drawer.addDrawerListener(new DrawerLayout.SimpleDrawerListener() { + @Override + public void onDrawerClosed(View drawerView) { + super.onDrawerClosed(drawerView); + collapseProfileList(); + } + }); } private void profileThemeChanged() { setupProfileColors(); @@ -275,11 +293,6 @@ public class MainActivity extends CrashReportingActivity { intent.putExtra(BUNDLE_SAVED_STATE, bundle); startActivity(intent); } - @Override - protected void onResume() { - super.onResume(); - setupProfile(); - } public void startEditProfileActivity(MobileLedgerProfile profile) { Intent intent = new Intent(this, ProfileDetailActivity.class); Bundle args = new Bundle(); @@ -426,6 +439,7 @@ public class MainActivity extends CrashReportingActivity { updateLastUpdateTextFromDB(); new RefreshDescriptionsTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + TransactionListViewModel.scheduleTransactionListReload(); } else Toast.makeText(this, error, Toast.LENGTH_LONG).show(); } @@ -475,6 +489,11 @@ public class MainActivity extends CrashReportingActivity { 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)); + findViewById(R.id.nav_profile_list).setMinimumHeight( + (int) (getResources().getDimension(R.dimen.thumb_row_height) * + Data.profiles.size())); } private void collapseProfileList() { profileListExpanded = false; @@ -494,11 +513,13 @@ public class MainActivity extends CrashReportingActivity { } }); + mProfileListAdapter.stopEditingProfiles(); + profileListContainer.startAnimation(animation); + profileListHeadArrow.setRotation(0f); profileListHeadArrow .startAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate_180_back)); - - mProfileListAdapter.stopEditingProfiles(); + profileListHeadMore.setVisibility(View.GONE); } public void onProfileRowClicked(View v) { Data.setCurrentProfile((MobileLedgerProfile) v.getTag()); @@ -520,7 +541,7 @@ public class MainActivity extends CrashReportingActivity { for (int i = 0; i < profileList.getChildCount(); i++) { View aRow = profileList.getChildAt(i); aRow.findViewById(R.id.profile_list_edit_button).setVisibility(View.GONE); - aRow.findViewById(R.id.profile_list_rearrange_handle).setVisibility(View.GONE); + aRow.findViewById(R.id.profile_list_rearrange_handle).setVisibility(View.INVISIBLE); } // FIXME disable rearranging