aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-04-05 22:55:32 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-04-05 22:55:32 +0200
commit5af4f6b63f366d0ece4fcab5c513036e163b1432 (patch)
treec68fe6c6c188ef3d288311f7d15c51cad06eb3e3 /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java
parentdb25433890cfc5bbf0200eb488076df23cb44866 (diff)
downloadopen-keychain-5af4f6b63f366d0ece4fcab5c513036e163b1432.tar.gz
open-keychain-5af4f6b63f366d0ece4fcab5c513036e163b1432.tar.bz2
open-keychain-5af4f6b63f366d0ece4fcab5c513036e163b1432.zip
Fix nfc, make edit activity like a modal dialog, move all menu actions into view activity
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java101
1 files changed, 28 insertions, 73 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java
index 60bababd1..6e6a7e47a 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java
@@ -31,8 +31,6 @@ import android.os.Messenger;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@@ -47,22 +45,20 @@ import com.devspark.appmsg.AppMsg;
import org.spongycastle.openpgp.PGPSecretKey;
import org.spongycastle.openpgp.PGPSecretKeyRing;
-
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.Id;
import org.sufficientlysecure.keychain.R;
+import org.sufficientlysecure.keychain.helper.ActionBarHelper;
import org.sufficientlysecure.keychain.helper.ExportHelper;
import org.sufficientlysecure.keychain.pgp.PgpConversionHelper;
import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
-import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRingData;
import org.sufficientlysecure.keychain.service.KeychainIntentService;
import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
import org.sufficientlysecure.keychain.service.PassphraseCacheService;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
-import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
import org.sufficientlysecure.keychain.ui.widget.Editor;
@@ -142,9 +138,24 @@ public class EditKeyActivity extends ActionBarActivity implements EditorListener
mExportHelper = new ExportHelper(this);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- getSupportActionBar().setIcon(android.R.color.transparent);
- getSupportActionBar().setHomeButtonEnabled(true);
+ // Inflate a "Done"/"Cancel" custom action bar view
+ ActionBarHelper.setTwoButtonView(getSupportActionBar(),
+ R.string.btn_save, R.drawable.ic_action_save,
+ new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ // Save
+ saveClicked();
+ }
+ }, R.string.menu_key_edit_cancel, R.drawable.ic_action_cancel,
+ new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ // Cancel
+ cancelClicked();
+ }
+ }
+ );
mUserIds = new Vector<String>();
mKeys = new Vector<PGPSecretKey>();
@@ -281,62 +292,6 @@ public class EditKeyActivity extends ActionBarActivity implements EditorListener
}
}
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- getMenuInflater().inflate(R.menu.key_edit, menu);
- //totally get rid of some actions for new keys
- if (mDataUri == null) {
- MenuItem mButton = menu.findItem(R.id.menu_key_edit_export_file);
- mButton.setVisible(false);
- mButton = menu.findItem(R.id.menu_key_edit_delete);
- mButton.setVisible(false);
- }
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- cancelClicked();
- // TODO: why isn't this triggered on my tablet - one of many ui problems
- // I've had with this device. A code compatibility issue or a Samsung fail?
- return true;
- case R.id.menu_key_edit_cancel:
- cancelClicked();
- return true;
- case R.id.menu_key_edit_export_file:
- if (needsSaving()) {
- Toast.makeText(this, R.string.error_save_first, Toast.LENGTH_LONG).show();
- } else {
- long masterKeyId = ProviderHelper.getMasterKeyId(this, mDataUri);
- mExportHelper.showExportKeysDialog(
- new long[] { masterKeyId }, Constants.Path.APP_DIR_FILE_SEC, true);
- return true;
- }
- return true;
- case R.id.menu_key_edit_delete:
- Uri convertUri = KeyRingData.buildSecretKeyRingUri(mDataUri);
- // Message is received after key is deleted
- Handler returnHandler = new Handler() {
- @Override
- public void handleMessage(Message message) {
- if (message.what == DeleteKeyDialogFragment.MESSAGE_OKAY) {
- setResult(RESULT_CANCELED);
- finish();
- }
- }};
- mExportHelper.deleteKey(convertUri, returnHandler);
- return true;
-
- case R.id.menu_key_edit_save:
- saveClicked();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-
@SuppressWarnings("unchecked")
private void finallyEdit(final long masterKeyId) {
if (masterKeyId != 0) {
@@ -525,16 +480,16 @@ public class EditKeyActivity extends ActionBarActivity implements EditorListener
}
if (passphrase == null) {
PassphraseDialogFragment.show(this, masterKeyId,
- new Handler() {
- @Override
- public void handleMessage(Message message) {
- if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) {
- mCurrentPassphrase = PassphraseCacheService.getCachedPassphrase(
- EditKeyActivity.this, masterKeyId);
- checkEmptyIDsWanted();
+ new Handler() {
+ @Override
+ public void handleMessage(Message message) {
+ if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) {
+ mCurrentPassphrase = PassphraseCacheService.getCachedPassphrase(
+ EditKeyActivity.this, masterKeyId);
+ checkEmptyIDsWanted();
+ }
}
- }
- });
+ });
} else {
mCurrentPassphrase = passphrase;
checkEmptyIDsWanted();