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

Commit ed1c9af6 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Add link to notification app listing in shade

Test: atest SystemUITests
Bug: 74318867
Change-Id: Ic309dfb08be0d41b7d524adc1b5910ab61b2d9fb
parent e1c76d71
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1347,11 +1347,19 @@ public final class Settings {
    public static final String ACTION_NOTIFICATION_SETTINGS
            = "android.settings.NOTIFICATION_SETTINGS";

    /**
     * Activity Action: Show app listing settings, filtered by those that send notifications.
     *
     * @hide
     */
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
    public static final String ACTION_ALL_APPS_NOTIFICATION_SETTINGS =
            "android.settings.ALL_APPS_NOTIFICATION_SETTINGS";

    /**
     * Activity Action: Show notification settings for a single app.
     * <p>
     *     Input: {@link #EXTRA_APP_PACKAGE}, the package containing the channel to display.
     *     Input: Optionally, {@link #EXTRA_CHANNEL_ID}, to highlight that channel.
     *     Input: {@link #EXTRA_APP_PACKAGE}, the package to display.
     * <p>
     * Output: Nothing.
     */
+18 −3
Original line number Diff line number Diff line
@@ -15,13 +15,27 @@
  -->

<!-- Extends Framelayout -->
<com.android.systemui.statusbar.DismissView
<com.android.systemui.statusbar.FooterView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingEnd="8dp"
        android:visibility="gone">
    <com.android.systemui.statusbar.DismissViewButton
    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <com.android.systemui.statusbar.FooterViewButton
            style="@android:style/Widget.Material.Button.Borderless"
            android:id="@+id/manage_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:focusable="true"
            android:text="@string/manage_notifications_text"
            android:textColor="?attr/wallpaperTextColor"
            android:textAllCaps="false"/>
        <com.android.systemui.statusbar.FooterViewButton
            style="@android:style/Widget.Material.Button.Borderless"
            android:id="@+id/dismiss_text"
            android:layout_width="wrap_content"
@@ -32,4 +46,5 @@
            android:text="@string/clear_all_notifications_text"
            android:textColor="?attr/wallpaperTextColor"
            android:textAllCaps="true"/>
</com.android.systemui.statusbar.DismissView>
    </FrameLayout>
</com.android.systemui.statusbar.FooterView>
+3 −0
Original line number Diff line number Diff line
@@ -1055,6 +1055,9 @@
    <!-- The text to clear all notifications. [CHAR LIMIT=60] -->
    <string name="clear_all_notifications_text">Clear all</string>

    <!-- The text for the manage notifications link. [CHAR LIMIT=40] -->
    <string name="manage_notifications_text">Manage notifications</string>

    <!-- The text to show in the notifications shade when dnd is suppressing notifications. [CHAR LIMIT=100] -->
    <string name="dnd_suppressing_shade_text">Do Not disturb is hiding notifications</string>

+5 −0
Original line number Diff line number Diff line
@@ -48,6 +48,11 @@ public class EmptyShadeView extends StackScrollerDecorView {
        return findViewById(R.id.no_notifications);
    }

    @Override
    protected View findSecondaryView() {
        return null;
    }

    public void setTextColor(@ColorInt int color) {
        mEmptyText.setTextColor(color);
    }
+24 −12
Original line number Diff line number Diff line
@@ -26,11 +26,12 @@ import com.android.systemui.R;
import com.android.systemui.statusbar.stack.ExpandableViewState;
import com.android.systemui.statusbar.stack.StackScrollState;

public class DismissView extends StackScrollerDecorView {
public class FooterView extends StackScrollerDecorView {
    private final int mClearAllTopPadding;
    private DismissViewButton mDismissButton;
    private FooterViewButton mDismissButton;
    private FooterViewButton mManageButton;

    public DismissView(Context context, AttributeSet attrs) {
    public FooterView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mClearAllTopPadding = context.getResources().getDimensionPixelSize(
                R.dimen.clear_all_padding_top);
@@ -38,21 +39,31 @@ public class DismissView extends StackScrollerDecorView {

    @Override
    protected View findContentView() {
        return findViewById(R.id.content);
    }

    protected View findSecondaryView() {
        return findViewById(R.id.dismiss_text);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mDismissButton = (DismissViewButton) findContentView();
        mDismissButton = (FooterViewButton) findSecondaryView();
        mManageButton = findViewById(R.id.manage_text);
    }

    public void setTextColor(@ColorInt int color) {
        mManageButton.setTextColor(color);
        mDismissButton.setTextColor(color);
    }

    public void setOnButtonClickListener(OnClickListener listener) {
        mContent.setOnClickListener(listener);
    public void setManageButtonClickListener(OnClickListener listener) {
        mManageButton.setOnClickListener(listener);
    }

    public void setDismissButtonClickListener(OnClickListener listener) {
        mDismissButton.setOnClickListener(listener);
    }

    public boolean isOnEmptySpace(float touchX, float touchY) {
@@ -68,25 +79,26 @@ public class DismissView extends StackScrollerDecorView {
        mDismissButton.setText(R.string.clear_all_notifications_text);
        mDismissButton.setContentDescription(
                mContext.getString(R.string.accessibility_clear_all));
        mManageButton.setText(R.string.manage_notifications_text);
    }

    public boolean isButtonVisible() {
        return mDismissButton.getAlpha() != 0.0f;
        return mManageButton.getAlpha() != 0.0f;
    }

    @Override
    public ExpandableViewState createNewViewState(StackScrollState stackScrollState) {
        return new DismissViewState();
        return new FooterViewState();
    }

    public class DismissViewState extends ExpandableViewState {
    public class FooterViewState extends ExpandableViewState {
        @Override
        public void applyToView(View view) {
            super.applyToView(view);
            if (view instanceof DismissView) {
                DismissView dismissView = (DismissView) view;
            if (view instanceof FooterView) {
                FooterView footerView = (FooterView) view;
                boolean visible = this.clipTopAmount < mClearAllTopPadding;
                dismissView.performVisibilityAnimation(visible && !dismissView.willBeGone());
                footerView.performVisibilityAnimation(visible && !footerView.willBeGone());
            }
        }
    }
Loading