Revert "Move a bunch of row setters into an init method."
This reverts commit 8271c2726917e63885519be141d84557b4632f44.
Bug: 147407617
Change-Id: I330bdbbda20c007b433c8f06105fc5bb3bcc11ac
(cherry picked from commit f107bd05acb35e510f6d331bbfde33c0cf35ab24)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRowBinderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRowBinderImpl.java
index 20f206b..9d4c1d2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRowBinderImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRowBinderImpl.java
@@ -159,6 +159,20 @@
private void bindRow(NotificationEntry entry, PackageManager pmUser,
StatusBarNotification sbn, ExpandableNotificationRow row,
Runnable onDismissRunnable) {
+ row.setExpansionLogger(mExpansionLogger, entry.getSbn().getKey());
+ row.setBypassController(mKeyguardBypassController);
+ row.setStatusBarStateController(mStatusBarStateController);
+ row.setGroupManager(mGroupManager);
+ row.setHeadsUpManager(mHeadsUpManager);
+ row.setOnExpandClickListener(mPresenter);
+ row.setContentBinder(mRowContentBinder);
+ row.setInflationCallback(mInflationCallback);
+ if (mAllowLongPress) {
+ row.setLongPressListener(mGutsManager::openGuts);
+ }
+ mListContainer.bindRow(row);
+ getRemoteInputManager().bindRow(row);
+
// Get the app name.
// Note that Notification.Builder#bindHeaderAppName has similar logic
// but since this field is used in the guts, it must be accurate.
@@ -176,33 +190,15 @@
} catch (PackageManager.NameNotFoundException e) {
// Do nothing
}
-
- row.initialize(
- appname,
- sbn.getKey(),
- mExpansionLogger,
- mKeyguardBypassController,
- mGroupManager,
- mHeadsUpManager,
- mRowContentBinder,
- mPresenter);
-
- // TODO: Either move these into ExpandableNotificationRow#initialize or out of row entirely
- row.setStatusBarStateController(mStatusBarStateController);
- row.setInflationCallback(mInflationCallback);
- row.setAppOpsOnClickListener(mOnAppOpsClickListener);
- if (mAllowLongPress) {
- row.setLongPressListener(mGutsManager::openGuts);
- }
- mListContainer.bindRow(row);
- getRemoteInputManager().bindRow(row);
-
+ row.setAppName(appname);
row.setOnDismissRunnable(onDismissRunnable);
row.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
if (ENABLE_REMOTE_INPUT) {
row.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
}
+ row.setAppOpsOnClickListener(mOnAppOpsClickListener);
+
mBindRowCallback.onBindRow(entry, pmUser, sbn, row);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index a8a35d0..50f2199 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -741,10 +741,23 @@
return mIsHeadsUp || mHeadsupDisappearRunning;
}
+
+ public void setGroupManager(NotificationGroupManager groupManager) {
+ mGroupManager = groupManager;
+ mPrivateLayout.setGroupManager(groupManager);
+ }
+
public void setRemoteInputController(RemoteInputController r) {
mPrivateLayout.setRemoteInputController(r);
}
+ public void setAppName(String appName) {
+ mAppName = appName;
+ if (mMenuRow != null && mMenuRow.getMenuView() != null) {
+ mMenuRow.setAppName(mAppName);
+ }
+ }
+
public void addChildNotification(ExpandableNotificationRow row) {
addChildNotification(row, -1);
}
@@ -1091,6 +1104,10 @@
return mPrivateLayout.getContractedNotificationHeader();
}
+ public void setOnExpandClickListener(OnExpandClickListener onExpandClickListener) {
+ mOnExpandClickListener = onExpandClickListener;
+ }
+
public void setLongPressListener(LongPressListener longPressListener) {
mLongPressListener = longPressListener;
}
@@ -1113,6 +1130,10 @@
}
}
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ mHeadsUpManager = headsUpManager;
+ }
+
public HeadsUpManager getHeadsUpManager() {
return mHeadsUpManager;
}
@@ -1635,6 +1656,15 @@
}
}
+ /**
+ * Set the binder implementation for notification content views.
+ *
+ * @param contentBinder content binder
+ */
+ public void setContentBinder(NotificationRowContentBinder contentBinder) {
+ mNotificationContentBinder = contentBinder;
+ }
+
public interface ExpansionLogger {
void logNotificationExpansion(String key, boolean userAction, boolean expanded);
}
@@ -1648,30 +1678,8 @@
initDimens();
}
- /**
- * Initialize row.
- */
- public void initialize(
- String appName,
- String notificationKey,
- ExpansionLogger logger,
- KeyguardBypassController bypassController,
- NotificationGroupManager groupManager,
- HeadsUpManager headsUpManager,
- NotificationRowContentBinder rowContentBinder,
- OnExpandClickListener onExpandClickListener) {
- mAppName = appName;
- if (mMenuRow != null && mMenuRow.getMenuView() != null) {
- mMenuRow.setAppName(mAppName);
- }
- mLogger = logger;
- mLoggingKey = notificationKey;
+ public void setBypassController(KeyguardBypassController bypassController) {
mBypassController = bypassController;
- mGroupManager = groupManager;
- mPrivateLayout.setGroupManager(groupManager);
- mHeadsUpManager = headsUpManager;
- mNotificationContentBinder = rowContentBinder;
- mOnExpandClickListener = onExpandClickListener;
}
public void setStatusBarStateController(StatusBarStateController statusBarStateController) {
@@ -2910,6 +2918,11 @@
return 0;
}
+ public void setExpansionLogger(ExpansionLogger logger, String key) {
+ mLogger = logger;
+ mLoggingKey = key;
+ }
+
public void onExpandedByGesture(boolean userExpanded) {
int event = MetricsEvent.ACTION_NOTIFICATION_GESTURE_EXPANDER;
if (mGroupManager.isSummaryOfGroup(mEntry.getSbn())) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
index 3fdbd3e..fbfd923 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
@@ -47,8 +47,6 @@
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.ExpansionLogger;
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.OnExpandClickListener;
import com.android.systemui.statusbar.notification.row.NotifRemoteViewCache;
import com.android.systemui.statusbar.notification.row.NotificationContentInflater;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
@@ -75,7 +73,6 @@
public static final UserHandle USER_HANDLE = UserHandle.of(ActivityManager.getCurrentUser());
private static final String GROUP_KEY = "gruKey";
- private static final String APP_NAME = "appName";
private final Context mContext;
private int mId;
@@ -307,6 +304,9 @@
null /* root */,
false /* attachToRoot */);
ExpandableNotificationRow row = mRow;
+ row.setGroupManager(mGroupManager);
+ row.setHeadsUpManager(mHeadsUpManager);
+ row.setAboveShelfChangedListener(aboveShelf -> {});
final NotificationChannel channel =
new NotificationChannel(
@@ -330,23 +330,11 @@
entry.setRow(row);
entry.createIcons(mContext, entry.getSbn());
row.setEntry(entry);
-
NotificationContentInflater contentBinder = new NotificationContentInflater(
mock(NotifRemoteViewCache.class),
mock(NotificationRemoteInputManager.class));
contentBinder.setInflateSynchronously(true);
-
- row.initialize(
- APP_NAME,
- entry.getKey(),
- mock(ExpansionLogger.class),
- mock(KeyguardBypassController.class),
- mGroupManager,
- mHeadsUpManager,
- contentBinder,
- mock(OnExpandClickListener.class));
- row.setAboveShelfChangedListener(aboveShelf -> { });
-
+ row.setContentBinder(contentBinder);
row.setInflationFlags(extraInflationFlags);
inflateAndWait(row);