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

Commit c2f73d90 authored by Uwais Ashraf's avatar Uwais Ashraf Committed by Android (Google) Code Review
Browse files

Merge "App chip refactor" into main

parents b9c2a1b7 99fdf7a7
Loading
Loading
Loading
Loading
+24 −28
Original line number Diff line number Diff line
@@ -17,45 +17,41 @@
<com.android.quickstep.views.IconAppChipView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_width="@dimen/task_thumbnail_icon_menu_expanded_width"
    android:layout_height="@dimen/task_thumbnail_icon_menu_expanded_height"
    android:clipToOutline="true"
    android:focusable="false"
    android:importantForAccessibility="no"
    android:autoMirrored="true"
    android:background="@drawable/icon_menu_elevation_background"
    android:elevation="@dimen/task_thumbnail_icon_menu_elevation" >
    android:elevation="@dimen/task_thumbnail_icon_menu_elevation"
    android:background="?androidprv:attr/materialColorSurfaceBright">

    <ImageView
        android:id="@+id/icon_view_background_corners_start"
        android:layout_width="@dimen/task_thumbnail_icon_menu_corner_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_min_height"
        android:src="@drawable/icon_menu_background_corners"
        android:importantForAccessibility="no" />
    <ImageView
        android:id="@+id/icon_view_background"
        android:layout_width="@dimen/task_thumbnail_icon_menu_background_min_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_min_height"
        android:src="@drawable/icon_menu_background"
        android:importantForAccessibility="no" />
    <ImageView
        android:id="@+id/icon_view_background_corners_end"
        android:layout_width="@dimen/task_thumbnail_icon_menu_corner_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_min_height"
        android:src="@drawable/icon_menu_background_corners"
        android:importantForAccessibility="no" />
    <!-- ignoring warning because the user of the anchor is a Rect where RTL is not needed -->
    <!-- This anchor's bounds is in the expected location after rotations and translations are
    applied to the parent. The same is not true of the parent so an anchor is used. -->
    <!-- marginTop is applied in java to get the gap between chip and menu -->
    <View
        android:id="@+id/icon_view_menu_anchor"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_gravity="left|top"
        android:focusable="false"
        android:importantForAccessibility="no"
        tools:ignore="RtlHardcoded" />

    <com.android.quickstep.views.IconView
        android:id="@+id/icon_view"
        android:layout_width="@dimen/task_thumbnail_icon_size"
        android:layout_height="@dimen/task_thumbnail_icon_size"
        android:layout_width="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
        android:layout_height="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
        android:focusable="false"
        android:importantForAccessibility="no" />

    <TextView
        android:id="@+id/icon_text_collapsed"
        android:layout_width="@dimen/task_thumbnail_icon_menu_text_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_drawable_size"
        android:layout_width="@dimen/task_thumbnail_icon_menu_text_collapsed_max_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
        android:gravity="start|center_vertical"
        android:maxLines="1"
        android:ellipsize="end"
@@ -65,8 +61,8 @@

    <TextView
        android:id="@+id/icon_text_expanded"
        android:layout_width="@dimen/task_thumbnail_icon_menu_text_max_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_drawable_size"
        android:layout_width="@dimen/task_thumbnail_icon_menu_text_expanded_max_width"
        android:layout_height="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
        android:gravity="start|center_vertical"
        android:maxLines="1"
        android:ellipsize="end"
