summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTransformer Team <transformer-eng@google.com>2019-05-02 17:29:18 +0100
committerPetr Cermak <petrcermak@google.com>2019-05-03 15:03:37 +0000
commit2141bb48d626369da6313aac930939b8faa83226 (patch)
tree62ccf6cc3c5ab5016389d17e0cb1adf8fc9428a3
parentbe853756f8a215492b11ae545206d12b64d3a03c (diff)
downloadlibbackup-android11-d1-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
-rw-r--r--build.gradle10
-rw-r--r--src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java6
-rw-r--r--src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java58
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();
+ }
+ }
+}