aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-06-30 22:01:17 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-06-30 22:01:17 +0200
commitc2ba7e2420f09e4aa6d604f4af073668520138da (patch)
tree8deb32f70703c789953a5a01a5be385966c04e65 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
parent6d7a9ec48a6517adfe94ed2edfa875def538d088 (diff)
downloadopen-keychain-c2ba7e2420f09e4aa6d604f4af073668520138da.tar.gz
open-keychain-c2ba7e2420f09e4aa6d604f4af073668520138da.tar.bz2
open-keychain-c2ba7e2420f09e4aa6d604f4af073668520138da.zip
work on edit key
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java89
1 files changed, 75 insertions, 14 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
index 3f330ee94..b6a95a517 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
@@ -17,6 +17,8 @@
package org.sufficientlysecure.keychain.ui;
+import android.app.ProgressDialog;
+import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
@@ -27,7 +29,6 @@ import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.ActionBarActivity;
-import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -43,12 +44,17 @@ import org.sufficientlysecure.keychain.helper.ActionBarHelper;
import org.sufficientlysecure.keychain.pgp.WrappedSecretKeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
+import org.sufficientlysecure.keychain.service.KeychainIntentService;
+import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
+import org.sufficientlysecure.keychain.service.OperationResults;
+import org.sufficientlysecure.keychain.service.PassphraseCacheService;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsArrayAdapter;
import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.EditUserIdDialogFragment;
+import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
import org.sufficientlysecure.keychain.util.Log;
@@ -260,8 +266,6 @@ public class EditKeyFragment extends LoaderFragment implements
String newPassphrase = data
.getString(SetPassphraseDialogFragment.MESSAGE_NEW_PASSPHRASE);
-// updatePassphraseButtonText();
-// somethingChanged();
mSaveKeyringParcel.newPassphrase = newPassphrase;
}
}
@@ -270,14 +274,6 @@ public class EditKeyFragment extends LoaderFragment implements
// Create a new Messenger for the communication back
Messenger messenger = new Messenger(returnHandler);
- // set title based on isPassphraseSet()
-// int title;
-// if (isPassphraseSet()) {
-// title = R.string.title_change_passphrase;
-// } else {
-// title = R.string.title_set_passphrase;
-// }
-
SetPassphraseDialogFragment setPassphraseDialog = SetPassphraseDialogFragment.newInstance(
messenger, R.string.title_change_passphrase);
@@ -356,8 +352,73 @@ public class EditKeyFragment extends LoaderFragment implements
}
private void save() {
- getActivity().finish();
- // TODO
+ String passphrase = PassphraseCacheService.getCachedPassphrase(getActivity(),
+ mSaveKeyringParcel.mMasterKeyId);
+ if (passphrase == null) {
+ PassphraseDialogFragment.show(getActivity(), mSaveKeyringParcel.mMasterKeyId,
+ new Handler() {
+ @Override
+ public void handleMessage(Message message) {
+ if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) {
+ saveFinal();
+ }
+ }
+ }
+ );
+
+ }
+
}
-}
+ private void saveFinal() {
+ // Message is received after importing is done in KeychainIntentService
+ KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(
+ getActivity(),
+ getString(R.string.progress_saving),
+ ProgressDialog.STYLE_HORIZONTAL) {
+ public void handleMessage(Message message) {
+ // handle messages by standard KeychainIntentServiceHandler first
+ super.handleMessage(message);
+
+ if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
+ // get returned data bundle
+ Bundle returnData = message.getData();
+ if (returnData == null) {
+ return;
+ }
+ final OperationResults.SaveKeyringResult result =
+ returnData.getParcelable(KeychainIntentService.RESULT);
+ if (result == null) {
+ return;
+ }
+
+ // if good -> finish, return result to showkey and display there!
+ // if bad -> display here!
+
+// result.displayNotify(ImportKeysActivity.this);
+
+// getActivity().finish();
+ }
+ }
+ };
+
+ // Send all information needed to service to import key in other thread
+ Intent intent = new Intent(getActivity(), KeychainIntentService.class);
+ intent.setAction(KeychainIntentService.ACTION_SAVE_KEYRING);
+
+ // fill values for this action
+ Bundle data = new Bundle();
+ data.putParcelable(KeychainIntentService.SAVE_KEYRING_PARCEL, mSaveKeyringParcel);
+ intent.putExtra(KeychainIntentService.EXTRA_DATA, data);
+
+ // Create a new Messenger for the communication back
+ Messenger messenger = new Messenger(saveHandler);
+ intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger);
+
+ // show progress dialog
+ saveHandler.showProgressDialog(getActivity());
+
+ // start service with intent
+ getActivity().startService(intent);
+ }
+} \ No newline at end of file