diff options
author | Al Sutton <alsutton@google.com> | 2020-01-23 07:31:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-23 07:31:51 +0000 |
commit | c8f1f33ed47ca97fecf058c61ba1b890809812f0 (patch) | |
tree | 94f409ac0dca2c36a38b8ab9fe738a9d400d5051 | |
parent | 89b8707267f2c5e692c6c6933669ca223922cd65 (diff) | |
parent | 27c64a3bed785f1bd4bda4896b4df0807d0804d2 (diff) |
Merge "Add feature flag for "no data" backup calls"
3 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java index eb4af1c2a979..06fccaf8ea81 100644 --- a/core/java/android/util/FeatureFlagUtils.java +++ b/core/java/android/util/FeatureFlagUtils.java @@ -44,6 +44,9 @@ public class FeatureFlagUtils { public static final String SETTINGS_FUSE_FLAG = "settings_fuse"; public static final String NOTIF_CONVO_BYPASS_SHORTCUT_REQ = "settings_notif_convo_bypass_shortcut_req"; + /** @hide */ + public static final String BACKUP_NO_KV_DATA_CHANGE_CALLS = + "backup_enable_no_data_notification_calls"; private static final Map<String, String> DEFAULT_FLAGS; @@ -62,6 +65,9 @@ public class FeatureFlagUtils { DEFAULT_FLAGS.put("settings_controller_loading_enhancement", "false"); DEFAULT_FLAGS.put("settings_conditionals", "false"); DEFAULT_FLAGS.put(NOTIF_CONVO_BYPASS_SHORTCUT_REQ, "true"); + + // Disabled until backup transports support it. + DEFAULT_FLAGS.put(BACKUP_NO_KV_DATA_CHANGE_CALLS, "false"); } /** diff --git a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java index 5e10916c4491..0bcf45d4a526 100644 --- a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java +++ b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java @@ -47,6 +47,7 @@ import android.os.RemoteException; import android.os.SELinux; import android.os.UserHandle; import android.os.WorkSource; +import android.util.FeatureFlagUtils; import android.util.Log; import com.android.internal.annotations.GuardedBy; @@ -399,6 +400,12 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable { * the transport have no data. */ private void informTransportOfUnchangedApps(Set<String> appsBackedUp) { + // If the feautre is not enabled then we just exit early. + if (!FeatureFlagUtils.isEnabled(mBackupManagerService.getContext(), + FeatureFlagUtils.BACKUP_NO_KV_DATA_CHANGE_CALLS)) { + return; + } + String[] succeedingPackages = getSucceedingPackages(); if (succeedingPackages == null) { // Nothing is succeeding, so end early. diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java index ec56e1ebc8e0..62ff3a1c2126 100644 --- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java +++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java @@ -96,6 +96,7 @@ import android.os.Message; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; +import android.util.FeatureFlagUtils; import android.util.Pair; import com.android.internal.backup.IBackupTransport; @@ -258,6 +259,9 @@ public class KeyValueBackupTaskTest { public void tearDown() throws Exception { ShadowBackupDataInput.reset(); ShadowApplicationPackageManager.reset(); + // False by default. + FeatureFlagUtils.setEnabled( + mContext, FeatureFlagUtils.BACKUP_NO_KV_DATA_CHANGE_CALLS, false); } @Test @@ -2344,6 +2348,9 @@ public class KeyValueBackupTaskTest { @Test public void testRunTask_whenNoDataToBackupOnFirstBackup_doesNotTellTransportOfBackup() throws Exception { + FeatureFlagUtils.setEnabled( + mContext, FeatureFlagUtils.BACKUP_NO_KV_DATA_CHANGE_CALLS, true); + TransportMock transportMock = setUpInitializedTransport(mTransport); mBackupManagerService.setCurrentToken(0L); when(transportMock.transport.getCurrentRestoreSet()).thenReturn(1234L); @@ -2361,6 +2368,9 @@ public class KeyValueBackupTaskTest { @Test public void testRunTask_whenBackupHasCompletedAndThenNoDataChanges_transportGetsNotified() throws Exception { + FeatureFlagUtils.setEnabled( + mContext, FeatureFlagUtils.BACKUP_NO_KV_DATA_CHANGE_CALLS, true); + TransportMock transportMock = setUpInitializedTransport(mTransport); when(transportMock.transport.getCurrentRestoreSet()).thenReturn(1234L); when(transportMock.transport.isAppEligibleForBackup( |