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

Commit b2fb411a authored by Mady Mellor's avatar Mady Mellor Committed by android-build-merger
Browse files

Merge "Add 'Snooze' to local context menu for notifications" into pi-dev am: 18a67855

am: 3cd36ee4

Change-Id: I78ab7bc973540c485df91482bc7169b89dee1770
parents f2a443db 3cd36ee4
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin.MenuItem
public interface NotificationMenuRowPlugin extends Plugin {

    public static final String ACTION = "com.android.systemui.action.PLUGIN_NOTIFICATION_MENU_ROW";
    public static final int VERSION = 3;
    public static final int VERSION = 4;

    @ProvidesInterface(version = OnMenuEventListener.VERSION)
    public interface OnMenuEventListener {
@@ -75,6 +75,11 @@ public interface NotificationMenuRowPlugin extends Plugin {
     */
    public MenuItem getAppOpsMenuItem(Context context);

    /**
     * @return the {@link MenuItem} to display when snooze item is pressed.
     */
    public MenuItem getSnoozeMenuItem(Context context);

    public void setMenuItems(ArrayList<MenuItem> items);

    public void setMenuClickListener(OnMenuEventListener listener);
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@
    <item type="id" name="action_snooze_long"/>
    <item type="id" name="action_snooze_longer"/>
    <item type="id" name="action_snooze_assistant_suggestion_1"/>
    <item type="id" name="action_snooze"/>

    <!-- For StatusBarIconContainer to tag its icon views -->
    <item type="id" name="status_bar_view_state_tag" />
+25 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import android.view.ViewGroup;
import android.view.ViewStub;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.widget.Chronometer;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -1599,6 +1600,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
    public void doLongClickCallback(int x, int y) {
        createMenu();
        MenuItem menuItem = getProvider().getLongpressMenuItem(mContext);
        doLongClickCallback(x, y, menuItem);
    }

    private void doLongClickCallback(int x, int y, MenuItem menuItem) {
        if (mLongPressListener != null && menuItem != null) {
            mLongPressListener.onLongPress(this, x, y, menuItem);
        }
@@ -2707,6 +2712,16 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
                info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_EXPAND);
            }
        }
        NotificationMenuRowPlugin provider = getProvider();
        if (provider != null) {
            MenuItem snoozeMenu = provider.getSnoozeMenuItem(getContext());
            if (snoozeMenu != null) {
                AccessibilityAction action = new AccessibilityAction(R.id.action_snooze,
                    getContext().getResources()
                        .getString(R.string.notification_menu_snooze_action));
                info.addAction(action);
            }
        }
    }

    @Override
@@ -2725,6 +2740,16 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
            case AccessibilityNodeInfo.ACTION_LONG_CLICK:
                doLongClickCallback();
                return true;
            case R.id.action_snooze:
                NotificationMenuRowPlugin provider = getProvider();
                if (provider == null) {
                    provider = createMenu();
                }
                MenuItem snoozeMenu = provider.getSnoozeMenuItem(getContext());
                if (snoozeMenu != null) {
                    doLongClickCallback(getWidth() / 2, getHeight() / 2, snoozeMenu);
                }
                return true;
        }
        return false;
    }
+8 −1
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl
    private FrameLayout mMenuContainer;
    private MenuItem mInfoItem;
    private MenuItem mAppOpsItem;
    private MenuItem mSnoozeItem;
    private ArrayList<MenuItem> mMenuItems;
    private OnMenuEventListener mMenuListener;

@@ -127,6 +128,11 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl
        return mAppOpsItem;
    }

    @Override
    public MenuItem getSnoozeMenuItem(Context context) {
        return mSnoozeItem;
    }

    @Override
    public void setSwipeActionHelper(NotificationSwipeActionHelper helper) {
        mSwipeHelper = helper;
@@ -190,7 +196,8 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl
            boolean isForeground = (flags & Notification.FLAG_FOREGROUND_SERVICE) != 0;
            if (!isForeground) {
                // Only show snooze for non-foreground notifications
                mMenuItems.add(createSnoozeItem(mContext));
                mSnoozeItem = createSnoozeItem(mContext);
                mMenuItems.add(mSnoozeItem);
            }
        }
        mInfoItem = createInfoItem(mContext);