Loading Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,7 @@ LOCAL_SRC_FILES += \ core/java/android/content/ISyncContext.aidl \ core/java/android/content/ISyncServiceAdapter.aidl \ core/java/android/content/ISyncStatusObserver.aidl \ core/java/android/content/om/IOverlayManager.aidl \ core/java/android/content/pm/ILauncherApps.aidl \ core/java/android/content/pm/IOnAppsChangedListener.aidl \ core/java/android/content/pm/IOnPermissionsChangeListener.aidl \ Loading core/java/android/content/Context.java +10 −0 Original line number Diff line number Diff line Loading @@ -3753,6 +3753,16 @@ public abstract class Context { */ public static final String INCIDENT_SERVICE = "incident"; /** * Use with {@link #getSystemService} to retrieve a {@link * android.content.om.OverlayManager} for managing overlay packages. * * @see #getSystemService * @see android.content.om.OverlayManager * @hide */ public static final String OVERLAY_SERVICE = "overlay"; /** * Determine whether the given permission is allowed for a particular * process and user ID running in the system. Loading core/java/android/content/Intent.java +34 −0 Original line number Diff line number Diff line Loading @@ -3132,6 +3132,40 @@ public class Intent implements Parcelable, Cloneable { public static final String ACTION_MEDIA_RESOURCE_GRANTED = "android.intent.action.MEDIA_RESOURCE_GRANTED"; /** * Broadcast Action: An overlay package has been installed. The data * contains the name of the added overlay package. * @hide */ public static final String ACTION_OVERLAY_ADDED = "android.intent.action.OVERLAY_ADDED"; /** * Broadcast Action: An overlay package has changed. The data contains the * name of the overlay package which has changed. This is broadcast on all * changes to the OverlayInfo returned by {@link * android.content.om.IOverlayManager#getOverlayInfo(String, int)}. The * most common change is a state change that will change whether the * overlay is enabled or not. * @hide */ public static final String ACTION_OVERLAY_CHANGED = "android.intent.action.OVERLAY_CHANGED"; /** * Broadcast Action: An overlay package has been removed. The data contains * the name of the overlay package which has been removed. * @hide */ public static final String ACTION_OVERLAY_REMOVED = "android.intent.action.OVERLAY_REMOVED"; /** * Broadcast Action: The order of a package's list of overlay packages has * changed. The data contains the package name of the overlay package that * had its position in the list adjusted. * @hide */ public static final String ACTION_OVERLAY_PRIORITY_CHANGED = "android.intent.action.OVERLAY_PRIORITY_CHANGED"; /** * Activity Action: Allow the user to select and return one or more existing * documents. When invoked, the system will display the various Loading core/java/android/content/om/IOverlayManager.aidl 0 → 100644 +129 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.content.om; import android.content.om.OverlayInfo; /** * Api for getting information about overlay packages. * * {@hide} */ interface IOverlayManager { /** * Returns information about all installed overlay packages for the * specified user. If there are no installed overlay packages for this user, * an empty map is returned (i.e. null is never returned). The returned map is a * mapping of target package names to lists of overlays. Each list for a * given target package is sorted in priority order, with the overlay with * the highest priority at the end of the list. * * @param userId The user to get the OverlayInfos for. * @return A Map<String, List<OverlayInfo>> with target package names * mapped to lists of overlays; if no overlays exist for the * requested user, an empty map is returned. */ Map getAllOverlays(in int userId); /** * Returns information about all overlays for the given target package for * the specified user. The returned list is ordered according to the * overlay priority with the highest priority at the end of the list. * * @param targetPackageName The name of the target package. * @param userId The user to get the OverlayInfos for. * @return A list of OverlayInfo objects; if no overlays exist for the * requested package, an empty list is returned. */ List getOverlayInfosForTarget(in String targetPackageName, in int userId); /** * Returns information about the overlay with the given package name for the * specified user. * * @param packageName The name of the overlay package. * @param userId The user to get the OverlayInfo for. * @return The OverlayInfo for the overlay package; or null if no such * overlay package exists. */ OverlayInfo getOverlayInfo(in String packageName, in int userId); /** * Request that an overlay package be enabled or disabled when possible to * do so. * * It is always possible to disable an overlay, but due to technical and * security reasons it may not always be possible to enable an overlay. An * example of the latter is when the related target package is not * installed. If the technical obstacle is later overcome, the overlay is * automatically enabled at that point in time. * * An enabled overlay is a part of target package's resources, i.e. it will * be part of any lookups performed via {@link android.content.res.Resources} * and {@link android.content.res.AssetManager}. A disabled overlay will no * longer affect the resources of the target package. If the target is * currently running, its outdated resources will be replaced by new ones. * This happens the same way as when an application enters or exits split * window mode. * * @param packageName The name of the overlay package. * @param enable true to enable the overlay, false to disable it. * @param userId The user for which to change the overlay. * @return true if the system successfully registered the request, false * otherwise. */ boolean setEnabled(in String packageName, in boolean enable, in int userId); /** * Change the priority of the given overlay to be just higher than the * overlay with package name newParentPackageName. Both overlay packages * must have the same target and user. * * @see getOverlayInfosForTarget * * @param packageName The name of the overlay package whose priority should * be adjusted. * @param newParentPackageName The name of the overlay package the newly * adjusted overlay package should just outrank. * @param userId The user for which to change the overlay. */ boolean setPriority(in String packageName, in String newParentPackageName, in int userId); /** * Change the priority of the given overlay to the highest priority relative to * the other overlays with the same target and user. * * @see getOverlayInfosForTarget * * @param packageName The name of the overlay package whose priority should * be adjusted. * @param userId The user for which to change the overlay. */ boolean setHighestPriority(in String packageName, in int userId); /** * Change the priority of the overlay to the lowest priority relative to * the other overlays for the same target and user. * * @see getOverlayInfosForTarget * * @param packageName The name of the overlay package whose priority should * be adjusted. * @param userId The user for which to change the overlay. */ boolean setLowestPriority(in String packageName, in int userId); } core/java/android/content/om/OverlayInfo.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.content.om; parcelable OverlayInfo; Loading
Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,7 @@ LOCAL_SRC_FILES += \ core/java/android/content/ISyncContext.aidl \ core/java/android/content/ISyncServiceAdapter.aidl \ core/java/android/content/ISyncStatusObserver.aidl \ core/java/android/content/om/IOverlayManager.aidl \ core/java/android/content/pm/ILauncherApps.aidl \ core/java/android/content/pm/IOnAppsChangedListener.aidl \ core/java/android/content/pm/IOnPermissionsChangeListener.aidl \ Loading
core/java/android/content/Context.java +10 −0 Original line number Diff line number Diff line Loading @@ -3753,6 +3753,16 @@ public abstract class Context { */ public static final String INCIDENT_SERVICE = "incident"; /** * Use with {@link #getSystemService} to retrieve a {@link * android.content.om.OverlayManager} for managing overlay packages. * * @see #getSystemService * @see android.content.om.OverlayManager * @hide */ public static final String OVERLAY_SERVICE = "overlay"; /** * Determine whether the given permission is allowed for a particular * process and user ID running in the system. Loading
core/java/android/content/Intent.java +34 −0 Original line number Diff line number Diff line Loading @@ -3132,6 +3132,40 @@ public class Intent implements Parcelable, Cloneable { public static final String ACTION_MEDIA_RESOURCE_GRANTED = "android.intent.action.MEDIA_RESOURCE_GRANTED"; /** * Broadcast Action: An overlay package has been installed. The data * contains the name of the added overlay package. * @hide */ public static final String ACTION_OVERLAY_ADDED = "android.intent.action.OVERLAY_ADDED"; /** * Broadcast Action: An overlay package has changed. The data contains the * name of the overlay package which has changed. This is broadcast on all * changes to the OverlayInfo returned by {@link * android.content.om.IOverlayManager#getOverlayInfo(String, int)}. The * most common change is a state change that will change whether the * overlay is enabled or not. * @hide */ public static final String ACTION_OVERLAY_CHANGED = "android.intent.action.OVERLAY_CHANGED"; /** * Broadcast Action: An overlay package has been removed. The data contains * the name of the overlay package which has been removed. * @hide */ public static final String ACTION_OVERLAY_REMOVED = "android.intent.action.OVERLAY_REMOVED"; /** * Broadcast Action: The order of a package's list of overlay packages has * changed. The data contains the package name of the overlay package that * had its position in the list adjusted. * @hide */ public static final String ACTION_OVERLAY_PRIORITY_CHANGED = "android.intent.action.OVERLAY_PRIORITY_CHANGED"; /** * Activity Action: Allow the user to select and return one or more existing * documents. When invoked, the system will display the various Loading
core/java/android/content/om/IOverlayManager.aidl 0 → 100644 +129 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.content.om; import android.content.om.OverlayInfo; /** * Api for getting information about overlay packages. * * {@hide} */ interface IOverlayManager { /** * Returns information about all installed overlay packages for the * specified user. If there are no installed overlay packages for this user, * an empty map is returned (i.e. null is never returned). The returned map is a * mapping of target package names to lists of overlays. Each list for a * given target package is sorted in priority order, with the overlay with * the highest priority at the end of the list. * * @param userId The user to get the OverlayInfos for. * @return A Map<String, List<OverlayInfo>> with target package names * mapped to lists of overlays; if no overlays exist for the * requested user, an empty map is returned. */ Map getAllOverlays(in int userId); /** * Returns information about all overlays for the given target package for * the specified user. The returned list is ordered according to the * overlay priority with the highest priority at the end of the list. * * @param targetPackageName The name of the target package. * @param userId The user to get the OverlayInfos for. * @return A list of OverlayInfo objects; if no overlays exist for the * requested package, an empty list is returned. */ List getOverlayInfosForTarget(in String targetPackageName, in int userId); /** * Returns information about the overlay with the given package name for the * specified user. * * @param packageName The name of the overlay package. * @param userId The user to get the OverlayInfo for. * @return The OverlayInfo for the overlay package; or null if no such * overlay package exists. */ OverlayInfo getOverlayInfo(in String packageName, in int userId); /** * Request that an overlay package be enabled or disabled when possible to * do so. * * It is always possible to disable an overlay, but due to technical and * security reasons it may not always be possible to enable an overlay. An * example of the latter is when the related target package is not * installed. If the technical obstacle is later overcome, the overlay is * automatically enabled at that point in time. * * An enabled overlay is a part of target package's resources, i.e. it will * be part of any lookups performed via {@link android.content.res.Resources} * and {@link android.content.res.AssetManager}. A disabled overlay will no * longer affect the resources of the target package. If the target is * currently running, its outdated resources will be replaced by new ones. * This happens the same way as when an application enters or exits split * window mode. * * @param packageName The name of the overlay package. * @param enable true to enable the overlay, false to disable it. * @param userId The user for which to change the overlay. * @return true if the system successfully registered the request, false * otherwise. */ boolean setEnabled(in String packageName, in boolean enable, in int userId); /** * Change the priority of the given overlay to be just higher than the * overlay with package name newParentPackageName. Both overlay packages * must have the same target and user. * * @see getOverlayInfosForTarget * * @param packageName The name of the overlay package whose priority should * be adjusted. * @param newParentPackageName The name of the overlay package the newly * adjusted overlay package should just outrank. * @param userId The user for which to change the overlay. */ boolean setPriority(in String packageName, in String newParentPackageName, in int userId); /** * Change the priority of the given overlay to the highest priority relative to * the other overlays with the same target and user. * * @see getOverlayInfosForTarget * * @param packageName The name of the overlay package whose priority should * be adjusted. * @param userId The user for which to change the overlay. */ boolean setHighestPriority(in String packageName, in int userId); /** * Change the priority of the overlay to the lowest priority relative to * the other overlays for the same target and user. * * @see getOverlayInfosForTarget * * @param packageName The name of the overlay package whose priority should * be adjusted. * @param userId The user for which to change the overlay. */ boolean setLowestPriority(in String packageName, in int userId); }
core/java/android/content/om/OverlayInfo.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.content.om; parcelable OverlayInfo;