Loading core/api/current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -11642,13 +11642,13 @@ package android.content.om { } public class OverlayManager { method public void commit(@NonNull android.content.om.OverlayManagerTransaction); method @NonNull @NonUiContext public java.util.List<android.content.om.OverlayInfo> getOverlayInfosForTarget(@NonNull String); } public final class OverlayManagerTransaction implements android.os.Parcelable { ctor public OverlayManagerTransaction(@NonNull android.content.om.OverlayManager); method @NonUiContext public void commit() throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException; method public int describeContents(); method @NonNull public static android.content.om.OverlayManagerTransaction newInstance(); method @NonNull public void registerFabricatedOverlay(@NonNull android.content.om.FabricatedOverlay); method @NonNull public void unregisterFabricatedOverlay(@NonNull android.content.om.OverlayIdentifier); method public void writeToParcel(@NonNull android.os.Parcel, int); core/java/android/content/om/OverlayManager.java +21 −6 Original line number Diff line number Diff line Loading @@ -323,8 +323,27 @@ public class OverlayManager { * * @hide */ private void commitToSystemServer(@NonNull final OverlayManagerTransaction transaction) { try { mService.commit(transaction); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Commit the overlay manager transaction. * * <p>Applications can register overlays and unregister the registered overlays in an atomic * operation via {@link OverlayManagerTransaction}. * * @see OverlayManagerTransaction * * @param transaction the series of overlay related requests to perform * @throws Exception if not all the requests could be successfully */ public void commit(@NonNull final OverlayManagerTransaction transaction) { if (transaction.isSelfTargetingTransaction() if (transaction.isSelfTargeting() || mService == null || mService.asBinder() == null) { try { Loading @@ -335,11 +354,7 @@ public class OverlayManager { return; } try { mService.commit(transaction); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } commitToSystemServer(transaction); } /** Loading core/java/android/content/om/OverlayManagerTransaction.java +22 −29 Original line number Diff line number Diff line Loading @@ -16,20 +16,20 @@ package android.content.om; import static android.annotation.SystemApi.Client.SYSTEM_SERVER; import static com.android.internal.util.Preconditions.checkNotNull; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonUiContext; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.content.pm.PackageManager; import android.annotation.SystemApi; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; Loading Loading @@ -63,7 +63,7 @@ public final class OverlayManagerTransaction implements Parcelable { // TODO: remove @hide from this class when OverlayManager is added to the // SDK, but keep OverlayManagerTransaction.Request @hidden private final List<Request> mRequests; private final OverlayManager mOverlayManager; private final boolean mSelfTargeting; /** * Container for a batch of requests to the OverlayManagerService. Loading @@ -79,21 +79,23 @@ public final class OverlayManagerTransaction implements Parcelable { * }</pre> */ private OverlayManagerTransaction( @NonNull final List<Request> requests, @Nullable OverlayManager overlayManager) { @NonNull final List<Request> requests, boolean selfTargeting) { Objects.requireNonNull(requests); if (requests.contains(null)) { throw new IllegalArgumentException("null request"); } mRequests = requests; mOverlayManager = overlayManager; mSelfTargeting = selfTargeting; } /** * Get an overlay manager transaction with the specified handler. * @param overlayManager handles this transaction. * Get an overlay manager transaction. * * @return a new {@link OverlayManagerTransaction} instance. */ public OverlayManagerTransaction(@NonNull OverlayManager overlayManager) { this(new ArrayList<>(), Objects.requireNonNull(overlayManager)); @NonNull public static OverlayManagerTransaction newInstance() { return new OverlayManagerTransaction(new ArrayList<>(), true /* selfTargeting */); } private OverlayManagerTransaction(@NonNull final Parcel source) { Loading @@ -106,7 +108,7 @@ public final class OverlayManagerTransaction implements Parcelable { final Bundle extras = source.readBundle(null); mRequests.add(new Request(request, overlay, userId, extras)); } mOverlayManager = null; mSelfTargeting = false; } /** Loading @@ -117,6 +119,7 @@ public final class OverlayManagerTransaction implements Parcelable { */ @SuppressLint("ReferencesHidden") @NonNull @SystemApi(client = SYSTEM_SERVER) public Iterator<Request> getRequests() { return mRequests.iterator(); } Loading @@ -137,6 +140,7 @@ public final class OverlayManagerTransaction implements Parcelable { * * @hide */ @SystemApi(client = SYSTEM_SERVER) public static final class Request { @IntDef(prefix = "TYPE_", value = { TYPE_SET_ENABLED, Loading Loading @@ -200,7 +204,7 @@ public final class OverlayManagerTransaction implements Parcelable { /** * Builder class for OverlayManagerTransaction objects. * * TODO(b/269197647): mark the API used by the systemUI. * @hide */ public static final class Builder { Loading Loading @@ -282,7 +286,7 @@ public final class OverlayManagerTransaction implements Parcelable { */ @NonNull public OverlayManagerTransaction build() { return new OverlayManagerTransaction(mRequests, null /* overlayManager */); return new OverlayManagerTransaction(mRequests, false /* selfTargeting */); } } Loading Loading @@ -325,20 +329,6 @@ public final class OverlayManagerTransaction implements Parcelable { } }; /** * Commit the overlay manager transaction to register or unregister overlays for self-targeting. * * <p>Applications can register overlays and unregister the registered overlays via {@link * OverlayManagerTransaction}. * * @throws IOException if there is a file operation error. * @throws PackageManager.NameNotFoundException if the package name is not found. */ @NonUiContext public void commit() throws PackageManager.NameNotFoundException, IOException { mOverlayManager.commitSelfTarget(this); } private static Request generateRegisterFabricatedOverlayRequest( @NonNull FabricatedOverlay overlay) { Objects.requireNonNull(overlay); Loading Loading @@ -385,7 +375,10 @@ public final class OverlayManagerTransaction implements Parcelable { mRequests.add(generateUnRegisterFabricatedOverlayRequest(overlay)); } boolean isSelfTargetingTransaction() { return mOverlayManager != null; /** * Indicate whether the transaction is for self-targeting or not. */ boolean isSelfTargeting() { return mSelfTargeting; } } Loading
core/api/current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -11642,13 +11642,13 @@ package android.content.om { } public class OverlayManager { method public void commit(@NonNull android.content.om.OverlayManagerTransaction); method @NonNull @NonUiContext public java.util.List<android.content.om.OverlayInfo> getOverlayInfosForTarget(@NonNull String); } public final class OverlayManagerTransaction implements android.os.Parcelable { ctor public OverlayManagerTransaction(@NonNull android.content.om.OverlayManager); method @NonUiContext public void commit() throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException; method public int describeContents(); method @NonNull public static android.content.om.OverlayManagerTransaction newInstance(); method @NonNull public void registerFabricatedOverlay(@NonNull android.content.om.FabricatedOverlay); method @NonNull public void unregisterFabricatedOverlay(@NonNull android.content.om.OverlayIdentifier); method public void writeToParcel(@NonNull android.os.Parcel, int);
core/java/android/content/om/OverlayManager.java +21 −6 Original line number Diff line number Diff line Loading @@ -323,8 +323,27 @@ public class OverlayManager { * * @hide */ private void commitToSystemServer(@NonNull final OverlayManagerTransaction transaction) { try { mService.commit(transaction); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Commit the overlay manager transaction. * * <p>Applications can register overlays and unregister the registered overlays in an atomic * operation via {@link OverlayManagerTransaction}. * * @see OverlayManagerTransaction * * @param transaction the series of overlay related requests to perform * @throws Exception if not all the requests could be successfully */ public void commit(@NonNull final OverlayManagerTransaction transaction) { if (transaction.isSelfTargetingTransaction() if (transaction.isSelfTargeting() || mService == null || mService.asBinder() == null) { try { Loading @@ -335,11 +354,7 @@ public class OverlayManager { return; } try { mService.commit(transaction); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } commitToSystemServer(transaction); } /** Loading
core/java/android/content/om/OverlayManagerTransaction.java +22 −29 Original line number Diff line number Diff line Loading @@ -16,20 +16,20 @@ package android.content.om; import static android.annotation.SystemApi.Client.SYSTEM_SERVER; import static com.android.internal.util.Preconditions.checkNotNull; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonUiContext; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.content.pm.PackageManager; import android.annotation.SystemApi; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; Loading Loading @@ -63,7 +63,7 @@ public final class OverlayManagerTransaction implements Parcelable { // TODO: remove @hide from this class when OverlayManager is added to the // SDK, but keep OverlayManagerTransaction.Request @hidden private final List<Request> mRequests; private final OverlayManager mOverlayManager; private final boolean mSelfTargeting; /** * Container for a batch of requests to the OverlayManagerService. Loading @@ -79,21 +79,23 @@ public final class OverlayManagerTransaction implements Parcelable { * }</pre> */ private OverlayManagerTransaction( @NonNull final List<Request> requests, @Nullable OverlayManager overlayManager) { @NonNull final List<Request> requests, boolean selfTargeting) { Objects.requireNonNull(requests); if (requests.contains(null)) { throw new IllegalArgumentException("null request"); } mRequests = requests; mOverlayManager = overlayManager; mSelfTargeting = selfTargeting; } /** * Get an overlay manager transaction with the specified handler. * @param overlayManager handles this transaction. * Get an overlay manager transaction. * * @return a new {@link OverlayManagerTransaction} instance. */ public OverlayManagerTransaction(@NonNull OverlayManager overlayManager) { this(new ArrayList<>(), Objects.requireNonNull(overlayManager)); @NonNull public static OverlayManagerTransaction newInstance() { return new OverlayManagerTransaction(new ArrayList<>(), true /* selfTargeting */); } private OverlayManagerTransaction(@NonNull final Parcel source) { Loading @@ -106,7 +108,7 @@ public final class OverlayManagerTransaction implements Parcelable { final Bundle extras = source.readBundle(null); mRequests.add(new Request(request, overlay, userId, extras)); } mOverlayManager = null; mSelfTargeting = false; } /** Loading @@ -117,6 +119,7 @@ public final class OverlayManagerTransaction implements Parcelable { */ @SuppressLint("ReferencesHidden") @NonNull @SystemApi(client = SYSTEM_SERVER) public Iterator<Request> getRequests() { return mRequests.iterator(); } Loading @@ -137,6 +140,7 @@ public final class OverlayManagerTransaction implements Parcelable { * * @hide */ @SystemApi(client = SYSTEM_SERVER) public static final class Request { @IntDef(prefix = "TYPE_", value = { TYPE_SET_ENABLED, Loading Loading @@ -200,7 +204,7 @@ public final class OverlayManagerTransaction implements Parcelable { /** * Builder class for OverlayManagerTransaction objects. * * TODO(b/269197647): mark the API used by the systemUI. * @hide */ public static final class Builder { Loading Loading @@ -282,7 +286,7 @@ public final class OverlayManagerTransaction implements Parcelable { */ @NonNull public OverlayManagerTransaction build() { return new OverlayManagerTransaction(mRequests, null /* overlayManager */); return new OverlayManagerTransaction(mRequests, false /* selfTargeting */); } } Loading Loading @@ -325,20 +329,6 @@ public final class OverlayManagerTransaction implements Parcelable { } }; /** * Commit the overlay manager transaction to register or unregister overlays for self-targeting. * * <p>Applications can register overlays and unregister the registered overlays via {@link * OverlayManagerTransaction}. * * @throws IOException if there is a file operation error. * @throws PackageManager.NameNotFoundException if the package name is not found. */ @NonUiContext public void commit() throws PackageManager.NameNotFoundException, IOException { mOverlayManager.commitSelfTarget(this); } private static Request generateRegisterFabricatedOverlayRequest( @NonNull FabricatedOverlay overlay) { Objects.requireNonNull(overlay); Loading Loading @@ -385,7 +375,10 @@ public final class OverlayManagerTransaction implements Parcelable { mRequests.add(generateUnRegisterFabricatedOverlayRequest(overlay)); } boolean isSelfTargetingTransaction() { return mOverlayManager != null; /** * Indicate whether the transaction is for self-targeting or not. */ boolean isSelfTargeting() { return mSelfTargeting; } }