export: externalize upload into its own operation

This commit is contained in:
Vincent Breitmoser
2015-09-26 03:20:39 +02:00
parent 603eab729f
commit c93670f3c6
9 changed files with 317 additions and 144 deletions

View File

@@ -37,17 +37,17 @@ import org.spongycastle.bcpg.sig.KeyFlags;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.EditKeyResult;
import org.sufficientlysecure.keychain.operations.results.ExportResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.operations.results.UploadResult;
import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;
import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.service.ExportKeyringParcel;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Algorithm;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.ChangeUnlockParcel;
import org.sufficientlysecure.keychain.service.UploadKeyringParcel;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
@@ -69,7 +69,7 @@ public class CreateKeyFinalFragment extends Fragment {
SaveKeyringParcel mSaveKeyringParcel;
private CryptoOperationHelper<ExportKeyringParcel, ExportResult> mUploadOpHelper;
private CryptoOperationHelper<UploadKeyringParcel, UploadResult> mUploadOpHelper;
private CryptoOperationHelper<SaveKeyringParcel, EditKeyResult> mCreateOpHelper;
private CryptoOperationHelper<SaveKeyringParcel, EditKeyResult> mMoveToCardOpHelper;
@@ -411,16 +411,16 @@ public class CreateKeyFinalFragment extends Fragment {
// upload to favorite keyserver
final String keyserver = Preferences.getPreferences(activity).getPreferredKeyserver();
CryptoOperationHelper.Callback<ExportKeyringParcel, ExportResult> callback
= new CryptoOperationHelper.Callback<ExportKeyringParcel, ExportResult>() {
CryptoOperationHelper.Callback<UploadKeyringParcel, UploadResult> callback
= new CryptoOperationHelper.Callback<UploadKeyringParcel, UploadResult>() {
@Override
public ExportKeyringParcel createOperationInput() {
return new ExportKeyringParcel(keyserver, blobUri);
public UploadKeyringParcel createOperationInput() {
return new UploadKeyringParcel(keyserver, blobUri);
}
@Override
public void onCryptoOperationSuccess(ExportResult result) {
public void onCryptoOperationSuccess(UploadResult result) {
handleResult(result);
}
@@ -430,11 +430,11 @@ public class CreateKeyFinalFragment extends Fragment {
}
@Override
public void onCryptoOperationError(ExportResult result) {
public void onCryptoOperationError(UploadResult result) {
handleResult(result);
}
public void handleResult(ExportResult result) {
public void handleResult(UploadResult result) {
saveKeyResult.getLog().add(result, 0);
finishWithResult(saveKeyResult);
}

View File

@@ -17,6 +17,7 @@
package org.sufficientlysecure.keychain.ui;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
@@ -29,10 +30,10 @@ import android.widget.Spinner;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.ExportResult;
import org.sufficientlysecure.keychain.operations.results.UploadResult;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.service.ExportKeyringParcel;
import org.sufficientlysecure.keychain.service.UploadKeyringParcel;
import org.sufficientlysecure.keychain.ui.base.BaseActivity;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.util.Log;
@@ -42,7 +43,7 @@ import org.sufficientlysecure.keychain.util.Preferences;
* Sends the selected public key to a keyserver
*/
public class UploadKeyActivity extends BaseActivity
implements CryptoOperationHelper.Callback<ExportKeyringParcel, ExportResult> {
implements CryptoOperationHelper.Callback<UploadKeyringParcel, UploadResult> {
private View mUploadButton;
private Spinner mKeyServerSpinner;
@@ -51,7 +52,7 @@ public class UploadKeyActivity extends BaseActivity
// CryptoOperationHelper.Callback vars
private String mKeyserver;
private Uri mUnifiedKeyringUri;
private CryptoOperationHelper<ExportKeyringParcel, ExportResult> mUploadOpHelper;
private CryptoOperationHelper<UploadKeyringParcel, UploadResult> mUploadOpHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -107,7 +108,7 @@ public class UploadKeyActivity extends BaseActivity
String server = (String) mKeyServerSpinner.getSelectedItem();
mKeyserver = server;
mUploadOpHelper = new CryptoOperationHelper(1, this, this, R.string.progress_uploading);
mUploadOpHelper = new CryptoOperationHelper<>(1, this, this, R.string.progress_uploading);
mUploadOpHelper.cryptoOperation();
}
@@ -125,12 +126,12 @@ public class UploadKeyActivity extends BaseActivity
}
@Override
public ExportKeyringParcel createOperationInput() {
return new ExportKeyringParcel(mKeyserver, mUnifiedKeyringUri);
public UploadKeyringParcel createOperationInput() {
return new UploadKeyringParcel(mKeyserver, mUnifiedKeyringUri);
}
@Override
public void onCryptoOperationSuccess(ExportResult result) {
public void onCryptoOperationSuccess(UploadResult result) {
result.createNotify(this).show();
}
@@ -140,7 +141,7 @@ public class UploadKeyActivity extends BaseActivity
}
@Override
public void onCryptoOperationError(ExportResult result) {
public void onCryptoOperationError(UploadResult result) {
result.createNotify(this).show();
}