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

Commit 47dc4546 authored by Evan Laird's avatar Evan Laird
Browse files

Create notification channel interstitial shelf

From NotificationGuts, tapping "Turn off notifications" will now present
a half-shelf allowing the user to directly block up to 4 channels (the
one given from the notification guts + up to 3 other channels from
that app) or the app itself.

Test: visual (for now)
Bug: 130307442
Fixes: 131432719
Change-Id: I7e82928dfd56b9e25e5bef02607eede55b11d9e3
parent 52ce3686
Loading
Loading
Loading
Loading
+126 −0
Original line number Diff line number Diff line
<!--
  ~ Copyright (C) 2019 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
  -->

<FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/half_shelf_dialog"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|bottom"
        android:paddingStart="4dp"
        android:paddingEnd="4dp"
>

    <LinearLayout
        android:id="@+id/half_shelf"
        android:layout_width="@dimen/qs_panel_width"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="bottom"
        android:layout_gravity="center_horizontal|bottom"
        android:background="@drawable/rounded_bg_full" >

        <com.android.systemui.statusbar.notification.row.ChannelEditorListView
            android:id="@+id/half_shelf_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:orientation="vertical" >

            <com.android.systemui.statusbar.notification.row.AppControlView
                android:id="@+id/app_control"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="8dp"
                android:orientation="horizontal" >

                <ImageView
                    android:id="@+id/icon"
                    android:layout_height="48dp"
                    android:layout_width="48dp"
                    android:padding="8dp" />

                <TextView
                    android:id="@+id/app_name"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_gravity="center"
                    android:padding="8dp"
                    android:gravity="center_vertical|start"
                    android:textSize="15sp"
                    android:ellipsize="end"
                    android:maxLines="1"
                    style="@style/TextAppearance.NotificationInfo.Title" />

                <Switch
                    android:id="@+id/toggle"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:padding="8dp" />
            </com.android.systemui.statusbar.notification.row.AppControlView>
            <!-- divider view -->
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="@color/notification_channel_dialog_separator"
            />

            <!-- ChannelRows get added dynamically -->

        </com.android.systemui.statusbar.notification.row.ChannelEditorListView>
        <!-- divider view -->
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@color/notification_channel_dialog_separator"
        />
        <RelativeLayout
            android:id="@+id/bottom_actions"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/notification_guts_button_spacing"
            android:paddingStart="20dp"
            android:paddingEnd="20dp" >
            <TextView
                android:id="@+id/see_more_button"
                android:text="@string/see_more_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:gravity="start|center_vertical"
                android:minWidth="@dimen/notification_importance_toggle_size"
                android:minHeight="@dimen/notification_importance_toggle_size"
                android:maxWidth="200dp"
                style="@style/TextAppearance.NotificationInfo.Button"/>
            <TextView
                android:id="@+id/done_button"
                android:text="@string/inline_ok_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:gravity="end|center_vertical"
                android:maxWidth="125dp"
                android:minWidth="@dimen/notification_importance_toggle_size"
                android:minHeight="@dimen/notification_importance_toggle_size"
                android:layout_alignParentEnd="true"
                style="@style/TextAppearance.NotificationInfo.Button"/>
        </RelativeLayout>
    </LinearLayout>
</FrameLayout>
+78 −0
Original line number Diff line number Diff line
<!--
  ~ Copyright (C) 2019 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
  -->

<com.android.systemui.statusbar.notification.row.ChannelRow
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/half_shelf_row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/icon"
        android:layout_height="48dp"
        android:layout_width="48dp"
        android:layout_gravity="center_vertical"
        android:padding="8dp"
    />

    <RelativeLayout
        android:id="@+id/description_container"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:gravity="left|center_vertical"
        android:orientation="vertical"
    >
        <TextView
            android:id="@+id/channel_name"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:paddingBottom="0dp"
            android:paddingStart="8dp"
            android:paddingEnd="8dp"
            android:gravity="center_vertical|start"
            android:textSize="14sp"
            android:ellipsize="end"
            android:maxLines="1"
            style="@style/TextAppearance.NotificationInfo.Title"
        />

        <TextView
            android:id="@+id/channel_description"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:paddingStart="8dp"
            android:paddingEnd="8dp"
            android:gravity="center_vertical|start"
            android:textSize="14sp"
            android:ellipsize="end"
            android:maxLines="1"
            android:layout_below="@id/channel_name"
            style="@style/TextAppearance.NotificationInfo.Secondary"
        />
    </RelativeLayout>

    <Switch
        android:id="@+id/toggle"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center_vertical"
        android:padding="8dp"
    />
</com.android.systemui.statusbar.notification.row.ChannelRow>
+2 −1
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@
    <color name="notification_guts_button_color">@color/GM2_blue_200</color>

    <color name="notification_section_header_label_color">@color/GM2_grey_200</color>
    <color name="notification_channel_dialog_separator">@color/GM2_grey_700</color>

    <!-- The color of the background in the top part of QSCustomizer -->
    <color name="qs_customize_background">@color/GM2_grey_900</color>
+2 −0
Original line number Diff line number Diff line
@@ -98,6 +98,8 @@
    <color name="notification_guts_button_color">@color/GM2_blue_700</color>

    <color name="notification_section_header_label_color">@color/GM2_grey_900</color>
    <!-- The divider view for the notification channel editor half-shelf -->
    <color name="notification_channel_dialog_separator">@color/GM2_grey_200</color>

    <color name="assist_orb_color">#ffffff</color>

+6 −0
Original line number Diff line number Diff line
@@ -1688,6 +1688,12 @@
    <!-- Notification: Control panel: Label for the app that posted this notification, if it's not the package that the notification was posted for -->
    <string name="notification_delegate_header">Proxied notification</string>

    <!-- [CHAR LIMIT=40 Notification: Label for the inline channel blocking view -->
    <string name="notification_channel_dialog_title">All <xliff:g id="app_name" example="YouTube">%1$s</xliff:g> notifications</string>

    <!-- [CHAR LIMIT=20 Notification: "See more" button -->
    <string name="see_more_title">See more</string>

    <!-- Notification Inline controls: describes what the app is doing in the background [CHAR_LIMIT=NONE] -->
    <string name="appops_camera">This app is using the camera.</string>
    <!-- Notification Inline controls: describes what the app is doing in the background [CHAR_LIMIT=NONE] -->
Loading