diff options
author | maxbogue <maxbogue@chromium.org> | 2014-10-09 09:30:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-09 16:30:45 +0000 |
commit | cd77acb3d1dc9c4f5e813b6f8239915b06a6cdde (patch) | |
tree | 93a19cb56c5582c178e480a0cb746b392b006818 /sync/android | |
parent | 2bcfdbacd0c6b0400ebe7fa4b142b5566d7be4d6 (diff) | |
download | chromium_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.java | 47 |
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; |