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;
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;
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);
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);
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) {
// data sets below
return;
}
- collapseProfileList();
drawer.closeDrawers();
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();
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"
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"
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" />
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"