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

Commit 5eb75b51 authored by Matt Casey's avatar Matt Casey
Browse files

Update screenshot shelf actions layout

- Nest the actions in the actions background.
- Round all the corners.
- Fork layouts/drawables where needed to avoid impacting unflagged
  behavior.
- Use a transparent divider between actions.
- Clip to the rounded outline to make the scrollview not clip in a
  rectangle.

Bug: 329659738
Test: Manual testing with adding/removing actions, scrolling
Flag: ACONFIG com.android.systemui.screenshot_shelf_ui DEVELOPMENT

Change-Id: I331f8ff689d90ae40cd0e9820ee34382df34a6ac
Merged-In: I331f8ff689d90ae40cd0e9820ee34382df34a6ac
parent bab84f32
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<ripple
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    android:color="@color/overlay_button_ripple">
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <solid android:color="?androidprv:attr/materialColorSecondary"/>
            <corners android:radius="10000dp"/>  <!-- fully-rounded radius -->
        </shape>
    </item>
</ripple>
+23 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    android:shape="rectangle">
    <solid android:color="?androidprv:attr/materialColorSurfaceBright"/>
    <corners android:radius="10000dp"/>  <!-- fully-rounded radius -->
</shape>
+21 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2024 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<shape xmlns:android = "http://schemas.android.com/apk/res/android">
    <size
        android:width = "@dimen/overlay_action_chip_margin_start"
        android:height = "0dp"/>
</shape>
+23 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- We don't actually draw anything, just expressing the shape for clipping. -->
    <solid android:color="#0000"/>
    <corners android:radius="10000dp"/>  <!-- fully-rounded radius -->
</shape>
+26 −28
Original line number Diff line number Diff line
@@ -20,39 +20,37 @@
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
    <FrameLayout
        android:id="@+id/actions_container_background"
        android:visibility="gone"
        android:layout_height="0dp"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:elevation="4dp"
        android:background="@drawable/action_chip_container_background"
        android:layout_marginStart="@dimen/overlay_action_container_margin_horizontal"
        android:background="@drawable/shelf_action_chip_container_background"
        android:layout_marginHorizontal="@dimen/overlay_action_container_margin_horizontal"
        android:layout_marginBottom="@dimen/screenshot_shelf_vertical_margin"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/actions_container"
        app:layout_constraintEnd_toEndOf="@+id/actions_container"
        app:layout_constraintBottom_toTopOf="@id/guideline"/>
        app:layout_constraintBottom_toTopOf="@id/guideline"
        >
        <HorizontalScrollView
            android:id="@+id/actions_container"
        android:layout_width="0dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        android:layout_marginEnd="@dimen/overlay_action_container_margin_horizontal"
        android:paddingHorizontal="@dimen/overlay_action_container_padding_end"
        android:paddingVertical="@dimen/overlay_action_container_padding_vertical"
        android:elevation="4dp"
        android:scrollbars="none"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintWidth_percent="1.0"
        app:layout_constraintWidth_max="wrap"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/actions_container_background">
            android:layout_marginVertical="@dimen/overlay_action_container_padding_vertical"
            android:layout_marginHorizontal="@dimen/overlay_action_chip_margin_start"
            android:background="@drawable/shelf_action_container_clipping_shape"
            android:clipToOutline="true"
            android:scrollbars="none">
            <LinearLayout
                android:id="@+id/screenshot_actions"
                android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
                android:layout_height="wrap_content"
                android:showDividers="middle"
                android:divider="@drawable/shelf_action_chip_divider"
                android:animateLayoutChanges="true"
                />
        </HorizontalScrollView>
    </FrameLayout>
    <View
        android:id="@+id/screenshot_preview_border"
        android:layout_width="0dp"
@@ -66,7 +64,7 @@
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@id/screenshot_preview"
        app:layout_constraintEnd_toEndOf="@id/screenshot_preview"
        app:layout_constraintBottom_toTopOf="@id/actions_container"/>
        app:layout_constraintBottom_toTopOf="@id/actions_container_background"/>
    <ImageView
        android:id="@+id/screenshot_preview"
        android:layout_width="@dimen/overlay_x_scale"
Loading