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