Merge "Make Notification long clickable" into tm-qpr-dev am: ecbc12235e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21047384

Change-Id: I9326d26b45dfeb357d2e061f75a7109dac5c29b2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Ibrahim Yilmaz
2023-01-31 12:02:56 +00:00
committed by Automerger Merge Worker
2 changed files with 28 additions and 1 deletions

View File

@@ -591,6 +591,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
}
mShowingPublicInitialized = false;
updateNotificationColor();
updateLongClickable();
if (mMenuRow != null) {
mMenuRow.onNotificationUpdated(mEntry.getSbn());
mMenuRow.setAppName(mAppName);
@@ -1196,8 +1197,26 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
return getShowingLayout().getVisibleWrapper();
}
private boolean isNotificationRowLongClickable() {
if (mLongPressListener == null) {
return false;
}
if (!areGutsExposed()) { // guts is not opened
return true;
}
// if it is leave behind, it shouldn't be long clickable.
return !isGutsLeaveBehind();
}
private void updateLongClickable() {
setLongClickable(isNotificationRowLongClickable());
}
public void setLongPressListener(LongPressListener longPressListener) {
mLongPressListener = longPressListener;
updateLongClickable();
}
public void setDragController(ExpandableNotificationRowDragController dragController) {
@@ -2044,11 +2063,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
void onGutsOpened() {
resetTranslation();
updateContentAccessibilityImportanceForGuts(false /* isEnabled */);
updateLongClickable();
}
void onGutsClosed() {
updateContentAccessibilityImportanceForGuts(true /* isEnabled */);
mIsSnoozed = false;
updateLongClickable();
}
/**
@@ -2947,6 +2968,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
return (mGuts != null && mGuts.isExposed());
}
private boolean isGutsLeaveBehind() {
return (mGuts != null && mGuts.isLeavebehind());
}
@Override
public boolean isContentExpandable() {
if (mIsSummaryWithChildren && !shouldShowPublic()) {

View File

@@ -586,7 +586,9 @@ public class NotificationGutsManager implements NotifGutsViewManager {
}
final ExpandableNotificationRow row = (ExpandableNotificationRow) view;
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
if (view.isLongClickable()) {
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
}
if (row.areGutsExposed()) {
closeAndSaveGuts(false /* removeLeavebehind */, false /* force */,
true /* removeControls */, -1 /* x */, -1 /* y */,