aboutsummaryrefslogtreecommitdiff
path: root/en/setup/start/p-release-notes.md
diff options
context:
space:
mode:
Diffstat (limited to 'en/setup/start/p-release-notes.md')
-rw-r--r--en/setup/start/p-release-notes.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/en/setup/start/p-release-notes.md b/en/setup/start/p-release-notes.md
index cc5b6fce..70cd72c9 100644
--- a/en/setup/start/p-release-notes.md
+++ b/en/setup/start/p-release-notes.md
@@ -226,6 +226,23 @@ features and changes to requirements for previously released functionality.
## Settings
+### Better App Widgets
+
+The Android app widget framework now offers increased visibility into user
+interactions, specifically when a user deletes or manually adds widgets. This
+functionality comes by default with Launcher3.
+
+Manufacturers need to update their Launcher apps (which are shipped with devices)
+to support this feature if not based upon Launcher3. OEMs need to support the new
+[widgetFeatures API](https://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo#widgetFeatures){: .external}
+in their default Launcher.
+
+The API in itself does not guarantee that it will work end to end unless the
+launchers implement it as expected. AOSP includes a sample implementation. See
+the AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca for the sample code
+provided.
+
+
### Device State Change Notifications to Package Installers
A protected system broadcast can now be sent to apps that hold the
@@ -801,6 +818,49 @@ usage on the device since the last device boot. It provides additional
functionality such as socket tagging, separating foreground/background traffic
and per-UID firewall to block apps from network access depending on device state.
+### Restore to lower APIs
+
+Devices can now restore from future versions of the operating system. This is
+especially useful when users have upgraded their phones but then lost or broken
+them.
+
+If an OEM modifies the backup agents for any of the system packages (android,
+system, settings), those agents should handle restoring backups sets that were
+made on later versions of the platform without crashing and with restoring at
+least some data.
+
+Consider using a validator to check for invalid values of a given piece of
+backup data and only restore valid data, as done in
+`core/java/android/provider/SettingsValidators.java`.
+
+The feature is on by default. SettingsBackupAgent support for restoring from
+future versions can be turned off via
+`Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION`. No additional
+implementation is required unless the device manufacturer extends one of backup
+agents included in the ROM (or adds a custom one).
+
+This feature allows system restores from future versions of the platform;
+however, it’s reasonable to expect that the restored data won’t be complete. The
+following instructions apply to the following backup agents:
+
+- **PackageManagerBackupAgent**: Supports future versions of the backup data
+ via format versioning; extensions here MUST be compatible with current
+ restore code or follow instructions in the class, which include bumping the
+ proper constants.
+
+- **SystemBackupAgent**: `restoreAnyVersion = false` in Android this release
+ and higher. Doesn’t support restore from higher versions of the API.
+
+- **SettingsBackupAgent**: `restoreAnyVersion = true` starting in this release.
+ Partial support exists via validators. A setting can be restored from a
+ higher API version if a validator for it exists in the target OS. Adding any
+ setting should be accompanied by its validator. Check class for details.
+
+- Any **custom backup agent** included in the ROM should increase its version
+ code any time an incompatible change is made to the backup data format and
+ ensure `restoreAnyVersion = false` (the default) if their agent is not
+ prepared to deal with backup data from a future version of their code.
+
## Enterprise
### Managed Profile Improvements