diff options
3 files changed, 40 insertions, 6 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index e0abfb56c1b0..ba2f7f060b82 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -3973,6 +3973,15 @@ public final class Settings { }; /** + * Keys we no longer back up under the current schema, but want to continue to + * process when restoring historical backup datasets. + * + * @hide + */ + public static final String[] LEGACY_RESTORE_SETTINGS = { + }; + + /** * These are all public system settings * * @hide @@ -7092,6 +7101,10 @@ public final class Settings { NOTIFICATION_BADGING }; + /** @hide */ + public static final String[] LEGACY_RESTORE_SETTINGS = { + }; + /** * These entries are considered common between the personal and the managed profile, * since the managed profile doesn't get to change them. @@ -10095,6 +10108,10 @@ public final class Settings { BLUETOOTH_ON }; + /** @hide */ + public static final String[] LEGACY_RESTORE_SETTINGS = { + }; + private static final ContentProviderHolder sProviderHolder = new ContentProviderHolder(CONTENT_URI); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index 533c52b20f4e..96f51c16796f 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -16,6 +16,7 @@ package com.android.providers.settings; +import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.backup.BackupAgentHelper; import android.app.backup.BackupDataInput; @@ -30,7 +31,6 @@ import android.net.NetworkPolicyManager; import android.net.Uri; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; -import android.os.Handler; import android.os.ParcelFileDescriptor; import android.os.UserHandle; import android.provider.Settings; @@ -590,14 +590,18 @@ public class SettingsBackupAgent extends BackupAgentHelper { Log.i(TAG, "restoreSettings: " + contentUri); } - // Figure out the white list and redirects to the global table. + // Figure out the white list and redirects to the global table. We restore anything + // in either the backup whitelist or the legacy-restore whitelist for this table. final String[] whitelist; if (contentUri.equals(Settings.Secure.CONTENT_URI)) { - whitelist = Settings.Secure.SETTINGS_TO_BACKUP; + whitelist = concat(Settings.Secure.SETTINGS_TO_BACKUP, + Settings.Secure.LEGACY_RESTORE_SETTINGS); } else if (contentUri.equals(Settings.System.CONTENT_URI)) { - whitelist = Settings.System.SETTINGS_TO_BACKUP; + whitelist = concat(Settings.System.SETTINGS_TO_BACKUP, + Settings.System.LEGACY_RESTORE_SETTINGS); } else if (contentUri.equals(Settings.Global.CONTENT_URI)) { - whitelist = Settings.Global.SETTINGS_TO_BACKUP; + whitelist = concat(Settings.Global.SETTINGS_TO_BACKUP, + Settings.Global.LEGACY_RESTORE_SETTINGS); } else { throw new IllegalArgumentException("Unknown URI: " + contentUri); } @@ -648,6 +652,18 @@ public class SettingsBackupAgent extends BackupAgentHelper { } } + private final String[] concat(String[] first, @Nullable String[] second) { + if (second == null || second.length == 0) { + return first; + } + final int firstLen = first.length; + final int secondLen = second.length; + String[] both = new String[firstLen + secondLen]; + System.arraycopy(first, 0, both, 0, firstLen); + System.arraycopy(second, 0, both, firstLen, secondLen); + return both; + } + /** * Restores the owner info enabled and other settings in LockSettings. * diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 3906e402b013..73f3048a6e68 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -6857,7 +6857,8 @@ public class StatusBar extends SystemUI implements DemoMode, // If mAlwaysExpandNonGroupedNotification is false, then only expand the // very first notification and if it's not a child of grouped notifications. row.setSystemExpanded(mAlwaysExpandNonGroupedNotification - || (visibleNotifications == 0 && !isChildNotification)); + || (visibleNotifications == 0 && !isChildNotification + && !row.isLowPriority())); } entry.row.setShowAmbient(isDozing()); |