aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-10-25 02:38:06 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-10-25 02:38:06 +0200
commit33b54ab03ea611223864dded6f1f99b9eac0870b (patch)
tree64f37b2c36ed545ea25a6214db4837ea3874cfa2 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
parent1cbedb60d66b745993121d9c02d141f8beb6558a (diff)
downloadopen-keychain-33b54ab03ea611223864dded6f1f99b9eac0870b.tar.gz
open-keychain-33b54ab03ea611223864dded6f1f99b9eac0870b.tar.bz2
open-keychain-33b54ab03ea611223864dded6f1f99b9eac0870b.zip
Safe slinger activity preps
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java138
1 files changed, 3 insertions, 135 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
index 0b28a2594..eba16e55d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
@@ -115,10 +115,6 @@ public class KeyListFragment extends LoaderFragment
boolean hideMenu = false;
- Long mExchangeMasterKeyId = null;
-
- private static final int REQUEST_CODE_SAFE_SLINGER = 2;
-
/**
* Load custom layout with StickyListView from library
*/
@@ -603,7 +599,9 @@ public class KeyListFragment extends LoaderFragment
@Override
public void onClick(View v) {
if (holder.mMasterKeyId != null) {
- startExchange(holder.mMasterKeyId);
+ Intent safeSlingerIntent = new Intent(getActivity(), SafeSlingerActivity.class);
+ safeSlingerIntent.putExtra(SafeSlingerActivity.EXTRA_MASTER_KEY_ID, holder.mMasterKeyId);
+ startActivity(safeSlingerIntent);
}
}
});
@@ -842,136 +840,6 @@ public class KeyListFragment extends LoaderFragment
}
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == REQUEST_CODE_SAFE_SLINGER) {
- if (resultCode == ExchangeActivity.RESULT_EXCHANGE_CANCELED) {
- return;
- }
-
- final FragmentActivity activity = getActivity();
-
- // Message is received after importing is done in KeychainIntentService
- KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(
- activity,
- getString(R.string.progress_importing),
- ProgressDialog.STYLE_HORIZONTAL,
- true) {
- 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 ImportKeyResult result =
- returnData.getParcelable(OperationResult.EXTRA_RESULT);
- if (result == null) {
- Log.e(Constants.TAG, "result == null");
- return;
- }
-
- if (!result.success()) {
- result.createNotify(activity).show();
- return;
- }
-
- if (mExchangeMasterKeyId == null) {
- return;
- }
-
- Intent certifyIntent = new Intent(activity, MultiCertifyKeyActivity.class);
- certifyIntent.putExtra(MultiCertifyKeyActivity.EXTRA_RESULT, result);
- certifyIntent.putExtra(MultiCertifyKeyActivity.EXTRA_KEY_IDS, result.getImportedMasterKeyIds());
- certifyIntent.putExtra(MultiCertifyKeyActivity.EXTRA_CERTIFY_KEY_ID, mExchangeMasterKeyId);
- startActivityForResult(certifyIntent, KeyListActivity.REQUEST_CODE_RESULT_TO_LIST);
-
- mExchangeMasterKeyId = null;
- }
- }
- };
-
- Log.d(Constants.TAG, "importKeys started");
-
- // Send all information needed to service to import key in other thread
- Intent intent = new Intent(activity, KeychainIntentService.class);
-
- intent.setAction(KeychainIntentService.ACTION_IMPORT_KEYRING);
-
- // instead of giving the entries by Intent extra, cache them into a
- // file to prevent Java Binder problems on heavy imports
- // read FileImportCache for more info.
- try {
- // import exchanged keys
- ArrayList<ParcelableKeyRing> it = getSlingedKeys(data.getExtras());
-
- // We parcel this iteratively into a file - anything we can
- // display here, we should be able to import.
- ParcelableFileCache<ParcelableKeyRing> cache =
- new ParcelableFileCache<ParcelableKeyRing>(activity, "key_import.pcl");
- cache.writeCache(it.size(), it.iterator());
-
- // fill values for this action
- Bundle bundle = new Bundle();
- intent.putExtra(KeychainIntentService.EXTRA_DATA, bundle);
-
- // Create a new Messenger for the communication back
- Messenger messenger = new Messenger(saveHandler);
- intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger);
-
- // show progress dialog
- saveHandler.showProgressDialog(activity);
-
- // start service with intent
- activity.startService(intent);
- } catch (IOException e) {
- Log.e(Constants.TAG, "Problem writing cache file", e);
- Notify.showNotify(activity, "Problem writing cache file!", Notify.Style.ERROR);
- }
- }
-
- super.onActivityResult(requestCode, resultCode, data);
- }
-
- private static ArrayList<ParcelableKeyRing> getSlingedKeys(Bundle extras) {
-
- ArrayList<ParcelableKeyRing> list = new ArrayList<ParcelableKeyRing>();
-
- if (extras != null) {
- byte[] d;
- int i = 0;
- do {
- d = extras.getByteArray(ExchangeConfig.extra.MEMBER_DATA + i);
- if (d != null) {
- list.add(new ParcelableKeyRing(d));
- i++;
- }
- } while (d != null);
- }
-
- return list;
-
- }
-
- private void startExchange(long masterKeyId) {
- mExchangeMasterKeyId = masterKeyId;
- // retrieve public key blob and start SafeSlinger
- Uri uri = KeychainContract.KeyRingData.buildPublicKeyRingUri(masterKeyId);
- try {
- byte[] keyBlob = (byte[]) new ProviderHelper(getActivity()).getGenericData(
- uri, KeychainContract.KeyRingData.KEY_RING_DATA, ProviderHelper.FIELD_TYPE_BLOB);
-
- Intent slingerIntent = new Intent(getActivity(), ExchangeActivity.class);
- slingerIntent.putExtra(ExchangeConfig.extra.USER_DATA, keyBlob);
- slingerIntent.putExtra(ExchangeConfig.extra.HOST_NAME, Constants.SAFESLINGER_SERVER);
- startActivityForResult(slingerIntent, REQUEST_CODE_SAFE_SLINGER);
- } catch (ProviderHelper.NotFoundException e) {
- Log.e(Constants.TAG, "personal key not found", e);
- }
- }
}