X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailActivity.java;h=23d22f55007db84c65b75e30dac187032d058d75;hb=b4d5812942fdb2ca89c9f048e539c4c65a8994cf;hp=09099732f89f7325ef3dd61f0d87f9e637224a32;hpb=3b365016042215dd73cb4600840aa8199b8322b9;p=mobile-ledger-staging.git
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..23d22f55 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
@@ -1,18 +1,18 @@
/*
* Copyright © 2019 Damyan Ivanov.
- * This file is part of Mobile-Ledger.
- * Mobile-Ledger is free software: you can distribute it and/or modify it
+ * This file is part of MoLe.
+ * MoLe is free software: you can distribute it and/or modify it
* under the term of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your opinion), any later version.
*
- * Mobile-Ledger is distributed in the hope that it will be useful,
+ * MoLe is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License terms for details.
*
* You should have received a copy of the GNU General Public License
- * along with Mobile-Ledger. If not, see .
+ * along with MoLe. If not, see .
*/
package net.ktnx.mobileledger.ui.profiles;
@@ -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) {