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

This commit is contained in:
TreeHugger Robot 2019-01-25 17:24:13 +00:00 committed by Android (Google) Code Review
commit d182943d3d
3 changed files with 13 additions and 27 deletions

View File

@ -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);

View File

@ -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);
}

View File

@ -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;
}
}
}