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=982fccfa4512f86a0e90fe7e18597f279dd94c48;hp=09099732f89f7325ef3dd61f0d87f9e637224a32;hb=5288da587233a9203d4abcaf7840dc62db2fb294;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..982fccfa 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,53 @@ public class ProfileDetailActivity extends AppCompatActivity { // http://developer.android.com/guide/components/fragments.html // if (savedInstanceState == null) { + final String profileUUID = + getIntent().getStringExtra(ProfileDetailFragment.ARG_ITEM_ID); + + if (profileUUID != null) { + int i = 0; + for (MobileLedgerProfile p : Data.profiles.getList()) { + if (p.getUuid().equals(profileUUID)) { + Log.d("profiles", String.format("found profile %s at %d", profileUUID, i)); + profile = p; + break; + } + i++; + } + if (profile == null) throw new AssertionError( + String.format("Can't get profile " + "(uuid:%s) from the " + "global list", + profileUUID)); + } + // 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.putString(ProfileDetailFragment.ARG_ITEM_ID, profileUUID); 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("deleting profile %s", profile.getUuid())); + profile.removeFromDB(); + Data.profiles.remove(profile); + Data.profile.set(Data.profiles.get(0)); + finish(); + return true; + }); + + menuDeleteProfile.setVisible((profile != null) && (Data.profiles.size() > 1)); + + return true; + } @Override public boolean onOptionsItemSelected(MenuItem item) {