diff options
author | Transformer Team <transformer-eng@google.com> | 2019-05-02 17:29:18 +0100 |
---|---|---|
committer | Petr Cermak <petrcermak@google.com> | 2019-05-03 15:03:37 +0000 |
commit | 2141bb48d626369da6313aac930939b8faa83226 (patch) | |
tree | 62ccf6cc3c5ab5016389d17e0cb1adf8fc9428a3 | |
parent | be853756f8a215492b11ae545206d12b64d3a03c (diff) | |
download | libbackup-android11-mainline-cellbroadcast-release.tar.gz |
Import from google3r_aml_301500702android-mainline-12.0.0_r55android-mainline-11.0.0_r9android-mainline-11.0.0_r8android-mainline-11.0.0_r7android-mainline-11.0.0_r6android-mainline-11.0.0_r5android-mainline-11.0.0_r45android-mainline-11.0.0_r44android-mainline-11.0.0_r43android-mainline-11.0.0_r42android-mainline-11.0.0_r41android-mainline-11.0.0_r40android-mainline-11.0.0_r4android-mainline-11.0.0_r39android-mainline-11.0.0_r38android-mainline-11.0.0_r37android-mainline-11.0.0_r36android-mainline-11.0.0_r35android-mainline-11.0.0_r34android-mainline-11.0.0_r33android-mainline-11.0.0_r32android-mainline-11.0.0_r31android-mainline-11.0.0_r30android-mainline-11.0.0_r3android-mainline-11.0.0_r29android-mainline-11.0.0_r28android-mainline-11.0.0_r27android-mainline-11.0.0_r26android-mainline-11.0.0_r25android-mainline-11.0.0_r24android-mainline-11.0.0_r23android-mainline-11.0.0_r22android-mainline-11.0.0_r21android-mainline-11.0.0_r20android-mainline-11.0.0_r2android-mainline-11.0.0_r19android-mainline-11.0.0_r18android-mainline-11.0.0_r17android-mainline-11.0.0_r16android-mainline-11.0.0_r15android-mainline-11.0.0_r14android-mainline-11.0.0_r13android-mainline-11.0.0_r12android-mainline-11.0.0_r10android-mainline-11.0.0_r1android-11.0.0_r9android-11.0.0_r8android-11.0.0_r7android-11.0.0_r48android-11.0.0_r47android-11.0.0_r46android-11.0.0_r45android-11.0.0_r44android-11.0.0_r43android-11.0.0_r42android-11.0.0_r41android-11.0.0_r40android-11.0.0_r39android-11.0.0_r38android-11.0.0_r37android-11.0.0_r36android-11.0.0_r35android-11.0.0_r34android-11.0.0_r33android-11.0.0_r32android-11.0.0_r31android-11.0.0_r30android-11.0.0_r29android-11.0.0_r28android-11.0.0_r27android-11.0.0_r26android-11.0.0_r24android-11.0.0_r23android-11.0.0_r22android-11.0.0_r21android-11.0.0_r20android-11.0.0_r19android-11.0.0_r18android-11.0.0_r16android-11.0.0_r15android-11.0.0_r14android-11.0.0_r13android-11.0.0_r12android-11.0.0_r11android-11.0.0_r10android11-qpr3-s1-releaseandroid11-qpr3-releaseandroid11-qpr2-releaseandroid11-qpr1-s2-releaseandroid11-qpr1-s1-releaseandroid11-qpr1-releaseandroid11-qpr1-d-s1-releaseandroid11-qpr1-d-releaseandroid11-qpr1-c-releaseandroid11-mainline-tethering-releaseandroid11-mainline-sparse-2021-jan-releaseandroid11-mainline-sparse-2020-dec-releaseandroid11-mainline-releaseandroid11-mainline-permission-releaseandroid11-mainline-os-statsd-releaseandroid11-mainline-networkstack-releaseandroid11-mainline-media-swcodec-releaseandroid11-mainline-media-releaseandroid11-mainline-extservices-releaseandroid11-mainline-documentsui-releaseandroid11-mainline-conscrypt-releaseandroid11-mainline-cellbroadcast-releaseandroid11-mainline-captiveportallogin-releaseandroid11-devandroid11-d2-releaseandroid11-d1-s7-releaseandroid11-d1-s6-releaseandroid11-d1-s5-releaseandroid11-d1-s1-releaseandroid11-d1-releaseandroid11-d1-b-release
See google3/third_party/java_src/android_libs/backup/copy.bara.sky.
Project import generated by Copybara.
Exempt-From-Owner-Approval: Ownership was incorrectly given to the Dialer team (b/131880800), but the team members don't actually have CodeReview+2 access.
PiperOrigin-RevId: 246332340
Change-Id: I5488fc9fee9019c69437887f12dda110b85bc9a3
3 files changed, 71 insertions, 3 deletions
diff --git a/build.gradle b/build.gradle index 7a33abd..15071ea 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,16 @@ apply plugin: 'com.android.library' android { + compileSdkVersion 28 + buildToolsVersion '28.0.0' + + defaultConfig { + // Most backup classes (e.g. SharedPreferencesBackupHelper) were added + // in Froyo. + minSdkVersion 8 + targetSdkVersion 28 + } + publishNonDefault true buildTypes { diff --git a/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java b/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java index 18deabf..5615723 100644 --- a/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java +++ b/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java @@ -26,7 +26,6 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.annotation.RealObject; -import org.robolectric.fakes.RoboSharedPreferences; /** * Shadow class for end-to-end testing of {@link BackupAgentHelper} subclasses in unit tests. @@ -141,8 +140,9 @@ public class BackupAgentHelperShadow { } else if (helperClass == FileBackupHelper.class) { simulator = FileBackupHelperSimulator.fromHelper(keyPrefix, (FileBackupHelper) helper); } else { - throw new UnsupportedOperationException( - "Unknown backup helper class for key prefix \"" + keyPrefix + "\": " + helperClass); + Log.w( + TAG, "Unknown backup helper class for key prefix \"" + keyPrefix + "\": " + helperClass); + simulator = new UnsupportedBackupHelperSimulator(keyPrefix, helper); } helperSimulators.put(keyPrefix, simulator); } 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(); + } + } +} |