summaryrefslogtreecommitdiffstats
path: root/sync/android
diff options
context:
space:
mode:
authormaxbogue <maxbogue@chromium.org>2014-10-09 09:30:27 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-09 16:30:45 +0000
commitcd77acb3d1dc9c4f5e813b6f8239915b06a6cdde (patch)
tree93a19cb56c5582c178e480a0cb746b392b006818 /sync/android
parent2bcfdbacd0c6b0400ebe7fa4b142b5566d7be4d6 (diff)
downloadchromium_src-cd77acb3d1dc9c4f5e813b6f8239915b06a6cdde.zip
chromium_src-cd77acb3d1dc9c4f5e813b6f8239915b06a6cdde.tar.gz
chromium_src-cd77acb3d1dc9c4f5e813b6f8239915b06a6cdde.tar.bz2
Move passphrase dialog logic to the enum.
In preparation for a bug fix. BUG=419927 Review URL: https://codereview.chromium.org/642623002 Cr-Commit-Position: refs/heads/master@{#298900}
Diffstat (limited to 'sync/android')
-rw-r--r--sync/android/java/src/org/chromium/sync/internal_api/pub/SyncDecryptionPassphraseType.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/sync/android/java/src/org/chromium/sync/internal_api/pub/SyncDecryptionPassphraseType.java b/sync/android/java/src/org/chromium/sync/internal_api/pub/SyncDecryptionPassphraseType.java
index 3010c1a..27de932 100644
--- a/sync/android/java/src/org/chromium/sync/internal_api/pub/SyncDecryptionPassphraseType.java
+++ b/sync/android/java/src/org/chromium/sync/internal_api/pub/SyncDecryptionPassphraseType.java
@@ -7,6 +7,9 @@ package org.chromium.sync.internal_api.pub;
import android.os.Parcel;
import android.os.Parcelable;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* This enum describes the type of passphrase required, if any, to decrypt synced data.
*
@@ -51,6 +54,50 @@ public enum SyncDecryptionPassphraseType implements Parcelable {
mNativeValue = nativeValue;
}
+
+ public Set<SyncDecryptionPassphraseType> getVisibleTypes() {
+ Set<SyncDecryptionPassphraseType> visibleTypes = new HashSet<>();
+ switch (this) {
+ case NONE: // Intentional fall through.
+ case IMPLICIT_PASSPHRASE: // Intentional fall through.
+ case KEYSTORE_PASSPHRASE:
+ visibleTypes.add(this);
+ visibleTypes.add(CUSTOM_PASSPHRASE);
+ break;
+ case FROZEN_IMPLICIT_PASSPHRASE:
+ visibleTypes.add(KEYSTORE_PASSPHRASE);
+ visibleTypes.add(FROZEN_IMPLICIT_PASSPHRASE);
+ break;
+ case CUSTOM_PASSPHRASE:
+ visibleTypes.add(KEYSTORE_PASSPHRASE);
+ visibleTypes.add(CUSTOM_PASSPHRASE);
+ break;
+ case INVALID: // Intentional fall through.
+ default:
+ visibleTypes.add(this);
+ break;
+ }
+ return visibleTypes;
+ }
+
+ public Set<SyncDecryptionPassphraseType> getAllowedTypes() {
+ Set<SyncDecryptionPassphraseType> allowedTypes = new HashSet<>();
+ switch (this) {
+ case NONE: // Intentional fall through.
+ case IMPLICIT_PASSPHRASE: // Intentional fall through.
+ case KEYSTORE_PASSPHRASE:
+ allowedTypes.add(this);
+ allowedTypes.add(CUSTOM_PASSPHRASE);
+ break;
+ case FROZEN_IMPLICIT_PASSPHRASE: // Intentional fall through.
+ case CUSTOM_PASSPHRASE: // Intentional fall through.
+ case INVALID: // Intentional fall through.
+ default:
+ break;
+ }
+ return allowedTypes;
+ }
+
public int internalValue() {
// Since the values in this enums are constant and very small, this cast is safe.
return mNativeValue;