Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d29beae7 authored by Marcelo Arteiro's avatar Marcelo Arteiro
Browse files

Expose RRO completion signal

ThemeOverlayController now notifies server when color resources are ready. Now Home and SetupWizard are guaranteed to launch  with proper theming.

Test: presubmits
Bug: 307507412
Merged-In: I22595066cc810164023c127e1247ac9375d323a2
Change-Id: I616a7e56d8b1e725548b8dc9b41e932e8fb044c7
parent 2f75500d
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -5716,6 +5716,25 @@ public class ActivityManager {
        }
    }

    /**
     * Used by ThemeOverlayController to notify when color
     * palette is ready.
     *
     * @param userId The ID of the user where ThemeOverlayController is ready.
     *
     * @throws RemoteException
     *
     * @hide
     */
    @RequiresPermission(Manifest.permission.SET_THEME_OVERLAY_CONTROLLER_READY)
    public void setThemeOverlayReady(@UserIdInt int userId) {
        try {
            getService().setThemeOverlayReady(userId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /**
     * Resets the state of the {@link com.android.server.am.AppErrors} instance.
     * This is intended for use with CTS only.
+7 −0
Original line number Diff line number Diff line
@@ -1234,4 +1234,11 @@ public abstract class ActivityManagerInternal {
     */
    public abstract boolean clearApplicationUserData(String packageName, boolean keepState,
            boolean isRestore, IPackageDataObserver observer, int userId);

    /**
     * Returns current state of {@link com.android.systemui.theme.ThemeOverlayController} color
     * palette readiness.
     * @hide
     */
    public abstract boolean isThemeOverlayReady(int userId);
}
+11 −0
Original line number Diff line number Diff line
@@ -550,6 +550,17 @@ interface IActivityManager {
    @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
    boolean isTopOfTask(in IBinder token);
    void bootAnimationComplete();

    /**
     * Used by {@link com.android.systemui.theme.ThemeOverlayController} to notify when color
     * palette is ready.
     *
     * @param userId The ID of the user where ThemeOverlayController is ready.
     *
     * @throws RemoteException
     */
    void setThemeOverlayReady(int userId);

    @UnsupportedAppUsage
    void registerTaskStackListener(in ITaskStackListener listener);
    void unregisterTaskStackListener(in ITaskStackListener listener);
+5 −0
Original line number Diff line number Diff line
@@ -7302,6 +7302,11 @@
    <permission android:name="android.permission.RESET_APP_ERRORS"
        android:protectionLevel="signature" />

    <!-- @hide Allows ThemeOverlayController to delay launch of Home / SetupWizard on boot, ensuring
      Theme Palettes and Colors are ready  -->
    <permission android:name="android.permission.SET_THEME_OVERLAY_CONTROLLER_READY"
        android:protectionLevel="signature|setup" />

    <!-- @hide Allows an application to create/destroy input consumer. -->
    <permission android:name="android.permission.INPUT_CONSUMER"
                android:protectionLevel="signature" />
+3 −0
Original line number Diff line number Diff line
@@ -256,6 +256,9 @@

    <uses-permission android:name="android.permission.MODIFY_THEME_OVERLAY" />

    <!-- Activity Manager -->
    <uses-permission android:name="android.permission.SET_THEME_OVERLAY_CONTROLLER_READY" />

    <!-- accessibility -->
    <uses-permission android:name="android.permission.MODIFY_ACCESSIBILITY_DATA" />
    <uses-permission android:name="android.permission.MANAGE_ACCESSIBILITY" />
Loading