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

Commit b684c1b5 authored by Brian Isganitis's avatar Brian Isganitis
Browse files

Revert "Merge "Revert "Use wallpaper colors for widgets in wallpaper change preview"" into sc-dev"

This reverts commit 7de95d67, reversing
changes made to 0a70a5a6.

Lints have been added to fix errorprone.

Test: Widgets should adapt to wallpaper colors in launcher preview.
Bug: 192205054
Merged-In: I3fb76b6036cb909771b789eac15742df78c2c742
Merged-In: I4da9ad1cc88be251f97e86b6c8c9b346ed20f586
Change-Id: I6866f8521ed427d096f27da0a92d8b40e1099187
parent 7de95d67
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -573,4 +573,26 @@
            column="42"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `android.appwidget.AppWidgetHostView#setColorResources`"
        errorLine1="            view.setColorResources(mWallpaperColorResources);"
        errorLine2="                 ~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/Launcher3/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java"
            line="381"
            column="18"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 27 (current min is 26): `android.app.WallpaperManager#getWallpaperColors`"
        errorLine1="                    : WallpaperManager.getInstance(context).getWallpaperColors(FLAG_SYSTEM);"
        errorLine2="                                                            ~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/Launcher3/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java"
            line="270"
            column="61"/>
    </issue>

</issues>
+25 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.launcher3.graphics;

import static android.app.WallpaperManager.FLAG_SYSTEM;
import static android.view.View.MeasureSpec.EXACTLY;
import static android.view.View.MeasureSpec.makeMeasureSpec;
import static android.view.View.VISIBLE;
@@ -26,6 +27,8 @@ import static com.android.launcher3.model.ModelUtils.sortWorkspaceItemsSpatially

import android.annotation.TargetApi;
import android.app.Fragment;
import android.app.WallpaperColors;
import android.app.WallpaperManager;
import android.appwidget.AppWidgetHostView;
import android.appwidget.AppWidgetProviderInfo;
import android.content.Context;
@@ -41,6 +44,7 @@ import android.os.Handler;
import android.os.Looper;
import android.os.Process;
import android.util.AttributeSet;
import android.util.SparseIntArray;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -84,6 +88,7 @@ import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.BaseDragLayer;
import com.android.launcher3.widget.LauncherAppWidgetProviderInfo;
import com.android.launcher3.widget.LocalColorExtractor;
import com.android.launcher3.widget.custom.CustomWidgetManager;

import java.util.ArrayList;
@@ -201,8 +206,12 @@ public class LauncherPreviewRenderer extends ContextWrapper
    private final InsettableFrameLayout mRootView;
    private final Hotseat mHotseat;
    private final CellLayout mWorkspace;
    private final SparseIntArray mWallpaperColorResources;

    public LauncherPreviewRenderer(Context context,
            InvariantDeviceProfile idp,
            WallpaperColors wallpaperColorsOverride) {

    public LauncherPreviewRenderer(Context context, InvariantDeviceProfile idp) {
        super(context);
        mUiHandler = new Handler(Looper.getMainLooper());
        mContext = context;
@@ -254,6 +263,16 @@ public class LauncherPreviewRenderer extends ContextWrapper
                mDp.workspacePadding.top,
                mDp.workspacePadding.right + mDp.cellLayoutPaddingLeftRightPx,
                mDp.workspacePadding.bottom);

        if (Utilities.ATLEAST_S) {
            WallpaperColors wallpaperColors = wallpaperColorsOverride != null
                    ? wallpaperColorsOverride
                    : WallpaperManager.getInstance(context).getWallpaperColors(FLAG_SYSTEM);
            mWallpaperColorResources = LocalColorExtractor.newInstance(context)
                    .generateColorsOverride(wallpaperColors);
        } else {
            mWallpaperColorResources = null;
        }
    }

    /** Populate preview and render it. */
@@ -357,6 +376,11 @@ public class LauncherPreviewRenderer extends ContextWrapper
        view.setAppWidget(-1, providerInfo);
        view.updateAppWidget(null);
        view.setTag(info);

        if (mWallpaperColorResources != null) {
            view.setColorResources(mWallpaperColorResources);
        }

        addInScreenFromBind(view, info);
    }

+1 −1
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ public class PreviewSurfaceRenderer {
        if (mDestroyed) {
            return;
        }
        View view = new LauncherPreviewRenderer(inflationContext, mIdp)
        View view = new LauncherPreviewRenderer(inflationContext, mIdp, mWallpaperColors)
                .getRenderedView(dataModel, widgetProviderInfoMap);
        // This aspect scales the view to fit in the surface and centers it
        final float scale = Math.min(mWidth / (float) view.getMeasuredWidth(),
+8 −0
Original line number Diff line number Diff line
@@ -75,6 +75,14 @@ public class LocalColorExtractor implements ResourceBasedOverride {
     */
    public void applyColorsOverride(Context base, WallpaperColors colors) { }

    /**
     * Generates color resource overrides from {@link WallpaperColors}.
     */
    @Nullable
    public SparseIntArray generateColorsOverride(WallpaperColors colors) {
        return null;
    }

    /**
     * Takes a view and returns its rect that can be used by the wallpaper local color extractor.
     *