Add snooze listener so that a plugin can snooze a notification
Test: manual Change-Id: Ieb3c0fcae6d832c3e8f5d1b983c52cf4f2ff6239
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user