import: make operation cancelable (again), make "update all" cancelable

(also, use unbounded blocking queue to fix update of more than 10 keys)
This commit is contained in:
Vincent Breitmoser
2015-10-29 18:21:49 +01:00
parent 55e22e68b4
commit e45636c07a
4 changed files with 36 additions and 20 deletions

View File

@@ -559,8 +559,8 @@ public class KeyListFragment extends LoaderFragment
mKeyserver = cloudPrefs.keyserver;
}
mImportOpHelper = new CryptoOperationHelper<>(1, this,
this, R.string.progress_updating);
mImportOpHelper = new CryptoOperationHelper<>(1, this, this, R.string.progress_updating);
mImportOpHelper.setProgressCancellable(true);
mImportOpHelper.cryptoOperation();
}

View File

@@ -84,6 +84,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
public static final int REQUEST_CODE_RETRY_UPLOAD = 4;
private Integer mProgressMessageResource;
private boolean mCancellable = false;
private FragmentActivity mActivity;
private Fragment mFragment;
@@ -118,6 +119,10 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
mProgressMessageResource = id;
}
public void setProgressCancellable(boolean cancellable) {
mCancellable = cancellable;
}
private void initiateInputActivity(RequiredInputParcel requiredInput,
CryptoInputParcel cryptoInputParcel) {
@@ -311,7 +316,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
if (mProgressMessageResource != null) {
saveHandler.showProgressDialog(
activity.getString(mProgressMessageResource),
ProgressDialog.STYLE_HORIZONTAL, false);
ProgressDialog.STYLE_HORIZONTAL, mCancellable);
}
activity.startService(intent);