cryptoophelper: requested code must be saved between instances!
This commit is contained in:
@@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui.base;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
@@ -62,6 +63,18 @@ abstract class CryptoOperationFragment<T extends Parcelable, S extends Operation
|
|||||||
mOperationHelper = new CryptoOperationHelper<>(this, this, R.string.progress_processing);
|
mOperationHelper = new CryptoOperationHelper<>(this, this, R.string.progress_processing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
mOperationHelper.onRestoreInstanceState(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
mOperationHelper.onSaveInstanceState(outState);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
mOperationHelper.handleActivityResult(requestCode, resultCode, data);
|
mOperationHelper.handleActivityResult(requestCode, resultCode, data);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import android.os.Bundle;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.Messenger;
|
import android.os.Messenger;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
@@ -53,6 +54,8 @@ import org.sufficientlysecure.keychain.util.Log;
|
|||||||
*/
|
*/
|
||||||
public class CryptoOperationHelper<T extends Parcelable, S extends OperationResult> {
|
public class CryptoOperationHelper<T extends Parcelable, S extends OperationResult> {
|
||||||
|
|
||||||
|
public static final String ARG_REQUESTED_CODE = "requested_code";
|
||||||
|
|
||||||
public interface Callback<T extends Parcelable, S extends OperationResult> {
|
public interface Callback<T extends Parcelable, S extends OperationResult> {
|
||||||
T createOperationInput();
|
T createOperationInput();
|
||||||
|
|
||||||
@@ -102,6 +105,17 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
|
|||||||
mCallback = callback;
|
mCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
|
outState.putInt(ARG_REQUESTED_CODE, mRequestedCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onRestoreInstanceState(@Nullable Bundle state) {
|
||||||
|
if (state == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mRequestedCode = state.getInt(ARG_REQUESTED_CODE, -1);
|
||||||
|
}
|
||||||
|
|
||||||
public void setProgressMessageResource(int id) {
|
public void setProgressMessageResource(int id) {
|
||||||
mProgressMessageResource = id;
|
mProgressMessageResource = id;
|
||||||
}
|
}
|
||||||
@@ -325,6 +339,5 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
|
|||||||
throw new AssertionError("bad return class ("
|
throw new AssertionError("bad return class ("
|
||||||
+ result.getClass().getSimpleName() + "), this is a programming error!");
|
+ result.getClass().getSimpleName() + "), this is a programming error!");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user