aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2015-12-28 15:38:16 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2015-12-28 15:38:16 +0100
commit9887e8b42ad2e6fddb1f3be4c0c315724c4d5c0b (patch)
tree6ac26610dc984701e426a73c733c2ccf564cd691 /OpenKeychain/src/main/java/org/sufficientlysecure
parent1dea4ef19f594f3562e31f104abc77958f6edb59 (diff)
downloadopen-keychain-9887e8b42ad2e6fddb1f3be4c0c315724c4d5c0b.tar.gz
open-keychain-9887e8b42ad2e6fddb1f3be4c0c315724c4d5c0b.tar.bz2
open-keychain-9887e8b42ad2e6fddb1f3be4c0c315724c4d5c0b.zip
Advanced screen: edited key saved
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java51
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java50
2 files changed, 99 insertions, 2 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java
index 923a1e61c..5a0b1b393 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java
@@ -18,6 +18,7 @@
package org.sufficientlysecure.keychain.ui;
+import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
@@ -41,12 +42,14 @@ import android.widget.ViewAnimator;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
+import org.sufficientlysecure.keychain.operations.results.EditKeyResult;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.SubkeyChange;
import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter;
import org.sufficientlysecure.keychain.ui.adapter.SubkeysAddedAdapter;
+import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.dialog.AddSubkeyDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyExpiryDialogFragment;
@@ -71,6 +74,8 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements
private SubkeysAdapter mSubkeysAdapter;
private SubkeysAddedAdapter mSubkeysAddedAdapter;
+ private CryptoOperationHelper<SaveKeyringParcel, EditKeyResult> mEditKeyHelper;
+
private Uri mDataUriSubkeys;
private long mMasterKeyId;
@@ -135,6 +140,15 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements
loadData(dataUri);
}
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (mEditKeyHelper != null) {
+ mEditKeyHelper.handleActivityResult(requestCode, resultCode, data);
+ }
+
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
private void loadData(Uri dataUri) {
mDataUriSubkeys = KeychainContract.Keys.buildKeysUri(dataUri);
@@ -220,7 +234,7 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- mode.finish();
+ editKey(mode);
return true;
}
@@ -390,4 +404,39 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements
});
}
+
+ private void editKey(final ActionMode mode) {
+ CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult> editKeyCallback
+ = new CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult>() {
+
+ @Override
+ public SaveKeyringParcel createOperationInput() {
+ return mEditModeSaveKeyringParcel;
+ }
+
+ @Override
+ public void onCryptoOperationSuccess(EditKeyResult result) {
+ mode.finish();
+ result.createNotify(getActivity()).show();
+ }
+
+ @Override
+ public void onCryptoOperationCancelled() {
+
+ }
+
+ @Override
+ public void onCryptoOperationError(EditKeyResult result) {
+
+ }
+
+ @Override
+ public boolean onCryptoSetProgress(String msg, int progress, int max) {
+ return false;
+ }
+ };
+ mEditKeyHelper = new CryptoOperationHelper<>(1, this, editKeyCallback, R.string.progress_saving);
+ mEditKeyHelper.cryptoOperation();
+ }
+
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java
index a44d4da5e..176eb6ca0 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java
@@ -19,6 +19,7 @@
package org.sufficientlysecure.keychain.ui;
+import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
@@ -42,10 +43,12 @@ import android.widget.ViewAnimator;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
+import org.sufficientlysecure.keychain.operations.results.EditKeyResult;
import org.sufficientlysecure.keychain.provider.KeychainContract.UserPackets;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAddedAdapter;
+import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.EditUserIdDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
@@ -70,6 +73,8 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements
private UserIdsAdapter mUserIdsAdapter;
private UserIdsAddedAdapter mUserIdsAddedAdapter;
+ private CryptoOperationHelper<SaveKeyringParcel, EditKeyResult> mEditKeyHelper;
+
private Uri mDataUri;
private long mMasterKeyId;
@@ -228,6 +233,15 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements
loadData(dataUri);
}
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (mEditKeyHelper != null) {
+ mEditKeyHelper.handleActivityResult(requestCode, resultCode, data);
+ }
+
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
private void loadData(Uri dataUri) {
mDataUri = dataUri;
@@ -325,7 +339,7 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- mode.finish();
+ editKey(mode);
return true;
}
@@ -340,4 +354,38 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements
});
}
+ private void editKey(final ActionMode mode) {
+ CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult> editKeyCallback
+ = new CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult>() {
+
+ @Override
+ public SaveKeyringParcel createOperationInput() {
+ return mEditModeSaveKeyringParcel;
+ }
+
+ @Override
+ public void onCryptoOperationSuccess(EditKeyResult result) {
+ mode.finish();
+ result.createNotify(getActivity()).show();
+ }
+
+ @Override
+ public void onCryptoOperationCancelled() {
+
+ }
+
+ @Override
+ public void onCryptoOperationError(EditKeyResult result) {
+
+ }
+
+ @Override
+ public boolean onCryptoSetProgress(String msg, int progress, int max) {
+ return false;
+ }
+ };
+ mEditKeyHelper = new CryptoOperationHelper<>(1, this, editKeyCallback, R.string.progress_saving);
+ mEditKeyHelper.cryptoOperation();
+ }
+
}