X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailActivity.java;h=1db1429acfd78b2c9c398008c4c0518b7f3d3af9;hp=09099732f89f7325ef3dd61f0d87f9e637224a32;hb=b06a7a291e35add2dfc89313d226c5efd1bae3b3;hpb=3b365016042215dd73cb4600840aa8199b8322b9 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailActivity.java index 09099732..1db1429a 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailActivity.java @@ -21,13 +21,17 @@ import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; -import android.support.v7.widget.Toolbar; -import android.view.View; -import android.support.v7.app.AppCompatActivity; import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.Menu; import android.view.MenuItem; +import android.view.View; import net.ktnx.mobileledger.R; +import net.ktnx.mobileledger.model.Data; +import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.activity.ProfileListActivity; /** @@ -37,15 +41,15 @@ import net.ktnx.mobileledger.ui.activity.ProfileListActivity; * in a {@link ProfileListActivity}. */ public class ProfileDetailActivity extends AppCompatActivity { - + private MobileLedgerProfile profile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_profile_detail); - Toolbar toolbar = (Toolbar) findViewById(R.id.detail_toolbar); + Toolbar toolbar = findViewById(R.id.detail_toolbar); setSupportActionBar(toolbar); - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + FloatingActionButton fab = findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -70,17 +74,47 @@ public class ProfileDetailActivity extends AppCompatActivity { // http://developer.android.com/guide/components/fragments.html // if (savedInstanceState == null) { + final int index = getIntent().getIntExtra(ProfileDetailFragment.ARG_ITEM_ID, -1); + + if (index != -1) { + profile = Data.profiles.get(index); + if (profile == null) throw new AssertionError( + String.format("Can't get profile " + "(index:%d) from the global list", + index)); + } + // Create the detail fragment and add it to the activity // using a fragment transaction. Bundle arguments = new Bundle(); - arguments.putString(ProfileDetailFragment.ARG_ITEM_ID, - getIntent().getStringExtra(ProfileDetailFragment.ARG_ITEM_ID)); + arguments.putInt(ProfileDetailFragment.ARG_ITEM_ID, index); ProfileDetailFragment fragment = new ProfileDetailFragment(); fragment.setArguments(arguments); getSupportFragmentManager().beginTransaction() .add(R.id.profile_detail_container, fragment).commit(); } } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + Log.d("profiles", "[activity] Creating profile details options menu"); + getMenuInflater().inflate(R.menu.profile_details, menu); + MenuItem menuDeleteProfile = menu.findItem(R.id.menuDelete); + menuDeleteProfile.setOnMenuItemClickListener(item -> { + Log.d("profiles", String.format("[activity] deleting profile %s", profile.getUuid())); + profile.removeFromDB(); + Data.profiles.remove(profile); + if (Data.profile.get().equals(profile)) { + Log.d("profiles", "[activity] selecting profile 0"); + Data.setCurrentProfile(Data.profiles.get(0)); + } + finish(); + return true; + }); + + menuDeleteProfile.setVisible((profile != null) && (Data.profiles.size() > 1)); + + return true; + } @Override public boolean onOptionsItemSelected(MenuItem item) {