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

Commit d182943d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Updating folder shape when icon shape changes" into ub-launcher3-master

parents f530c403 90e3fbca
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -122,7 +122,11 @@ public class ShadowGenerator {
        }

        public Bitmap createPill(int width, int height) {
            radius = height / 2f;
            return createPill(width, height, height / 2f);
        }

        public Bitmap createPill(int width, int height, float r) {
            radius = r;

            int centerX = Math.round(width / 2f + shadowBlur);
            int centerY = Math.round(radius + shadowBlur + keyShadowDistance);
+5 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.util.Xml;
import android.view.Display;
import android.view.WindowManager;

import com.android.launcher3.folder.FolderShape;
import com.android.launcher3.util.ConfigMonitor;
import com.android.launcher3.util.IntArray;
import com.android.launcher3.util.MainThreadInitializedObject;
@@ -285,6 +286,10 @@ public class InvariantDeviceProfile {
                !iconShapePath.equals(oldProfile.iconShapePath)) {
            changeFlags |= CHANGE_FLAG_ICON_PARAMS;
        }
        if (!iconShapePath.equals(oldProfile.iconShapePath)) {
            FolderShape.init(context);
        }

        apply(context, changeFlags);
    }

+3 −26
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@
 */
package com.android.launcher3.folder;

import static com.android.launcher3.Workspace.MAP_NO_RECURSE;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.FloatArrayEvaluator;
@@ -43,9 +41,6 @@ import android.util.TypedValue;
import android.util.Xml;
import android.view.ViewOutlineProvider;

import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.MainThreadExecutor;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.RoundedRectRevealOutlineProvider;
@@ -358,7 +353,7 @@ public abstract class FolderShape {
        if (!Utilities.ATLEAST_OREO) {
            return;
        }
        new MainThreadExecutor().execute(() -> pickShapeInBackground(context));
        pickBestShape(context);
    }

    private static FolderShape getShapeDefinition(String type, float radius) {
@@ -410,7 +405,7 @@ public abstract class FolderShape {
    }

    @TargetApi(Build.VERSION_CODES.O)
    protected static void pickShapeInBackground(Context context) {
    protected static void pickBestShape(Context context) {
        // Pick any large size
        int size = 200;

@@ -447,25 +442,7 @@ public abstract class FolderShape {
        }

        if (closestShape != null) {
            FolderShape shape = closestShape;
            new MainThreadExecutor().execute(() -> updateFolderShape(shape));
        }
    }

    private static void updateFolderShape(FolderShape shape) {
        sInstance = shape;
        LauncherAppState app = LauncherAppState.getInstanceNoCreate();
        if (app == null) {
            return;
        }
        Launcher launcher = (Launcher) app.getModel().getCallback();
        if (launcher != null) {
            launcher.getWorkspace().mapOverItems(MAP_NO_RECURSE, (i, v) -> {
                if (v instanceof FolderIcon) {
                    v.invalidate();
                }
                return false;
            });
            sInstance = closestShape;
        }
    }
}