aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-03-09 23:58:05 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-03-09 23:58:05 +0100
commit6df9387c2c08c7e872e4721c5d677188d29164f4 (patch)
treea7d0cffa5796edfbe0d884ff24b1f5f95271e950 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
parentebf359634139ff2125233a78a976388082abf00c (diff)
downloadopen-keychain-6df9387c2c08c7e872e4721c5d677188d29164f4.tar.gz
open-keychain-6df9387c2c08c7e872e4721c5d677188d29164f4.tar.bz2
open-keychain-6df9387c2c08c7e872e4721c5d677188d29164f4.zip
support backstack for verification
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java38
1 files changed, 26 insertions, 12 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
index 5b8d14c4c..8e81eb383 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
@@ -14,6 +14,8 @@ import android.os.Bundle;
import android.os.Message;
import android.os.Messenger;
import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentManager.OnBackStackChangedListener;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
@@ -52,7 +54,7 @@ import org.sufficientlysecure.keychain.util.Log;
public class LinkedIdViewFragment extends Fragment implements
- LoaderManager.LoaderCallbacks<Cursor> {
+ LoaderManager.LoaderCallbacks<Cursor>, OnBackStackChangedListener {
public static final int REQUEST_CODE_PASSPHRASE = 0x00008001;
@@ -155,6 +157,12 @@ public class LinkedIdViewFragment extends Fragment implements
}
}
+ @Override
+ public void onBackStackChanged() {
+ mViewHolder.setShowVerifying(false);
+ getFragmentManager().removeOnBackStackChangedListener(LinkedIdViewFragment.this);
+ }
+
public interface OnIdentityLoadedListener {
public void onIdentityLoaded();
}
@@ -239,7 +247,7 @@ public class LinkedIdViewFragment extends Fragment implements
private final ViewAnimator vVerifyingContainer;
LinkedIdsAdapter.ViewHolder mLinkedIdHolder;
- private ViewAnimator mButtonSwitcher;
+ private ViewAnimator vButtonSwitcher;
private CertListWidget vLinkedCerts;
private CertifyKeySpinner vKeySpinner;
private final View vButtonVerify;
@@ -254,7 +262,7 @@ public class LinkedIdViewFragment extends Fragment implements
ViewHolder(View root) {
vLinkedCerts = (CertListWidget) root.findViewById(R.id.linked_id_certs);
vKeySpinner = (CertifyKeySpinner) root.findViewById(R.id.cert_key_spinner);
- mButtonSwitcher = (ViewAnimator) root.findViewById(R.id.button_animator);
+ vButtonSwitcher = (ViewAnimator) root.findViewById(R.id.button_animator);
mLinkedIdHolder = new LinkedIdsAdapter.ViewHolder(root);
@@ -278,6 +286,7 @@ public class LinkedIdViewFragment extends Fragment implements
}
if (!show) {
vKeySpinner.setVisibility(View.GONE);
+ showButton(0);
}
}
@@ -285,6 +294,13 @@ public class LinkedIdViewFragment extends Fragment implements
vProgress.setDisplayedChild(show ? 0 : 1);
}
+ void showButton(int which) {
+ if (vButtonSwitcher.getDisplayedChild() == which) {
+ return;
+ }
+ vButtonSwitcher.setDisplayedChild(which);
+ }
+
}
@Override
@@ -324,13 +340,6 @@ public class LinkedIdViewFragment extends Fragment implements
return root;
}
- void showButton(int which) {
- if (mViewHolder.mButtonSwitcher.getDisplayedChild() == which) {
- return;
- }
- mViewHolder.mButtonSwitcher.setDisplayedChild(which);
- }
-
void verifyResource() {
// only one at a time
@@ -341,6 +350,11 @@ public class LinkedIdViewFragment extends Fragment implements
mInProgress = true;
}
+ FragmentManager manager = getFragmentManager();
+ manager.beginTransaction().addToBackStack("verification").commit();
+ manager.executePendingTransactions();
+ manager.addOnBackStackChangedListener(this);
+
mViewHolder.setShowVerifying(true);
mViewHolder.vKeySpinner.setVisibility(View.GONE);
@@ -371,7 +385,7 @@ public class LinkedIdViewFragment extends Fragment implements
mViewHolder.vText.setText("Ok");
setupForConfirmation();
} else {
- showButton(1);
+ mViewHolder.showButton(1);
mViewHolder.vText.setText("Error");
}
mInProgress = false;
@@ -383,7 +397,7 @@ public class LinkedIdViewFragment extends Fragment implements
void setupForConfirmation() {
// button is 'confirm'
- showButton(2);
+ mViewHolder.showButton(2);
mViewHolder.vKeySpinner.setVisibility(View.VISIBLE);