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;
/**
* 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) {
// 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) {