From 7f9cc445fba937c5ae9ea1891ee1227bd68628b0 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Thu, 9 Jul 2015 02:35:22 +0200 Subject: cryptoophelper: requested code must be saved between instances! --- .../keychain/ui/base/CryptoOperationFragment.java | 13 +++++++++++++ .../keychain/ui/base/CryptoOperationHelper.java | 15 ++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java index c22566767..d831cb4b1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui.base; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.os.Parcelable; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; @@ -62,6 +63,18 @@ abstract class CryptoOperationFragment(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 public void onActivityResult(int requestCode, int resultCode, Intent data) { mOperationHelper.handleActivityResult(requestCode, resultCode, data); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java index 4bf86af8f..9dfa0be21 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java @@ -26,6 +26,7 @@ import android.os.Bundle; import android.os.Message; import android.os.Messenger; import android.os.Parcelable; +import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; @@ -53,6 +54,8 @@ import org.sufficientlysecure.keychain.util.Log; */ public class CryptoOperationHelper { + public static final String ARG_REQUESTED_CODE = "requested_code"; + public interface Callback { T createOperationInput(); @@ -102,6 +105,17 @@ public class CryptoOperationHelper