Loading res/layout/app_widget_resize_frame.xml +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ <!-- Frame --> <ImageView android:id="@+id/widget_resize_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" Loading res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -283,4 +283,7 @@ <!-- Taskbar related (placeholders to compile in Launcher3 without Quickstep) --> <dimen name="taskbar_size">0dp</dimen> <!-- Size of the maximum radius for the enforced rounded rectangles. --> <dimen name="enforced_rounded_corner_max_radius">16dp</dimen> </resources> src/com/android/launcher3/AppWidgetResizeFrame.java +12 −0 Original line number Diff line number Diff line Loading @@ -14,12 +14,15 @@ import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.AttributeSet; import android.util.SizeF; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import androidx.annotation.Nullable; Loading Loading @@ -166,6 +169,15 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O DragLayer dl = launcher.getDragLayer(); AppWidgetResizeFrame frame = (AppWidgetResizeFrame) launcher.getLayoutInflater() .inflate(R.layout.app_widget_resize_frame, dl, false); if (widget.hasEnforcedCornerRadius()) { float enforcedCornerRadius = widget.getEnforcedCornerRadius(); ImageView imageView = frame.findViewById(R.id.widget_resize_frame); Drawable d = imageView.getDrawable(); if (d instanceof GradientDrawable) { GradientDrawable gd = (GradientDrawable) d.mutate(); gd.setCornerRadius(enforcedCornerRadius); } } frame.setupForWidget(widget, cellLayout, dl); ((DragLayer.LayoutParams) frame.getLayoutParams()).customPosition = true; Loading src/com/android/launcher3/config/FeatureFlags.java +3 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,9 @@ public final class FeatureFlags { public static final BooleanFlag ENABLE_SPLIT_SELECT = getDebugFlag( "ENABLE_SPLIT_SELECT", false, "Uses new split screen selection overview UI"); public static final BooleanFlag ENABLE_ENFORCED_ROUNDED_CORNERS = new DeviceFlag( "ENABLE_ENFORCED_ROUNDED_CORNERS", true, "Enforce rounded corners on all App Widgets"); public static void initialize(Context context) { synchronized (sDebugFlags) { for (DebugFlag flag : sDebugFlags) { Loading src/com/android/launcher3/dragndrop/AppWidgetHostViewDrawable.java +20 −0 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ package com.android.launcher3.dragndrop; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Outline; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; import com.android.launcher3.widget.LauncherAppWidgetHostView; Loading @@ -28,14 +32,30 @@ public final class AppWidgetHostViewDrawable extends Drawable { private final LauncherAppWidgetHostView mAppWidgetHostView; private Paint mPaint = new Paint(); private final Path mClipPath; public AppWidgetHostViewDrawable(LauncherAppWidgetHostView appWidgetHostView) { mAppWidgetHostView = appWidgetHostView; Path clipPath = null; if (appWidgetHostView.getClipToOutline()) { Outline outline = new Outline(); mAppWidgetHostView.getOutlineProvider().getOutline(mAppWidgetHostView, outline); Rect rect = new Rect(); if (outline.getRect(rect)) { float radius = outline.getRadius(); clipPath = new Path(); clipPath.addRoundRect(new RectF(rect), radius, radius, Path.Direction.CCW); } } mClipPath = clipPath; } @Override public void draw(Canvas canvas) { int saveCount = canvas.saveLayer(0, 0, getIntrinsicWidth(), getIntrinsicHeight(), mPaint); if (mClipPath != null) { canvas.clipPath(mClipPath); } mAppWidgetHostView.draw(canvas); canvas.restoreToCount(saveCount); } Loading Loading
res/layout/app_widget_resize_frame.xml +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ <!-- Frame --> <ImageView android:id="@+id/widget_resize_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" Loading
res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -283,4 +283,7 @@ <!-- Taskbar related (placeholders to compile in Launcher3 without Quickstep) --> <dimen name="taskbar_size">0dp</dimen> <!-- Size of the maximum radius for the enforced rounded rectangles. --> <dimen name="enforced_rounded_corner_max_radius">16dp</dimen> </resources>
src/com/android/launcher3/AppWidgetResizeFrame.java +12 −0 Original line number Diff line number Diff line Loading @@ -14,12 +14,15 @@ import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.AttributeSet; import android.util.SizeF; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import androidx.annotation.Nullable; Loading Loading @@ -166,6 +169,15 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O DragLayer dl = launcher.getDragLayer(); AppWidgetResizeFrame frame = (AppWidgetResizeFrame) launcher.getLayoutInflater() .inflate(R.layout.app_widget_resize_frame, dl, false); if (widget.hasEnforcedCornerRadius()) { float enforcedCornerRadius = widget.getEnforcedCornerRadius(); ImageView imageView = frame.findViewById(R.id.widget_resize_frame); Drawable d = imageView.getDrawable(); if (d instanceof GradientDrawable) { GradientDrawable gd = (GradientDrawable) d.mutate(); gd.setCornerRadius(enforcedCornerRadius); } } frame.setupForWidget(widget, cellLayout, dl); ((DragLayer.LayoutParams) frame.getLayoutParams()).customPosition = true; Loading
src/com/android/launcher3/config/FeatureFlags.java +3 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,9 @@ public final class FeatureFlags { public static final BooleanFlag ENABLE_SPLIT_SELECT = getDebugFlag( "ENABLE_SPLIT_SELECT", false, "Uses new split screen selection overview UI"); public static final BooleanFlag ENABLE_ENFORCED_ROUNDED_CORNERS = new DeviceFlag( "ENABLE_ENFORCED_ROUNDED_CORNERS", true, "Enforce rounded corners on all App Widgets"); public static void initialize(Context context) { synchronized (sDebugFlags) { for (DebugFlag flag : sDebugFlags) { Loading
src/com/android/launcher3/dragndrop/AppWidgetHostViewDrawable.java +20 −0 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ package com.android.launcher3.dragndrop; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Outline; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; import com.android.launcher3.widget.LauncherAppWidgetHostView; Loading @@ -28,14 +32,30 @@ public final class AppWidgetHostViewDrawable extends Drawable { private final LauncherAppWidgetHostView mAppWidgetHostView; private Paint mPaint = new Paint(); private final Path mClipPath; public AppWidgetHostViewDrawable(LauncherAppWidgetHostView appWidgetHostView) { mAppWidgetHostView = appWidgetHostView; Path clipPath = null; if (appWidgetHostView.getClipToOutline()) { Outline outline = new Outline(); mAppWidgetHostView.getOutlineProvider().getOutline(mAppWidgetHostView, outline); Rect rect = new Rect(); if (outline.getRect(rect)) { float radius = outline.getRadius(); clipPath = new Path(); clipPath.addRoundRect(new RectF(rect), radius, radius, Path.Direction.CCW); } } mClipPath = clipPath; } @Override public void draw(Canvas canvas) { int saveCount = canvas.saveLayer(0, 0, getIntrinsicWidth(), getIntrinsicHeight(), mPaint); if (mClipPath != null) { canvas.clipPath(mClipPath); } mAppWidgetHostView.draw(canvas); canvas.restoreToCount(saveCount); } Loading