use QueueingCryptoOperationFragment in all other places
This commit is contained in:
@@ -66,10 +66,10 @@ import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel;
|
|||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
||||||
import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider;
|
import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider;
|
||||||
// this import NEEDS to be above the ViewModel one, or it won't compile! (as of 06/06/15)
|
// this import NEEDS to be above the ViewModel one, or it won't compile! (as of 06/06/15)
|
||||||
|
import org.sufficientlysecure.keychain.ui.base.QueueingCryptoOperationFragment;
|
||||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.StatusHolder;
|
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.StatusHolder;
|
||||||
import org.sufficientlysecure.keychain.ui.DecryptListFragment.DecryptFilesAdapter.ViewModel;
|
import org.sufficientlysecure.keychain.ui.DecryptListFragment.DecryptFilesAdapter.ViewModel;
|
||||||
import org.sufficientlysecure.keychain.ui.adapter.SpacesItemDecoration;
|
import org.sufficientlysecure.keychain.ui.adapter.SpacesItemDecoration;
|
||||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationFragment;
|
|
||||||
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
|
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
|
||||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||||
import org.sufficientlysecure.keychain.ui.util.Notify;
|
import org.sufficientlysecure.keychain.ui.util.Notify;
|
||||||
@@ -80,7 +80,7 @@ import org.sufficientlysecure.keychain.util.ParcelableHashMap;
|
|||||||
|
|
||||||
|
|
||||||
public class DecryptListFragment
|
public class DecryptListFragment
|
||||||
extends CryptoOperationFragment<PgpDecryptVerifyInputParcel,DecryptVerifyResult>
|
extends QueueingCryptoOperationFragment<PgpDecryptVerifyInputParcel,DecryptVerifyResult>
|
||||||
implements OnMenuItemClickListener {
|
implements OnMenuItemClickListener {
|
||||||
|
|
||||||
public static final String ARG_INPUT_URIS = "input_uris";
|
public static final String ARG_INPUT_URIS = "input_uris";
|
||||||
@@ -195,15 +195,6 @@ public class DecryptListFragment
|
|||||||
cryptoOperation();
|
cryptoOperation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String removeEncryptedAppend(String name) {
|
|
||||||
if (name.endsWith(Constants.FILE_EXTENSION_ASC)
|
|
||||||
|| name.endsWith(Constants.FILE_EXTENSION_PGP_MAIN)
|
|
||||||
|| name.endsWith(Constants.FILE_EXTENSION_PGP_ALTERNATE)) {
|
|
||||||
return name.substring(0, name.length() - 4);
|
|
||||||
}
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void askForOutputFilename(Uri inputUri, String originalFilename, String mimeType) {
|
private void askForOutputFilename(Uri inputUri, String originalFilename, String mimeType) {
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
|
||||||
File file = new File(inputUri.getPath());
|
File file = new File(inputUri.getPath());
|
||||||
@@ -257,7 +248,7 @@ public class DecryptListFragment
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onCryptoOperationError(DecryptVerifyResult result) {
|
public void onQueuedOperationError(DecryptVerifyResult result) {
|
||||||
final Uri uri = mCurrentInputUri;
|
final Uri uri = mCurrentInputUri;
|
||||||
mCurrentInputUri = null;
|
mCurrentInputUri = null;
|
||||||
|
|
||||||
@@ -267,7 +258,7 @@ public class DecryptListFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCryptoOperationSuccess(DecryptVerifyResult result) {
|
public void onQueuedOperationSuccess(DecryptVerifyResult result) {
|
||||||
Uri uri = mCurrentInputUri;
|
Uri uri = mCurrentInputUri;
|
||||||
mCurrentInputUri = null;
|
mCurrentInputUri = null;
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter;
|
|||||||
import org.sufficientlysecure.keychain.ui.adapter.SubkeysAddedAdapter;
|
import org.sufficientlysecure.keychain.ui.adapter.SubkeysAddedAdapter;
|
||||||
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
|
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
|
||||||
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAddedAdapter;
|
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAddedAdapter;
|
||||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationFragment;
|
import org.sufficientlysecure.keychain.ui.base.QueueingCryptoOperationFragment;
|
||||||
import org.sufficientlysecure.keychain.ui.dialog.AddSubkeyDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.AddSubkeyDialogFragment;
|
||||||
import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment;
|
||||||
import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment;
|
||||||
@@ -68,7 +68,7 @@ import org.sufficientlysecure.keychain.ui.util.Notify;
|
|||||||
import org.sufficientlysecure.keychain.util.Log;
|
import org.sufficientlysecure.keychain.util.Log;
|
||||||
import org.sufficientlysecure.keychain.util.Passphrase;
|
import org.sufficientlysecure.keychain.util.Passphrase;
|
||||||
|
|
||||||
public class EditKeyFragment extends CryptoOperationFragment<SaveKeyringParcel, OperationResult>
|
public class EditKeyFragment extends QueueingCryptoOperationFragment<SaveKeyringParcel, OperationResult>
|
||||||
implements LoaderManager.LoaderCallbacks<Cursor> {
|
implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
|
||||||
public static final String ARG_DATA_URI = "uri";
|
public static final String ARG_DATA_URI = "uri";
|
||||||
@@ -192,7 +192,7 @@ public class EditKeyFragment extends CryptoOperationFragment<SaveKeyringParcel,
|
|||||||
private void loadData(Uri dataUri) {
|
private void loadData(Uri dataUri) {
|
||||||
mDataUri = dataUri;
|
mDataUri = dataUri;
|
||||||
|
|
||||||
Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString());
|
Log.i(Constants.TAG, "mDataUri: " + mDataUri);
|
||||||
|
|
||||||
// load the secret key ring. we do verify here that the passphrase is correct, so cached won't do
|
// load the secret key ring. we do verify here that the passphrase is correct, so cached won't do
|
||||||
try {
|
try {
|
||||||
@@ -618,13 +618,16 @@ public class EditKeyFragment extends CryptoOperationFragment<SaveKeyringParcel,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCryptoOperationSuccess(OperationResult result) {
|
public void onQueuedOperationSuccess(OperationResult result) {
|
||||||
|
|
||||||
|
// null-protected from Queueing*Fragment
|
||||||
|
Activity activity = getActivity();
|
||||||
|
|
||||||
// if good -> finish, return result to showkey and display there!
|
// if good -> finish, return result to showkey and display there!
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.putExtra(OperationResult.EXTRA_RESULT, result);
|
intent.putExtra(OperationResult.EXTRA_RESULT, result);
|
||||||
getActivity().setResult(EditKeyActivity.RESULT_OK, intent);
|
activity.setResult(EditKeyActivity.RESULT_OK, intent);
|
||||||
getActivity().finish();
|
activity.finish();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,11 +40,12 @@ import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
|
|||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.Keys;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.Keys;
|
||||||
import org.sufficientlysecure.keychain.service.PromoteKeyringParcel;
|
import org.sufficientlysecure.keychain.service.PromoteKeyringParcel;
|
||||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationFragment;
|
import org.sufficientlysecure.keychain.ui.base.CryptoOperationFragment;
|
||||||
|
import org.sufficientlysecure.keychain.ui.base.QueueingCryptoOperationFragment;
|
||||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||||
|
|
||||||
|
|
||||||
public class ViewKeyYubiKeyFragment
|
public class ViewKeyYubiKeyFragment
|
||||||
extends CryptoOperationFragment<PromoteKeyringParcel, PromoteKeyResult>
|
extends QueueingCryptoOperationFragment<PromoteKeyringParcel, PromoteKeyResult>
|
||||||
implements LoaderCallbacks<Cursor> {
|
implements LoaderCallbacks<Cursor> {
|
||||||
|
|
||||||
public static final String ARG_MASTER_KEY_ID = "master_key_id";
|
public static final String ARG_MASTER_KEY_ID = "master_key_id";
|
||||||
@@ -214,7 +215,8 @@ public class ViewKeyYubiKeyFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCryptoOperationSuccess(PromoteKeyResult result) {
|
public void onQueuedOperationSuccess(PromoteKeyResult result) {
|
||||||
result.createNotify(getActivity()).show();
|
result.createNotify(getActivity()).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
|||||||
* @see KeychainService
|
* @see KeychainService
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class CryptoOperationFragment<T extends Parcelable, S extends OperationResult>
|
abstract class CryptoOperationFragment<T extends Parcelable, S extends OperationResult>
|
||||||
extends Fragment implements CryptoOperationHelper.Callback<T, S> {
|
extends Fragment implements CryptoOperationHelper.Callback<T, S> {
|
||||||
|
|
||||||
final private CryptoOperationHelper<T, S> mOperationHelper;
|
final private CryptoOperationHelper<T, S> mOperationHelper;
|
||||||
|
|||||||
@@ -7,12 +7,32 @@ import android.os.Parcelable;
|
|||||||
import org.sufficientlysecure.keychain.operations.results.OperationResult;
|
import org.sufficientlysecure.keychain.operations.results.OperationResult;
|
||||||
|
|
||||||
|
|
||||||
|
/** CryptoOperationFragment which calls crypto operation results only while
|
||||||
|
* attached to Activity.
|
||||||
|
*
|
||||||
|
* This subclass of CryptoOperationFragment substitutes the onCryptoOperation*
|
||||||
|
* methods for onQueuedOperation* ones, which are ensured to be called while
|
||||||
|
* the fragment is attached to an Activity, possibly delaying the call until
|
||||||
|
* the Fragment is re-attached.
|
||||||
|
*
|
||||||
|
* TODO merge this functionality into CryptoOperationFragment?
|
||||||
|
*
|
||||||
|
* @see CryptoOperationFragment
|
||||||
|
*/
|
||||||
public abstract class QueueingCryptoOperationFragment<T extends Parcelable, S extends OperationResult>
|
public abstract class QueueingCryptoOperationFragment<T extends Parcelable, S extends OperationResult>
|
||||||
extends CryptoOperationFragment<T,S> {
|
extends CryptoOperationFragment<T,S> {
|
||||||
|
|
||||||
public static final String ARG_QUEUED_RESULT = "queued_result";
|
public static final String ARG_QUEUED_RESULT = "queued_result";
|
||||||
private S mQueuedResult;
|
private S mQueuedResult;
|
||||||
|
|
||||||
|
public QueueingCryptoOperationFragment() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public QueueingCryptoOperationFragment(Integer initialProgressMsg) {
|
||||||
|
super(initialProgressMsg);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|||||||
Reference in New Issue
Block a user