+25 −35
Original line number Diff line number Diff line
@@ -44,48 +44,38 @@
    <dimen name="overview_task_margin">16dp</dimen>
    <!--  The horizontal space between tasks  -->
    <dimen name="overview_page_spacing">16dp</dimen>
    <!--  The min width of the thumbnail icon menu for non-split tasks  -->
    <dimen name="task_thumbnail_icon_menu_min_width">156dp</dimen>
    <!--  The max width of the thumbnail icon menu  -->
    <dimen name="task_thumbnail_icon_menu_max_width">216dp</dimen>
    <!--  The width of the thumbnail icon menu background  -->
    <dimen name="task_thumbnail_icon_menu_background_min_width">120dp</dimen>
    <!--  The width of the icon menu text  -->
    <dimen name="task_thumbnail_icon_menu_text_width">86dp</dimen>
    <!--  The max width of the icon menu text  -->
    <dimen name="task_thumbnail_icon_menu_text_max_width">118dp</dimen>
    <!--  The collapsed max width of the icon menu text  -->
    <dimen name="task_thumbnail_icon_menu_text_collapsed_max_width">86dp</dimen>
    <!--  The expanded max width of the icon menu text  -->
    <dimen name="task_thumbnail_icon_menu_text_expanded_max_width">118dp</dimen>
    <!--  The size of the icon menu text  -->
    <dimen name="task_thumbnail_icon_menu_text_size">14sp</dimen>
    <!--  The max width of the thumbnail icon menu background  -->
    <dimen name="task_thumbnail_icon_menu_background_max_width">164dp</dimen>
    <!--  The height of the thumbnail icon menu  -->
    <dimen name="task_thumbnail_icon_menu_min_height">36dp</dimen>
    <!--  The corner radius of the thumbnail icon menu  -->
    <dimen name="task_thumbnail_icon_menu_corner_radius">28dp</dimen>
    <!--  The width of the thumbnail icon menu backgorund's corners when collapsed  -->
    <dimen name="task_thumbnail_icon_menu_corner_width">36dp</dimen>
    <!--  The max height of the thumbnail icon menu  -->
    <dimen name="task_thumbnail_icon_menu_max_height">52dp</dimen>
    <!--  The size of the icon menu arrow  -->
    <dimen name="task_thumbnail_icon_menu_arrow_size">24dp</dimen>
    <!--  The size of the icon menu arrow drawable  -->
    <dimen name="task_thumbnail_icon_menu_arrow_drawable_size">16dp</dimen>
    <!--  The margin at the start of the task icon menu  -->
    <dimen name="task_thumbnail_icon_menu_start_margin">12dp</dimen>
    <!--  The margin at the top of the task icon menu  -->
    <dimen name="task_thumbnail_icon_menu_top_margin">12dp</dimen>
    <!--  The width of the thumbnail icon menu when collapsed (for non-split tasks)  -->
    <dimen name="task_thumbnail_icon_menu_collapsed_width">156dp</dimen>
    <!--  The width of the thumbnail icon menu when expanded -->
    <dimen name="task_thumbnail_icon_menu_expanded_width">216dp</dimen>
    <!--  The height of the thumbnail icon menu when collapsed  -->
    <dimen name="task_thumbnail_icon_menu_collapsed_height">36dp</dimen>
    <!--  The height of the thumbnail icon menu when expanded -->
    <dimen name="task_thumbnail_icon_menu_expanded_height">52dp</dimen>
    <!--  The margin at the top/start of the task icon menu when expanded  -->
    <dimen name="task_thumbnail_icon_menu_expanded_top_start_margin">4dp</dimen>
    <!--  The margin at the start of the background when collapsed  -->
    <dimen name="task_thumbnail_icon_menu_background_margin_top_start">8dp</dimen>
    <!--  The margin between the app name + app icon and app name + arrow icon when collapsed  -->
    <dimen name="task_thumbnail_icon_menu_app_name_margin_horizontal_collapsed">8dp</dimen>
    <!--  The gap at the top of the task icon menu when expanded  -->
    <dimen name="task_thumbnail_icon_menu_expanded_gap">6dp</dimen>
    <dimen name="task_thumbnail_icon_menu_expanded_gap">2dp</dimen>
    <!--  The margin at the start of the task icon view in the icon menu  -->
    <dimen name="task_thumbnail_icon_view_start_margin">6dp</dimen>
    <!--  The space around the task icon arrow within the icon menu  -->
    <dimen name="task_thumbnail_icon_menu_arrow_margin">8dp</dimen>
    <!--  The max space around the task icon within the icon menu  -->
    <dimen name="task_thumbnail_icon_menu_touch_max_margin">8dp</dimen>
    <!--  The icon size for the icon menu  -->
    <dimen name="task_thumbnail_icon_menu_drawable_size">24dp</dimen>
    <!--  The icon size for the icon menu  -->
    <dimen name="task_thumbnail_icon_menu_drawable_max_size">32dp</dimen>
    <!--  The size for the icon menu arrow -->
    <dimen name="task_thumbnail_icon_menu_arrow_size">24dp</dimen>
    <!--  The collapsed size for the icon menu icon -->
    <dimen name="task_thumbnail_icon_menu_app_icon_collapsed_size">24dp</dimen>
    <!--  The expanded icon size for the icon menu -->
    <dimen name="task_thumbnail_icon_menu_app_icon_expanded_size">32dp</dimen>
    <!--  The size of the icon menu's icon touch target  -->
    <dimen name="task_thumbnail_icon_menu_drawable_touch_size">44dp</dimen>
    <dimen name="task_thumbnail_icon_menu_elevation">4dp</dimen>
