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

Commit b5881bd5 authored by Vadim Caen's avatar Vadim Caen Committed by Android (Google) Code Review
Browse files

Merge "Remove uses of deprecated splashscreenContent attribute" into sc-dev

parents 2a0573bb c784a707
Loading
Loading
Loading
Loading
+5 −34
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.graphics.drawable.AdaptiveIconDrawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Trace;
@@ -112,18 +111,14 @@ public class SplashscreenContentDrawer {
     * @param consumer Receiving the SplashScreenView object, which will also be executed
     *                 on splash screen thread. Note that the view can be null if failed.
     */
    void createContentView(Context context, boolean emptyView, int splashScreenResId,
            ActivityInfo info, int taskId, Consumer<SplashScreenView> consumer) {
    void createContentView(Context context, boolean emptyView, ActivityInfo info, int taskId,
            Consumer<SplashScreenView> consumer) {
        mSplashscreenWorkerHandler.post(() -> {
            SplashScreenView contentView;
            try {
                contentView = SplashscreenContentDrawer.makeSplashscreenContent(
                        context, splashScreenResId);
                if (contentView == null) {
                Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "makeSplashScreenContentView");
                contentView = makeSplashScreenContentView(context, info, emptyView);
                Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
                }
            } catch (RuntimeException e) {
                Slog.w(TAG, "failed creating starting window content at taskId: "
                        + taskId, e);
@@ -478,30 +473,6 @@ public class SplashscreenContentDrawer {
        return root < 0.1;
    }

    private static SplashScreenView makeSplashscreenContent(Context ctx,
            int splashscreenContentResId) {
        // doesn't support windowSplashscreenContent after S
        // TODO add an allowlist to skip some packages if needed
        final int targetSdkVersion = ctx.getApplicationInfo().targetSdkVersion;
        if (DEBUG) {
            Slog.d(TAG, "target sdk for package: " + targetSdkVersion);
        }
        if (targetSdkVersion >= Build.VERSION_CODES.S) {
            return null;
        }
        if (splashscreenContentResId == 0) {
            return null;
        }
        final Drawable drawable = ctx.getDrawable(splashscreenContentResId);
        if (drawable == null) {
            return null;
        }
        SplashScreenView view = new SplashScreenView(ctx);
        view.setNotCopyable();
        view.setBackground(drawable);
        return view;
    }

    private static class DrawableColorTester {
        private final ColorTester mColorChecker;

+4 −8
Original line number Diff line number Diff line
@@ -233,12 +233,8 @@ public class StartingSurfaceDrawer {
        windowFlags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;

        final boolean[] showWallpaper = new boolean[1];
        final int[] splashscreenContentResId = new int[1];
        getWindowResFromContext(context, a -> {
            splashscreenContentResId[0] =
                    a.getResourceId(R.styleable.Window_windowSplashscreenContent, 0);
            showWallpaper[0] = a.getBoolean(R.styleable.Window_windowShowWallpaper, false);
        });
        getWindowResFromContext(context, a ->
                showWallpaper[0] = a.getBoolean(R.styleable.Window_windowShowWallpaper, false));
        if (showWallpaper[0]) {
            windowFlags |= WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
        }
@@ -339,8 +335,8 @@ public class StartingSurfaceDrawer {
                record.setSplashScreenView(contentView);
            }
        };
        mSplashscreenContentDrawer.createContentView(context, emptyView,
                splashscreenContentResId[0], activityInfo, taskId, viewSupplier::setView);
        mSplashscreenContentDrawer.createContentView(context, emptyView, activityInfo, taskId,
                viewSupplier::setView);

        try {
            final View view = win.getDecorView();