Merge "Add falsing protection for all notification settings guts" into rvc-dev am: 8c9e2496a6

Change-Id: I4c7b7d00c5f3a7129f1975e79745ab16b7bcbeee
This commit is contained in:
TreeHugger Robot
2020-05-28 21:41:21 +00:00
committed by Automerger Merge Worker
7 changed files with 51 additions and 16 deletions

View File

@@ -188,6 +188,11 @@ public class AppOpsInfo extends LinearLayout implements NotificationGuts.GutsCon
return false;
}
@Override
public boolean needsFalsingProtection() {
return false;
}
@Override
public View getContentView() {
return this;

View File

@@ -403,6 +403,11 @@ public class NotificationConversationInfo extends LinearLayout implements
// TODO: do we need to do anything here?
}
@Override
public boolean needsFalsingProtection() {
return true;
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);

View File

@@ -104,6 +104,12 @@ public class NotificationGuts extends FrameLayout {
* Called when the guts view has finished its close animation.
*/
default void onFinishedClosing() {}
/**
* Returns whether falsing protection is needed before showing the contents of this
* view on the lockscreen
*/
boolean needsFalsingProtection();
}
public interface OnGutsClosedListener {

View File

@@ -523,23 +523,27 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
int x,
int y,
NotificationMenuRowPlugin.MenuItem menuItem) {
if (menuItem.getGutsView() instanceof NotificationInfo) {
if (mStatusBarStateController instanceof StatusBarStateControllerImpl) {
((StatusBarStateControllerImpl) mStatusBarStateController)
.setLeaveOpenOnKeyguardHide(true);
if (menuItem.getGutsView() instanceof NotificationGuts.GutsContent) {
NotificationGuts.GutsContent gutsView =
(NotificationGuts.GutsContent) menuItem.getGutsView();
if (gutsView.needsFalsingProtection()) {
if (mStatusBarStateController instanceof StatusBarStateControllerImpl) {
((StatusBarStateControllerImpl) mStatusBarStateController)
.setLeaveOpenOnKeyguardHide(true);
}
Runnable r = () -> mMainHandler.post(
() -> openGutsInternal(view, x, y, menuItem));
mStatusBarLazy.get().executeRunnableDismissingKeyguard(
r,
null /* cancelAction */,
false /* dismissShade */,
true /* afterKeyguardGone */,
true /* deferred */);
return true;
}
Runnable r = () -> mMainHandler.post(
() -> openGutsInternal(view, x, y, menuItem));
mStatusBarLazy.get().executeRunnableDismissingKeyguard(
r,
null /* cancelAction */,
false /* dismissShade */,
true /* afterKeyguardGone */,
true /* deferred */);
return true;
}
return openGutsInternal(view, x, y, menuItem);
}

View File

@@ -489,6 +489,11 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
mMetricsLogger.write(notificationControlsLogMaker().setType(MetricsEvent.TYPE_CLOSE));
}
@Override
public boolean needsFalsingProtection() {
return true;
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);

View File

@@ -442,6 +442,11 @@ public class NotificationSnooze extends LinearLayout
return true;
}
@Override
public boolean needsFalsingProtection() {
return false;
}
public class NotificationSnoozeOption implements SnoozeOption {
private SnoozeCriterion mCriterion;
private int mMinutesToSnoozeFor;

View File

@@ -300,6 +300,11 @@ public class PartialConversationInfo extends LinearLayout implements
// TODO: do we need to do anything here?
}
@Override
public boolean needsFalsingProtection() {
return true;
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);