+9 −15
Original line number Diff line number Diff line
@@ -274,21 +274,12 @@ public class LandscapePagedViewHandler implements RecentsPagedOrientationHandler
    @Override
    public float getTaskMenuX(float x, View thumbnailView,
            DeviceProfile deviceProfile, float taskInsetMargin, View taskViewIcon) {
        if (enableOverviewIconMenu()) {
            return x + (taskInsetMargin / 2f);
        }
        return thumbnailView.getMeasuredWidth() + x - taskInsetMargin;
    }

    @Override
    public float getTaskMenuY(float y, View thumbnailView, int stagePosition,
            View taskMenuView, float taskInsetMargin, View taskViewIcon) {
        if (enableOverviewIconMenu()) {
            return y - (thumbnailView.getLayoutDirection() == LAYOUT_DIRECTION_RTL
                    ? taskMenuView.getMeasuredHeight() * 2 - (taskInsetMargin / 2f)
                    : taskMenuView.getMeasuredHeight());

        }
        BaseDragLayer.LayoutParams lp = (BaseDragLayer.LayoutParams) taskMenuView.getLayoutParams();
        int taskMenuWidth = lp.width;
        if (stagePosition == STAGE_POSITION_UNDEFINED) {
@@ -304,7 +295,7 @@ public class LandscapePagedViewHandler implements RecentsPagedOrientationHandler
            @StagePosition int stagePosition) {
        if (enableOverviewIconMenu()) {
            return thumbnailView.getResources().getDimensionPixelSize(
                    R.dimen.task_thumbnail_icon_menu_max_width);
                    R.dimen.task_thumbnail_icon_menu_expanded_width);
        }
        if (stagePosition == SplitConfigurationOptions.STAGE_POSITION_UNDEFINED) {
            return thumbnailView.getMeasuredWidth();
@@ -582,11 +573,6 @@ public class LandscapePagedViewHandler implements RecentsPagedOrientationHandler
    @Override
    public void setTaskIconParams(FrameLayout.LayoutParams iconParams, int taskIconMargin,
            int taskIconHeight, int thumbnailTopMargin, boolean isRtl) {
        if (enableOverviewIconMenu()) {
            iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
            iconParams.topMargin = 0;
            return;
        }
        iconParams.gravity = (isRtl ? START : END) | CENTER_VERTICAL;
        iconParams.rightMargin = -taskIconHeight - taskIconMargin / 2;
        iconParams.leftMargin = 0;
@@ -594,6 +580,14 @@ public class LandscapePagedViewHandler implements RecentsPagedOrientationHandler
        iconParams.bottomMargin = 0;
    }

    @Override
    public void setIconAppChipChildrenParams(FrameLayout.LayoutParams iconParams,
            int chipChildMarginStart) {
        iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
        iconParams.setMarginStart(chipChildMarginStart);
        iconParams.topMargin = 0;
    }

    @Override
    public void setIconAppChipMenuParams(IconAppChipView iconAppChipView,
            FrameLayout.LayoutParams iconMenuParams, int iconMenuMargin, int thumbnailTopMargin) {
+10 −17
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static android.view.Gravity.CENTER_HORIZONTAL;
import static android.view.Gravity.END;
import static android.view.Gravity.START;
import static android.view.Gravity.TOP;
import static android.view.View.LAYOUT_DIRECTION_RTL;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;

@@ -182,12 +181,7 @@ public class PortraitPagedViewHandler extends DefaultPagedViewHandler implements
    @Override
    public float getTaskMenuX(float x, View thumbnailView,
            DeviceProfile deviceProfile, float taskInsetMargin, View taskViewIcon) {
        if (enableOverviewIconMenu()) {
            if (thumbnailView.getLayoutDirection() == LAYOUT_DIRECTION_RTL) {
                return x + taskInsetMargin - taskViewIcon.getHeight() - (taskInsetMargin / 2f);
            }
            return x + taskInsetMargin;
        } else if (deviceProfile.isLandscape) {
        if (deviceProfile.isLandscape) {
            return x + taskInsetMargin
                    + (thumbnailView.getMeasuredWidth() - thumbnailView.getMeasuredHeight()) / 2f;
        } else {
@@ -198,9 +192,6 @@ public class PortraitPagedViewHandler extends DefaultPagedViewHandler implements
    @Override
    public float getTaskMenuY(float y, View thumbnailView, int stagePosition,
            View taskMenuView, float taskInsetMargin, View taskViewIcon) {
        if (enableOverviewIconMenu()) {
            return y;
        }
        return y + taskInsetMargin;
    }

@@ -209,7 +200,7 @@ public class PortraitPagedViewHandler extends DefaultPagedViewHandler implements
            @StagePosition int stagePosition) {
        if (enableOverviewIconMenu()) {
            return thumbnailView.getResources().getDimensionPixelSize(
                    R.dimen.task_thumbnail_icon_menu_max_width);
                    R.dimen.task_thumbnail_icon_menu_expanded_width);
        }
        int padding = thumbnailView.getResources()
                .getDimensionPixelSize(R.dimen.task_menu_edge_padding);
@@ -623,18 +614,20 @@ public class PortraitPagedViewHandler extends DefaultPagedViewHandler implements
    @Override
    public void setTaskIconParams(FrameLayout.LayoutParams iconParams, int taskIconMargin,
            int taskIconHeight, int thumbnailTopMargin, boolean isRtl) {
        if (enableOverviewIconMenu()) {
            iconParams.setMarginStart(taskIconMargin);
            iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
            iconParams.topMargin = 0;
            return;
        }
        iconParams.gravity = TOP | CENTER_HORIZONTAL;
        // Reset margins, since they may have been set on rotation
        iconParams.leftMargin = iconParams.rightMargin = 0;
        iconParams.topMargin = iconParams.bottomMargin = 0;
    }

    @Override
    public void setIconAppChipChildrenParams(FrameLayout.LayoutParams iconParams,
            int chipChildMarginStart) {
        iconParams.setMarginStart(chipChildMarginStart);
        iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
        iconParams.topMargin = 0;
    }

    @Override
    public void setIconAppChipMenuParams(IconAppChipView iconAppChipView,
            FrameLayout.LayoutParams iconMenuParams, int iconMenuMargin, int thumbnailTopMargin) {
+7 −0
Original line number Diff line number Diff line
@@ -146,9 +146,16 @@ public interface RecentsPagedOrientationHandler extends PagedOrientationHandler
            int parentWidth, int parentHeight);

    // Overview TaskMenuView methods
    /** Sets layout params on a task's app icon. Only use this when app chip is disabled. */
    void setTaskIconParams(FrameLayout.LayoutParams iconParams,
            int taskIconMargin, int taskIconHeight, int thumbnailTopMargin, boolean isRtl);

    /**
     * Sets layout params on the children of an app chip. Only use this when app chip is enabled.
     */
    void setIconAppChipChildrenParams(
            FrameLayout.LayoutParams iconParams, int chipChildMarginStart);

    void setIconAppChipMenuParams(IconAppChipView iconAppChipView,
            FrameLayout.LayoutParams iconMenuParams,
            int iconMenuMargin, int thumbnailTopMargin);
Loading