History log of /frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5e1953a74ed8f2fe11ee4e7807b1859bf1e30c3f 22-May-2017 Andrew Sapperstein <asapperstein@google.com> Bump overlay version number.

Forces the overlays.xml file to be ignored and overwritten,
which makes the default overlay be used in all cases, rather
than no overlay.

Fixes: 37788042
Test: manual, removed some overlays in an update and observed that
the proper overlay was used.

Change-Id: Ieda4485f3e64ae627476e1fdcfc5af6cdcca0c15
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
ada8deb43649aed879ceba28daee4af69ae0cc8d 12-May-2017 Adam Lesinski <adamlesinski@google.com> OMS: Setup state for users on boot and when added

Some users never get switched to (managed profile/work profile) so the
overlay state for a user would never be setup (but they could still show
UI and apps).

This change ensures that user state is setup after an OTA to android O,
and whenever a user is added.

Bug: 37899201
Test: manual (add user via Device Admin sample: vendor/google/tools/DeviceAdminSample)
Change-Id: If214e26e39b18c2861794baf5c608a47d536e5ff
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
d11c5510b13171878f8d6f6a3424c7b2418c3031 11-Apr-2017 Adam Lesinski <adamlesinski@google.com> OMS: Fix bug where overlay settings wouldn't persist

The dead user check was using a List.removeAll() call to find
the subset of users that have been removed and need deleting
from the overlay settings. The target class, UserInfo, does not
implement equals(), therefore no UserInfos would be removed from
the set and all user IDs would be candidates for deleting.

This change avoids the UserInfo class entirely and manipulates userIds.

Bug: 36099320
Test: Pick a theme and reboot.
Test: Theme should still be applied on next boot.
Change-Id: I1ee57839515460bf578664dfe1bd67df7d10d041
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
42d53f6b1883e3db514ad8d105d23fe6a1e9a59b 10-Apr-2017 Jaekyun Seok <jaekyun@google.com> Bring back the priority feature for static RRO

Supporting the priority feature is requested by partners because they
want to layer RRO for their customers.
Applying the priority feature on non-static RRO isn't feasible because
their priority should be managed directly by users.

Test: building succeeded and tested on sailfish device.
Bug: 37185740
Change-Id: I8ef83c5e3178bd395ec7e6498764a535f24ef235
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
c745f42169df6687a764e48b65878f22965c1530 06-Apr-2017 Adam Lesinski <adamlesinski@google.com> OverlayManagerService: Make broadcasts/updates explicit

Previously there was a listener attached to the Settings object
which would fire any time a single settings change was made.
This made it very inefficient to do batch updates.

This change makes the Settings object return its mutated status
on each call to a mutating method, allowing the caller to keep track
of whether or not to notify the listener of any changes.

This allows for the implementation of setEnabledExclusive, where
all but the target overlay are disabled and only a single notification
/ update is sent out.

Bug: 36099320
Test: manual (with OverlayManagerService.DEBUG = true), observe logcat
Test: when Going to Settings -> Display -> Advanced -> Themes and
Test: selecting a theme.
Change-Id: Ic8b8ca3ba0cf5d2d682bf6dac5a6c82e4f0f2502
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
d68e9187cc6c72349714d91abb10ad61b0dfdd0d 06-Mar-2017 Adam Lesinski <adamlesinski@google.com> OMS: Remove old overlays.xml versions

In order to allow the default theme to take effect, older
versions of overlays.xml need to be purged.

Bug: 35757608
Test: manual
Change-Id: Ib8719567455038e8d61bf75968a1842edc34edee
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
a5ca62408381058c12bd5a1fe3b30f2512a73e03 02-Mar-2017 Adam Lesinski <adamlesinski@google.com> OMS: Introduce default overlays

Default overlays are applied at first boot. They are specified by
package name in system property ro.boot.vendor.overlay.theme as a
semicolon separated list.

Eg:

ro.boot.vendor.overlay=com.android.vendor.overlay;com.android.vendor.overlay_two

Test: manual (remove /data/system/overlays.xml and reboot)
Change-Id: I8a7443a9059ccabfe1a63b075b95f1b2b6db7dbd
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java
eabc9e95768e7ac9acc3b32dc9ac2edf99c9e2c5 15-Dec-2015 MÃ¥rten Kongstad <marten.kongstad@sonymobile.com> OMS: introduce the OverlayManagerService

Add a new system service to manage Runtime Resource Overlays. This will
offload the PackageManagerService and allow administration of overlay
packages while affected packages continue to execute.

Overlays can be enabled or disabled during runtime. Running applications
will re-create their ResourcesImpl objects and restart their activities
via the usual activity life cycle.

The order in which a set of overlays is loaded may also be changed
during runtime. The underlying mechanics are the same as for when an
overlay is enabled or disabled.

When an overlay changes state, e.g. becomes enabled, the
OverlayManagerService will broadcast one of the new intents
android.intent.action.OVERLAY_ADDED, *_CHANGED, *_REMOVED or
*.OVERLAYS_REORDERED.

Clients that wish to read information about overlays for users other
than themselves are required to hold the
android.permission.INTERACT_ACROSS_USERS_FULL permission. This mirrors
the protection level of PackageManager.getPackageInfo.

Clients that wish to change the information are required to
hold the permission android.permission.CHANGE_OVERLAY_PACKAGES.

Each pair of overlay package and corresponding target package is
respresented by a new OverlayInfo class. This class mirrors the
existing PackageInfo class.

Overlay packages are handled per Android user. The data is persisted in
/data/system/overlays.xml.

Co-authored-by: Martin Wallgren <martin.wallgren@sonymobile.com>
Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sonymobile.com>
Bug: 31052947
Test: run tests from 'OMS: tests for OverlayManagerService'
Change-Id: I15325e173193df3240b8dc0a58c852fd7a3d5916
/frameworks/base/services/core/java/com/android/server/om/OverlayManagerSettings.java