diff options
3 files changed, 37 insertions, 1 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java index 6f15a0ffd98a..c0a48a873780 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowProvider.java @@ -41,6 +41,16 @@ public interface NotificationMenuRowProvider extends Plugin { public boolean handleCloseControls(); } + public interface SnoozeGutsContent extends GutsContent { + public void setSnoozeListener(SnoozeListener listener); + + public void setStatusBarNotification(StatusBarNotification sbn); + } + + public interface SnoozeListener { + public void snoozeNotification(StatusBarNotification sbn, long snoozeUntil); + } + public static class MenuItem { public Drawable icon; public String menuDescription; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index d4499df73e3c..d3e9456725eb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -103,6 +103,8 @@ import com.android.systemui.SystemUI; import com.android.systemui.assist.AssistManager; import com.android.systemui.plugins.statusbar.NotificationMenuRowProvider; import com.android.systemui.plugins.statusbar.NotificationMenuRowProvider.MenuItem; +import com.android.systemui.plugins.statusbar.NotificationMenuRowProvider.SnoozeGutsContent; +import com.android.systemui.plugins.statusbar.NotificationMenuRowProvider.SnoozeListener; import com.android.systemui.recents.Recents; import com.android.systemui.statusbar.NotificationData.Entry; import com.android.systemui.statusbar.notification.VisualStabilityManager; @@ -1050,6 +1052,14 @@ public abstract class BaseStatusBar extends SystemUI implements }, false /* afterKeyguardGone */); } + protected void setNotificationSnoozed(StatusBarNotification sbn, long snoozeUntil) { + mNotificationListener.snoozeNotification(sbn.getKey(), snoozeUntil); + } + + public SnoozeListener getSnoozeListener() { + return null; + } + private void bindGuts(final ExpandableNotificationRow row, MenuItem item) { row.inflateGuts(); row.setGutsView(item); @@ -1063,6 +1073,11 @@ public abstract class BaseStatusBar extends SystemUI implements mNotificationGutsExposed = null; }); + if (item.gutsContent instanceof SnoozeGutsContent) { + ((SnoozeGutsContent) item.gutsContent).setSnoozeListener(getSnoozeListener()); + ((SnoozeGutsContent) item.gutsContent).setStatusBarNotification(sbn); + } + if (item.gutsContent instanceof NotificationInfo) { final NotificationChannel channel = row.getEntry().channel; PackageManager pmUser = getPackageManagerForUser(mContext, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 8dcc693a6c14..7d824772b26d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -141,6 +141,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.plugins.qs.QS; import com.android.systemui.ActivityStarter; import com.android.systemui.plugins.qs.QS.BaseStatusBarHeader; +import com.android.systemui.plugins.statusbar.NotificationMenuRowProvider.SnoozeListener; import com.android.systemui.qs.QSFragment; import com.android.systemui.qs.QSPanel; import com.android.systemui.recents.ScreenPinningRequest; @@ -205,7 +206,7 @@ import java.util.Map; public class PhoneStatusBar extends BaseStatusBar implements DemoMode, DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener, - OnHeadsUpChangedListener, VisualStabilityManager.Callback { + OnHeadsUpChangedListener, VisualStabilityManager.Callback, SnoozeListener { static final String TAG = "PhoneStatusBar"; public static final boolean DEBUG = BaseStatusBar.DEBUG; public static final boolean SPEW = false; @@ -4858,4 +4859,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } + + @Override + public SnoozeListener getSnoozeListener() { + return this; + } + + @Override + public void snoozeNotification(StatusBarNotification sbn, long snoozeUntil) { + setNotificationSnoozed(sbn, snoozeUntil); + } } |