X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FProfileDetailActivity.java;h=1bc17ec4278f2e335284524e88b522855c867a22;hp=4536e0d91f66aa6d22f1d6a48fadf6f64e9d9bad;hb=c434526b687162a4ebf4c268e521404e2b58fcc7;hpb=017aa3e990667845af1513ede2db282c4c03b991 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileDetailActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileDetailActivity.java index 4536e0d9..1bc17ec4 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileDetailActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileDetailActivity.java @@ -19,16 +19,21 @@ package net.ktnx.mobileledger.ui.activity; import android.os.Bundle; import android.view.Menu; +import android.view.MenuItem; import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.Toolbar; +import androidx.lifecycle.ViewModelProvider; import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.profiles.ProfileDetailFragment; +import net.ktnx.mobileledger.ui.profiles.ProfileDetailModel; import net.ktnx.mobileledger.utils.Colors; +import org.jetbrains.annotations.NotNull; + import java.util.ArrayList; import java.util.Locale; @@ -43,6 +48,10 @@ import static net.ktnx.mobileledger.utils.Logger.debug; public class ProfileDetailActivity extends CrashReportingActivity { private MobileLedgerProfile profile = null; private ProfileDetailFragment mFragment; + @NotNull + private ProfileDetailModel getModel() { + return new ViewModelProvider(this).get(ProfileDetailModel.class); + } @Override protected void onCreate(Bundle savedInstanceState) { final int index = getIntent().getIntExtra(ProfileDetailFragment.ARG_ITEM_ID, -1); @@ -57,16 +66,25 @@ public class ProfileDetailActivity extends CrashReportingActivity { index)); debug("profiles", String.format(Locale.ENGLISH, "Editing profile %s (%s); hue=%d", - profile.getName(), profile.getUuid(), profile.getThemeId())); + profile.getName(), profile.getUuid(), profile.getThemeHue())); } } super.onCreate(savedInstanceState); - Colors.setupTheme(this, profile); + int themeHue; + if (profile != null) + themeHue = profile.getThemeHue(); + else { + themeHue = Colors.getNewProfileThemeHue(Data.profiles.getValue()); + } + Colors.setupTheme(this, themeHue); + final ProfileDetailModel model = getModel(); + model.initialThemeHue = themeHue; setContentView(R.layout.activity_profile_detail); Toolbar toolbar = findViewById(R.id.detail_toolbar); setSupportActionBar(toolbar); + // Show the Up button in the action bar. ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { @@ -87,6 +105,7 @@ public class ProfileDetailActivity extends CrashReportingActivity { // using a fragment transaction. Bundle arguments = new Bundle(); arguments.putInt(ProfileDetailFragment.ARG_ITEM_ID, index); + arguments.putInt(ProfileDetailFragment.ARG_HUE, themeHue); mFragment = new ProfileDetailFragment(); mFragment.setArguments(arguments); getSupportFragmentManager().beginTransaction() @@ -103,5 +122,12 @@ public class ProfileDetailActivity extends CrashReportingActivity { return true; } - + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == android.R.id.home) { + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } }