editkey: always return EditKeyResult
This commit is contained in:
parent
a665dd60fb
commit
1c83c33d35
|
@ -26,7 +26,6 @@ import android.support.annotation.NonNull;
|
|||
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.operations.results.EditKeyResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.InputPendingResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
|
||||
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
|
||||
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
|
||||
|
@ -73,7 +72,7 @@ public class EditKeyOperation extends BaseOperation<SaveKeyringParcel> {
|
|||
* @return the result of the operation
|
||||
*/
|
||||
@NonNull
|
||||
public InputPendingResult execute(SaveKeyringParcel saveParcel, CryptoInputParcel cryptoInput) {
|
||||
public EditKeyResult execute(SaveKeyringParcel saveParcel, CryptoInputParcel cryptoInput) {
|
||||
|
||||
OperationLog log = new OperationLog();
|
||||
log.add(LogType.MSG_ED, 0);
|
||||
|
@ -100,7 +99,8 @@ public class EditKeyOperation extends BaseOperation<SaveKeyringParcel> {
|
|||
|
||||
modifyResult = keyOperations.modifySecretKeyRing(secRing, cryptoInput, saveParcel);
|
||||
if (modifyResult.isPending()) {
|
||||
return modifyResult;
|
||||
log.add(modifyResult, 1);
|
||||
return new EditKeyResult(log, modifyResult);
|
||||
}
|
||||
|
||||
} catch (NotFoundException e) {
|
||||
|
@ -151,16 +151,13 @@ public class EditKeyOperation extends BaseOperation<SaveKeyringParcel> {
|
|||
new UploadOperation(mContext, mProviderHelper, mProgressable, mCancelled)
|
||||
.execute(exportKeyringParcel, cryptoInput);
|
||||
|
||||
log.add(uploadResult, 2);
|
||||
|
||||
if (uploadResult.isPending()) {
|
||||
return uploadResult;
|
||||
return new EditKeyResult(log, uploadResult);
|
||||
} else if (!uploadResult.success() && saveParcel.isUploadAtomic()) {
|
||||
// if atomic, update fail implies edit operation should also fail and not save
|
||||
log.add(uploadResult, 2);
|
||||
return new EditKeyResult(log, RequiredInputParcel.createRetryUploadOperation(),
|
||||
cryptoInput);
|
||||
} else {
|
||||
// upload succeeded or not atomic so we continue
|
||||
log.add(uploadResult, 2);
|
||||
return new EditKeyResult(log, RequiredInputParcel.createRetryUploadOperation(), cryptoInput);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,12 +19,13 @@
|
|||
|
||||
package org.sufficientlysecure.keychain.operations;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import org.sufficientlysecure.keychain.Constants;
|
||||
import org.sufficientlysecure.keychain.operations.results.InputPendingResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.EditKeyResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.OperationResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.RevokeResult;
|
||||
import org.sufficientlysecure.keychain.pgp.Progressable;
|
||||
|
@ -79,9 +80,8 @@ public class RevokeOperation extends BaseOperation<RevokeKeyringParcel> {
|
|||
|
||||
saveKeyringParcel.mRevokeSubKeys.add(masterKeyId);
|
||||
|
||||
InputPendingResult revokeAndUploadResult = new EditKeyOperation(mContext,
|
||||
mProviderHelper, mProgressable, mCancelled)
|
||||
.execute(saveKeyringParcel, cryptoInputParcel);
|
||||
EditKeyResult revokeAndUploadResult = new EditKeyOperation(mContext,
|
||||
mProviderHelper, mProgressable, mCancelled).execute(saveKeyringParcel, cryptoInputParcel);
|
||||
|
||||
if (revokeAndUploadResult.isPending()) {
|
||||
return revokeAndUploadResult;
|
||||
|
|
|
@ -38,6 +38,11 @@ public class EditKeyResult extends InputPendingResult {
|
|||
mMasterKeyId = null;
|
||||
}
|
||||
|
||||
public EditKeyResult(OperationLog log, InputPendingResult result) {
|
||||
super(log, result);
|
||||
mMasterKeyId = null;
|
||||
}
|
||||
|
||||
public EditKeyResult(Parcel source) {
|
||||
super(source);
|
||||
mMasterKeyId = source.readInt() != 0 ? source.readLong() : null;
|
||||
|
|
Loading…
Reference in a new issue