Fix result handling in account settings

This commit is contained in:
Dominik Schürmann 2014-08-21 00:29:49 +02:00
parent ad9339b23d
commit d1ef355f55
2 changed files with 13 additions and 16 deletions

View File

@ -36,6 +36,8 @@ import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.remote.AccountSettings; import org.sufficientlysecure.keychain.remote.AccountSettings;
import org.sufficientlysecure.keychain.service.OperationResultParcel;
import org.sufficientlysecure.keychain.service.OperationResults;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity; import org.sufficientlysecure.keychain.ui.CreateKeyActivity;
import org.sufficientlysecure.keychain.ui.SelectSecretKeyLayoutFragment; import org.sufficientlysecure.keychain.ui.SelectSecretKeyLayoutFragment;
import org.sufficientlysecure.keychain.ui.adapter.KeyValueSpinnerAdapter; import org.sufficientlysecure.keychain.ui.adapter.KeyValueSpinnerAdapter;
@ -177,24 +179,19 @@ public class AccountSettingsFragment extends Fragment implements
switch (requestCode) { switch (requestCode) {
case REQUEST_CODE_CREATE_KEY: { case REQUEST_CODE_CREATE_KEY: {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
// select newly created key if (data != null && data.hasExtra(OperationResultParcel.EXTRA_RESULT)) {
try { OperationResults.SaveKeyringResult result = data.getParcelableExtra(OperationResultParcel.EXTRA_RESULT);
long masterKeyId = new ProviderHelper(getActivity()) mSelectKeyFragment.selectKey(result.mRingMasterKeyId);
.getCachedPublicKeyRing(data.getData()) } else {
.extractOrGetMasterKeyId(); Log.e(Constants.TAG, "missing result!");
mSelectKeyFragment.selectKey(masterKeyId);
} catch (PgpGeneralException e) {
Log.e(Constants.TAG, "key not found!", e);
} }
} }
break; break;
} }
}
default: // execute activity's onActivityResult to show log notify
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
break;
}
} }
/** /**

View File

@ -187,7 +187,7 @@ public class CreateKeyFinalFragment extends Fragment {
getActivity().startService(intent); getActivity().startService(intent);
} }
private void uploadKey(final OperationResults.SaveKeyringResult editKeyResult) { private void uploadKey(final OperationResults.SaveKeyringResult saveKeyResult) {
// Send all information needed to service to upload key in other thread // Send all information needed to service to upload key in other thread
final Intent intent = new Intent(getActivity(), KeychainIntentService.class); final Intent intent = new Intent(getActivity(), KeychainIntentService.class);
@ -195,7 +195,7 @@ public class CreateKeyFinalFragment extends Fragment {
// set data uri as path to keyring // set data uri as path to keyring
Uri blobUri = KeychainContract.KeyRings.buildUnifiedKeyRingUri( Uri blobUri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(
editKeyResult.mRingMasterKeyId); saveKeyResult.mRingMasterKeyId);
intent.setData(blobUri); intent.setData(blobUri);
// fill values for this action // fill values for this action
@ -221,7 +221,7 @@ public class CreateKeyFinalFragment extends Fragment {
//Notify.Style.INFO); //Notify.Style.INFO);
Intent data = new Intent(); Intent data = new Intent();
data.putExtra(OperationResultParcel.EXTRA_RESULT, editKeyResult); data.putExtra(OperationResultParcel.EXTRA_RESULT, saveKeyResult);
getActivity().setResult(Activity.RESULT_OK, data); getActivity().setResult(Activity.RESULT_OK, data);
getActivity().finish(); getActivity().finish();
} }