diff options
Diffstat (limited to 'src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java')
-rw-r--r-- | src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java b/src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java new file mode 100644 index 0000000..15ee687 --- /dev/null +++ b/src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java @@ -0,0 +1,58 @@ +package com.google.android.libraries.backup.shadow; + +import android.app.backup.BackupHelper; +import android.content.Context; +import android.util.Log; + +/** + * No-op backup helper representing all an unsupported backup helpers. + * + * <p>{@see BackupAgentHelperShadow} + */ +public class UnsupportedBackupHelperSimulator extends BackupHelperSimulator { + private static final String TAG = "UnsupportedBckupHlprSim"; + private final BackupHelper mHelper; + + UnsupportedBackupHelperSimulator(String keyPrefix, BackupHelper helper) { + super(keyPrefix); + mHelper = helper; + } + + @Override + public Object backup(Context context) { + return new UnsupportedBackupHelperOutput(mHelper); + } + + @Override + public void restore(Context context, Object data) { + if (!(data instanceof UnsupportedBackupHelperOutput)) { + throw new IllegalArgumentException( + "Invalid type of data to restore in unsupported helper \"" + + keyPrefix + + "\": " + + (data == null ? null : data.getClass())); + } + Log.w( + TAG, + "Attempt to restore from an unsupported backup helper: " + mHelper.getClass().getName()); + } + + public static class UnsupportedBackupHelperOutput { + public final BackupHelper wrappedHelper; + + public UnsupportedBackupHelperOutput(BackupHelper helper) { + wrappedHelper = helper; + } + + @Override + public boolean equals(Object obj) { + return obj instanceof UnsupportedBackupHelperOutput + && wrappedHelper.equals(((UnsupportedBackupHelperOutput) obj).wrappedHelper); + } + + @Override + public int hashCode() { + return wrappedHelper.hashCode(); + } + } +} |