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

Commit 34f7a698 authored by Mady Mellor's avatar Mady Mellor
Browse files

Update visuals of drop target

- 2dp as per VisD
- color should be primary fixed
- I bumped the elevation above 1dp so that it would be above the dismiss
  target in launcher / above the scrim that shows with the drop target.
- Had to bump elevation of dragged views to stay above the drop target.

Flag: com.android.wm.shell.enable_bubble_anything
Test: manual / visual - drag a bubble or drag expanded view and observe
                        the drop targets
Bug: 403276099
Change-Id: Iaec895d7ec489b6eada1e9b0114961eff8f27834
parent cfe6940d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -18,15 +18,15 @@
    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
    <item android:id="@+id/indicator_solid">
        <shape android:shape="rectangle">
            <solid android:color="@androidprv:color/materialColorPrimaryContainer" />
            <solid android:color="@androidprv:color/materialColorPrimaryFixed" />
            <corners android:radius="28dp" />
        </shape>
    </item>
    <item android:id="@+id/indicator_stroke">
        <shape android:shape="rectangle">
            <corners android:radius="28dp" />
            <stroke android:width="1dp"
                android:color="@androidprv:color/materialColorPrimaryContainer"/>
            <stroke android:width="2dp"
                android:color="@androidprv:color/materialColorPrimaryFixed"/>
        </shape>
    </item>
</layer-list>
+2 −0
Original line number Diff line number Diff line
@@ -302,6 +302,8 @@
    <dimen name="bubble_transform_area_width">140dp</dimen>
    <!-- Width of the box at the corner of the screen where drag leads to app moving to bubble -->
    <dimen name="bubble_transform_area_height">140dp</dimen>
    <!-- How much elevation a bubble ui needs when dragged, must be above drop target & dismiss. -->
    <dimen name="dragged_bubble_elevation">3dp</dimen>

    <!-- Bottom and end margin for compat buttons. -->
    <dimen name="compat_button_margin">24dp</dimen>
+2 −2
Original line number Diff line number Diff line
@@ -39,9 +39,9 @@
    <dimen name="drag_zone_v_split_from_expanded_view_height_fold_short">100dp</dimen>

    <!-- Bubble drop target dimensions -->
    <dimen name="drop_target_elevation">1dp</dimen>
    <dimen name="drop_target_elevation">2dp</dimen>
    <dimen name="drop_target_radius">28dp</dimen>
    <dimen name="drop_target_stroke">1dp</dimen>
    <dimen name="drop_target_stroke">2dp</dimen>
    <dimen name="drop_target_full_screen_padding">20dp</dimen>
    <dimen name="drop_target_desktop_window_padding_small">100dp</dimen>
    <dimen name="drop_target_desktop_window_padding_large">130dp</dimen>
+3 −3
Original line number Diff line number Diff line
@@ -30,15 +30,15 @@ import com.android.wm.shell.shared.R
class DropTargetView(context: Context) : View(context) {

    private val rectPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
        color = context.getColor(com.android.internal.R.color.materialColorPrimaryContainer)
        color = context.getColor(com.android.internal.R.color.materialColorPrimaryFixed)
        style = Paint.Style.FILL
        alpha = (0.35f * 255).toInt()
    }

    private val strokePaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
        color = context.getColor(com.android.internal.R.color.materialColorPrimaryContainer)
        color = context.getColor(com.android.internal.R.color.materialColorPrimaryFixed)
        style = Paint.Style.STROKE
        strokeWidth = 1.dpToPx()
        strokeWidth = 2.dpToPx()
    }

    private val cornerRadius = 28.dpToPx()
+10 −0
Original line number Diff line number Diff line
@@ -17,9 +17,11 @@
package com.android.wm.shell.bubbles.bar

import android.annotation.SuppressLint
import android.content.Context
import android.view.MotionEvent
import android.view.View
import androidx.annotation.VisibleForTesting
import com.android.wm.shell.R
import com.android.wm.shell.bubbles.BubblePositioner
import com.android.wm.shell.shared.bubbles.BubbleBarLocation
import com.android.wm.shell.shared.bubbles.DismissView
@@ -32,6 +34,7 @@ import com.android.wm.shell.shared.magnetictarget.MagnetizedObject
/** Controller for handling drag interactions with [BubbleBarExpandedView] */
@SuppressLint("ClickableViewAccessibility")
class BubbleBarExpandedViewDragController(
    private val context: Context,
    private val expandedView: BubbleBarExpandedView,
    private val dismissView: DismissView,
    private val animationHelper: BubbleBarAnimationHelper,
@@ -54,6 +57,8 @@ class BubbleBarExpandedViewDragController(
        MagnetizedObject.magnetizeView(expandedView)
    private val magnetizedDismissTarget: MagnetizedObject.MagneticTarget

    private val draggedBubbleElevation: Float

    init {
        magnetizedExpandedView.magnetListener = MagnetListener()
        magnetizedExpandedView.animateStuckToTarget =
@@ -70,6 +75,8 @@ class BubbleBarExpandedViewDragController(
            MagnetizedObject.MagneticTarget(dismissView.circle, dismissView.circle.width)
        magnetizedExpandedView.addTarget(magnetizedDismissTarget)

        draggedBubbleElevation = context.resources.getDimension(
            R.dimen.dragged_bubble_elevation)
        val dragMotionEventHandler = HandleDragListener()

        expandedView.handleView.setOnTouchListener { view, event ->
@@ -103,6 +110,7 @@ class BubbleBarExpandedViewDragController(
        override fun onDown(v: View, ev: MotionEvent): Boolean {
            // While animating, don't allow new touch events
            if (expandedView.isAnimating) return false
            expandedView.z = draggedBubbleElevation
            if (dropTargetManager != null && dragZoneFactory != null) {
                val draggedObject = DraggedObject.ExpandedView(
                    if (bubblePositioner.isBubbleBarOnLeft) {
@@ -154,11 +162,13 @@ class BubbleBarExpandedViewDragController(
            velX: Float,
            velY: Float,
        ) {
            v.translationZ = 0f
            finishDrag()
        }

        override fun onCancel(v: View, ev: MotionEvent, viewInitialX: Float, viewInitialY: Float) {
            isStuckToDismiss = false
            v.translationZ = 0f
            finishDrag()
        }

Loading