diff options
Diffstat (limited to 'src/com/android/launcher3/widget/BaseWidgetSheet.java')
-rw-r--r-- | src/com/android/launcher3/widget/BaseWidgetSheet.java | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index 20c8876d2..48c18f853 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.widget; +import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; + import static com.android.launcher3.logging.LoggerUtils.newContainerTarget; import android.content.Context; @@ -31,13 +33,16 @@ import com.android.launcher3.ItemInfo; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.dragndrop.DragOptions; -import com.android.launcher3.graphics.ColorScrim; import com.android.launcher3.touch.ItemLongClickListener; +import com.android.launcher3.uioverrides.WallpaperColorInfo; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import com.android.launcher3.userevent.nano.LauncherLogProto.Target; import com.android.launcher3.util.SystemUiController; import com.android.launcher3.util.Themes; import com.android.launcher3.views.AbstractSlideInView; +import com.android.launcher3.views.BaseDragLayer; + +import androidx.core.graphics.ColorUtils; /** * Base class for various widgets popup @@ -49,11 +54,11 @@ abstract class BaseWidgetSheet extends AbstractSlideInView /* Touch handling related member variables. */ private Toast mWidgetInstructionToast; - protected final ColorScrim mColorScrim; + protected final View mColorScrim; public BaseWidgetSheet(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - mColorScrim = ColorScrim.createExtractedColorScrim(this); + mColorScrim = createColorScrim(context); } @Override @@ -80,9 +85,14 @@ abstract class BaseWidgetSheet extends AbstractSlideInView return true; } + protected void attachToContainer() { + getPopupContainer().addView(mColorScrim); + getPopupContainer().addView(this); + } + protected void setTranslationShift(float translationShift) { super.setTranslationShift(translationShift); - mColorScrim.setProgress(1 - mTranslationShift); + mColorScrim.setAlpha(1 - mTranslationShift); } private boolean beginDraggingWidget(WidgetCell v) { @@ -115,6 +125,7 @@ abstract class BaseWidgetSheet extends AbstractSlideInView protected void onCloseComplete() { super.onCloseComplete(); + getPopupContainer().removeView(mColorScrim); clearNavBarColor(); } @@ -148,4 +159,19 @@ abstract class BaseWidgetSheet extends AbstractSlideInView protected SystemUiController getSystemUiController() { return mLauncher.getSystemUiController(); } + + private static View createColorScrim(Context context) { + View view = new View(context); + view.forceHasOverlappingRendering(false); + + WallpaperColorInfo colors = WallpaperColorInfo.getInstance(context); + int alpha = context.getResources().getInteger(R.integer.extracted_color_gradient_alpha); + view.setBackgroundColor(ColorUtils.setAlphaComponent(colors.getSecondaryColor(), alpha)); + + BaseDragLayer.LayoutParams lp = new BaseDragLayer.LayoutParams(MATCH_PARENT, MATCH_PARENT); + lp.ignoreInsets = true; + view.setLayoutParams(lp); + + return view; + } } |