mime: create more general InputDataOperation, which for now and does basic mime parsing
This commit is contained in:
@@ -21,31 +21,37 @@ import android.net.Uri;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
public class MimeParsingParcel implements Parcelable {
|
||||
import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel;
|
||||
|
||||
|
||||
public class InputDataParcel implements Parcelable {
|
||||
|
||||
private Uri mInputUri;
|
||||
private Uri mOutputUri;
|
||||
|
||||
public MimeParsingParcel() {
|
||||
}
|
||||
private PgpDecryptVerifyInputParcel mDecryptInput;
|
||||
private boolean mMimeDecode = true; // TODO default to false
|
||||
|
||||
public MimeParsingParcel(Uri inputUri, Uri outputUri) {
|
||||
public InputDataParcel(Uri inputUri, PgpDecryptVerifyInputParcel decryptInput) {
|
||||
mInputUri = inputUri;
|
||||
mOutputUri = outputUri;
|
||||
}
|
||||
|
||||
MimeParsingParcel(Parcel source) {
|
||||
InputDataParcel(Parcel source) {
|
||||
// we do all of those here, so the PgpSignEncryptInput class doesn't have to be parcelable
|
||||
mInputUri = source.readParcelable(getClass().getClassLoader());
|
||||
mOutputUri = source.readParcelable(getClass().getClassLoader());
|
||||
mDecryptInput = source.readParcelable(getClass().getClassLoader());
|
||||
mMimeDecode = source.readInt() != 0;
|
||||
}
|
||||
|
||||
public Uri getInputUri() {
|
||||
return mInputUri;
|
||||
}
|
||||
|
||||
public Uri getOutputUri() {
|
||||
return mOutputUri;
|
||||
public PgpDecryptVerifyInputParcel getDecryptInput() {
|
||||
return mDecryptInput;
|
||||
}
|
||||
|
||||
public boolean getMimeDecode() {
|
||||
return mMimeDecode;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -56,16 +62,17 @@ public class MimeParsingParcel implements Parcelable {
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeParcelable(mInputUri, 0);
|
||||
dest.writeParcelable(mOutputUri, 0);
|
||||
dest.writeParcelable(mDecryptInput, 0);
|
||||
dest.writeInt(mMimeDecode ? 1 : 0);
|
||||
}
|
||||
|
||||
public static final Creator<MimeParsingParcel> CREATOR = new Creator<MimeParsingParcel>() {
|
||||
public MimeParsingParcel createFromParcel(final Parcel source) {
|
||||
return new MimeParsingParcel(source);
|
||||
public static final Creator<InputDataParcel> CREATOR = new Creator<InputDataParcel>() {
|
||||
public InputDataParcel createFromParcel(final Parcel source) {
|
||||
return new InputDataParcel(source);
|
||||
}
|
||||
|
||||
public MimeParsingParcel[] newArray(final int size) {
|
||||
return new MimeParsingParcel[size];
|
||||
public InputDataParcel[] newArray(final int size) {
|
||||
return new InputDataParcel[size];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -36,7 +36,7 @@ import org.sufficientlysecure.keychain.operations.EditKeyOperation;
|
||||
import org.sufficientlysecure.keychain.operations.ExportOperation;
|
||||
import org.sufficientlysecure.keychain.operations.ImportOperation;
|
||||
import org.sufficientlysecure.keychain.operations.KeybaseVerificationOperation;
|
||||
import org.sufficientlysecure.keychain.operations.MimeParsingOperation;
|
||||
import org.sufficientlysecure.keychain.operations.InputDataOperation;
|
||||
import org.sufficientlysecure.keychain.operations.PromoteKeyOperation;
|
||||
import org.sufficientlysecure.keychain.operations.RevokeOperation;
|
||||
import org.sufficientlysecure.keychain.operations.SignEncryptOperation;
|
||||
@@ -109,38 +109,29 @@ public class KeychainService extends Service implements Progressable {
|
||||
// just for brevity
|
||||
KeychainService outerThis = KeychainService.this;
|
||||
if (inputParcel instanceof SignEncryptParcel) {
|
||||
op = new SignEncryptOperation(outerThis, new ProviderHelper(outerThis),
|
||||
outerThis, mActionCanceled);
|
||||
op = new SignEncryptOperation(outerThis, new ProviderHelper(outerThis), outerThis, mActionCanceled);
|
||||
} else if (inputParcel instanceof PgpDecryptVerifyInputParcel) {
|
||||
op = new PgpDecryptVerifyOperation(outerThis, new ProviderHelper(outerThis), outerThis);
|
||||
} else if (inputParcel instanceof SaveKeyringParcel) {
|
||||
op = new EditKeyOperation(outerThis, new ProviderHelper(outerThis), outerThis,
|
||||
mActionCanceled);
|
||||
op = new EditKeyOperation(outerThis, new ProviderHelper(outerThis), outerThis, mActionCanceled);
|
||||
} else if (inputParcel instanceof RevokeKeyringParcel) {
|
||||
op = new RevokeOperation(outerThis, new ProviderHelper(outerThis), outerThis);
|
||||
} else if (inputParcel instanceof CertifyActionsParcel) {
|
||||
op = new CertifyOperation(outerThis, new ProviderHelper(outerThis), outerThis,
|
||||
mActionCanceled);
|
||||
op = new CertifyOperation(outerThis, new ProviderHelper(outerThis), outerThis, mActionCanceled);
|
||||
} else if (inputParcel instanceof DeleteKeyringParcel) {
|
||||
op = new DeleteOperation(outerThis, new ProviderHelper(outerThis), outerThis);
|
||||
} else if (inputParcel instanceof PromoteKeyringParcel) {
|
||||
op = new PromoteKeyOperation(outerThis, new ProviderHelper(outerThis),
|
||||
outerThis, mActionCanceled);
|
||||
op = new PromoteKeyOperation(outerThis, new ProviderHelper(outerThis), outerThis, mActionCanceled);
|
||||
} else if (inputParcel instanceof ImportKeyringParcel) {
|
||||
op = new ImportOperation(outerThis, new ProviderHelper(outerThis), outerThis,
|
||||
mActionCanceled);
|
||||
op = new ImportOperation(outerThis, new ProviderHelper(outerThis), outerThis, mActionCanceled);
|
||||
} else if (inputParcel instanceof ExportKeyringParcel) {
|
||||
op = new ExportOperation(outerThis, new ProviderHelper(outerThis), outerThis,
|
||||
mActionCanceled);
|
||||
op = new ExportOperation(outerThis, new ProviderHelper(outerThis), outerThis, mActionCanceled);
|
||||
} else if (inputParcel instanceof ConsolidateInputParcel) {
|
||||
op = new ConsolidateOperation(outerThis, new ProviderHelper(outerThis),
|
||||
outerThis);
|
||||
op = new ConsolidateOperation(outerThis, new ProviderHelper(outerThis), outerThis);
|
||||
} else if (inputParcel instanceof KeybaseVerificationParcel) {
|
||||
op = new KeybaseVerificationOperation(outerThis, new ProviderHelper(outerThis),
|
||||
outerThis);
|
||||
} else if (inputParcel instanceof MimeParsingParcel) {
|
||||
op = new MimeParsingOperation(outerThis, new ProviderHelper(outerThis),
|
||||
outerThis);
|
||||
op = new KeybaseVerificationOperation(outerThis, new ProviderHelper(outerThis), outerThis);
|
||||
} else if (inputParcel instanceof InputDataParcel) {
|
||||
op = new InputDataOperation(outerThis, new ProviderHelper(outerThis), outerThis);
|
||||
} else {
|
||||
throw new AssertionError("Unrecognized input parcel in KeychainService!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user