Merge "Remove Dependency.get usage from some notif views" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a1f8bb910
@@ -79,7 +79,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.util.ContrastColorUtil;
|
||||
import com.android.internal.widget.CachingIconView;
|
||||
import com.android.internal.widget.CallLayout;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.classifier.FalsingCollector;
|
||||
@@ -90,6 +89,7 @@ import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin.MenuItem
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.RemoteInputController;
|
||||
import com.android.systemui.statusbar.SmartReplyController;
|
||||
import com.android.systemui.statusbar.StatusBarIconView;
|
||||
import com.android.systemui.statusbar.notification.AboveShelfChangedListener;
|
||||
import com.android.systemui.statusbar.notification.ExpandAnimationParameters;
|
||||
@@ -111,10 +111,11 @@ import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainer;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
||||
import com.android.systemui.statusbar.notification.stack.SwipeableView;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.phone.CentralSurfaces;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyState;
|
||||
import com.android.systemui.statusbar.policy.SmartReplyConstants;
|
||||
import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;
|
||||
import com.android.systemui.util.Compile;
|
||||
import com.android.systemui.util.DumpUtilsKt;
|
||||
@@ -169,6 +170,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
private RowContentBindStage mRowContentBindStage;
|
||||
private PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||
private Optional<BubblesManager> mBubblesManagerOptional;
|
||||
private MetricsLogger mMetricsLogger;
|
||||
private int mIconTransformContentShift;
|
||||
private int mMaxHeadsUpHeightBeforeN;
|
||||
private int mMaxHeadsUpHeightBeforeP;
|
||||
@@ -304,8 +306,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
final boolean wasExpanded = mGroupExpansionManager.isGroupExpanded(mEntry);
|
||||
boolean nowExpanded = mGroupExpansionManager.toggleGroupExpansion(mEntry);
|
||||
mOnExpandClickListener.onExpandClicked(mEntry, v, nowExpanded);
|
||||
MetricsLogger.action(mContext, MetricsEvent.ACTION_NOTIFICATION_GROUP_EXPANDER,
|
||||
nowExpanded);
|
||||
mMetricsLogger.action(MetricsEvent.ACTION_NOTIFICATION_GROUP_EXPANDER, nowExpanded);
|
||||
onExpansionChanged(true /* userAction */, wasExpanded);
|
||||
} else if (mEnableNonGroupedNotificationExpand) {
|
||||
if (v.isAccessibilityFocused()) {
|
||||
@@ -327,8 +328,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
}
|
||||
notifyHeightChanged(true);
|
||||
mOnExpandClickListener.onExpandClicked(mEntry, v, nowExpanded);
|
||||
MetricsLogger.action(mContext, MetricsEvent.ACTION_NOTIFICATION_EXPANDER,
|
||||
nowExpanded);
|
||||
mMetricsLogger.action(MetricsEvent.ACTION_NOTIFICATION_EXPANDER, nowExpanded);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1271,7 +1271,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
addView(mMenuRow.getMenuView(), menuIndex);
|
||||
}
|
||||
for (NotificationContentView l : mLayouts) {
|
||||
l.initView();
|
||||
l.reinflate();
|
||||
l.reInflateViews();
|
||||
}
|
||||
mEntry.getSbn().clearPackageContext();
|
||||
@@ -1464,7 +1464,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
* @param fromAccessibility whether this dismiss is coming from an accessibility action
|
||||
*/
|
||||
public void performDismiss(boolean fromAccessibility) {
|
||||
Dependency.get(MetricsLogger.class).count(NotificationCounters.NOTIFICATION_DISMISSED, 1);
|
||||
mMetricsLogger.count(NotificationCounters.NOTIFICATION_DISMISSED, 1);
|
||||
dismiss(fromAccessibility);
|
||||
if (mEntry.isDismissable()) {
|
||||
if (mOnUserInteractionCallback != null) {
|
||||
@@ -1600,7 +1600,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
PeopleNotificationIdentifier peopleNotificationIdentifier,
|
||||
OnUserInteractionCallback onUserInteractionCallback,
|
||||
Optional<BubblesManager> bubblesManagerOptional,
|
||||
NotificationGutsManager gutsManager) {
|
||||
NotificationGutsManager gutsManager,
|
||||
MetricsLogger metricsLogger,
|
||||
SmartReplyConstants smartReplyConstants,
|
||||
SmartReplyController smartReplyController) {
|
||||
mEntry = entry;
|
||||
mAppName = appName;
|
||||
if (mMenuRow == null) {
|
||||
@@ -1623,15 +1626,18 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
mFalsingManager = falsingManager;
|
||||
mFalsingCollector = falsingCollector;
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
|
||||
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
|
||||
for (NotificationContentView l : mLayouts) {
|
||||
l.setPeopleNotificationIdentifier(mPeopleNotificationIdentifier);
|
||||
l.setRemoteInputViewSubcomponentFactory(rivSubcomponentFactory);
|
||||
l.initialize(
|
||||
mPeopleNotificationIdentifier,
|
||||
rivSubcomponentFactory,
|
||||
smartReplyConstants,
|
||||
smartReplyController);
|
||||
}
|
||||
mOnUserInteractionCallback = onUserInteractionCallback;
|
||||
mBubblesManagerOptional = bubblesManagerOptional;
|
||||
mNotificationGutsManager = gutsManager;
|
||||
mMetricsLogger = metricsLogger;
|
||||
|
||||
cacheIsSystemNotification();
|
||||
}
|
||||
@@ -3127,7 +3133,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
if (mGroupMembershipManager.isGroupSummary(mEntry)) {
|
||||
event = MetricsEvent.ACTION_NOTIFICATION_GROUP_GESTURE_EXPANDER;
|
||||
}
|
||||
MetricsLogger.action(mContext, event, userExpanded);
|
||||
mMetricsLogger.action(event, userExpanded);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.systemui.classifier.FalsingCollector;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
@@ -35,6 +36,7 @@ import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.SmartReplyController;
|
||||
import com.android.systemui.statusbar.notification.FeedbackIcon;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManager;
|
||||
@@ -49,6 +51,7 @@ import com.android.systemui.statusbar.notification.row.dagger.NotificationRowSco
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
import com.android.systemui.statusbar.policy.SmartReplyConstants;
|
||||
import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;
|
||||
import com.android.systemui.util.time.SystemClock;
|
||||
import com.android.systemui.wmshell.BubblesManager;
|
||||
@@ -82,6 +85,7 @@ public class ExpandableNotificationRowController implements NotifViewController
|
||||
private final HeadsUpManager mHeadsUpManager;
|
||||
private final ExpandableNotificationRow.OnExpandClickListener mOnExpandClickListener;
|
||||
private final StatusBarStateController mStatusBarStateController;
|
||||
private final MetricsLogger mMetricsLogger;
|
||||
|
||||
private final ExpandableNotificationRow.ExpansionLogger mExpansionLogger =
|
||||
this::logNotificationExpansion;
|
||||
@@ -94,16 +98,21 @@ public class ExpandableNotificationRowController implements NotifViewController
|
||||
private final boolean mAllowLongPress;
|
||||
private final PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||
private final Optional<BubblesManager> mBubblesManagerOptional;
|
||||
private final SmartReplyConstants mSmartReplyConstants;
|
||||
private final SmartReplyController mSmartReplyController;
|
||||
|
||||
private final ExpandableNotificationRowDragController mDragController;
|
||||
|
||||
@Inject
|
||||
public ExpandableNotificationRowController(
|
||||
ExpandableNotificationRow view,
|
||||
NotificationListContainer listContainer,
|
||||
RemoteInputViewSubcomponent.Factory rivSubcomponentFactory,
|
||||
ActivatableNotificationViewController activatableNotificationViewController,
|
||||
RemoteInputViewSubcomponent.Factory rivSubcomponentFactory,
|
||||
MetricsLogger metricsLogger,
|
||||
NotificationListContainer listContainer,
|
||||
NotificationMediaManager mediaManager,
|
||||
SmartReplyConstants smartReplyConstants,
|
||||
SmartReplyController smartReplyController,
|
||||
PluginManager pluginManager,
|
||||
SystemClock clock,
|
||||
@AppName String appName,
|
||||
@@ -152,6 +161,9 @@ public class ExpandableNotificationRowController implements NotifViewController
|
||||
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
|
||||
mBubblesManagerOptional = bubblesManagerOptional;
|
||||
mDragController = dragController;
|
||||
mMetricsLogger = metricsLogger;
|
||||
mSmartReplyConstants = smartReplyConstants;
|
||||
mSmartReplyController = smartReplyController;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -179,7 +191,10 @@ public class ExpandableNotificationRowController implements NotifViewController
|
||||
mPeopleNotificationIdentifier,
|
||||
mOnUserInteractionCallback,
|
||||
mBubblesManagerOptional,
|
||||
mNotificationGutsManager
|
||||
mNotificationGutsManager,
|
||||
mMetricsLogger,
|
||||
mSmartReplyConstants,
|
||||
mSmartReplyController
|
||||
);
|
||||
mView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
|
||||
if (mAllowLongPress) {
|
||||
|
||||
@@ -39,7 +39,6 @@ import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
||||
import com.android.systemui.statusbar.RemoteInputController;
|
||||
@@ -94,7 +93,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
private final Rect mClipBounds = new Rect();
|
||||
|
||||
private int mMinContractedHeight;
|
||||
private int mNotificationContentMarginEnd;
|
||||
private View mContractedChild;
|
||||
private View mExpandedChild;
|
||||
private View mHeadsUpChild;
|
||||
@@ -116,7 +114,7 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
private NotificationViewWrapper mContractedWrapper;
|
||||
private NotificationViewWrapper mExpandedWrapper;
|
||||
private NotificationViewWrapper mHeadsUpWrapper;
|
||||
private HybridGroupManager mHybridGroupManager;
|
||||
private final HybridGroupManager mHybridGroupManager;
|
||||
private int mClipTopAmount;
|
||||
private int mContentHeight;
|
||||
private int mVisibleType = VISIBLE_TYPE_NONE;
|
||||
@@ -128,7 +126,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
private int mHeadsUpHeight;
|
||||
private int mNotificationMaxHeight;
|
||||
private NotificationEntry mNotificationEntry;
|
||||
private GroupMembershipManager mGroupMembershipManager;
|
||||
private RemoteInputController mRemoteInputController;
|
||||
private Runnable mExpandedVisibleListener;
|
||||
private PeopleNotificationIdentifier mPeopleIdentifier;
|
||||
@@ -184,7 +181,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
private boolean mFocusOnVisibilityChange;
|
||||
private boolean mHeadsUpAnimatingAway;
|
||||
private int mClipBottomAmount;
|
||||
private boolean mIsLowPriority;
|
||||
private boolean mIsContentExpandable;
|
||||
private boolean mRemoteInputVisible;
|
||||
private int mUnrestrictedContentHeight;
|
||||
@@ -192,16 +188,23 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
public NotificationContentView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mHybridGroupManager = new HybridGroupManager(getContext());
|
||||
mSmartReplyConstants = Dependency.get(SmartReplyConstants.class);
|
||||
mSmartReplyController = Dependency.get(SmartReplyController.class);
|
||||
initView();
|
||||
reinflate();
|
||||
}
|
||||
|
||||
public void initView() {
|
||||
public void initialize(
|
||||
PeopleNotificationIdentifier peopleNotificationIdentifier,
|
||||
RemoteInputViewSubcomponent.Factory rivSubcomponentFactory,
|
||||
SmartReplyConstants smartReplyConstants,
|
||||
SmartReplyController smartReplyController) {
|
||||
mPeopleIdentifier = peopleNotificationIdentifier;
|
||||
mRemoteInputSubcomponentFactory = rivSubcomponentFactory;
|
||||
mSmartReplyConstants = smartReplyConstants;
|
||||
mSmartReplyController = smartReplyController;
|
||||
}
|
||||
|
||||
public void reinflate() {
|
||||
mMinContractedHeight = getResources().getDimensionPixelSize(
|
||||
R.dimen.min_notification_layout_height);
|
||||
mNotificationContentMarginEnd = getResources().getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.notification_content_margin_end);
|
||||
}
|
||||
|
||||
public void setHeights(int smallHeight, int headsUpMaxHeight, int maxHeight) {
|
||||
@@ -1606,7 +1609,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
}
|
||||
|
||||
public void setGroupMembershipManager(GroupMembershipManager groupMembershipManager) {
|
||||
mGroupMembershipManager = groupMembershipManager;
|
||||
}
|
||||
|
||||
public void setRemoteInputController(RemoteInputController r) {
|
||||
@@ -1694,10 +1696,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
mContainingNotification = containingNotification;
|
||||
}
|
||||
|
||||
public void setPeopleNotificationIdentifier(PeopleNotificationIdentifier peopleIdentifier) {
|
||||
mPeopleIdentifier = peopleIdentifier;
|
||||
}
|
||||
|
||||
public void requestSelectLayout(boolean needsAnimation) {
|
||||
selectLayout(needsAnimation, false);
|
||||
}
|
||||
@@ -1865,7 +1863,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
}
|
||||
|
||||
public void setIsLowPriority(boolean isLowPriority) {
|
||||
mIsLowPriority = isLowPriority;
|
||||
}
|
||||
|
||||
public boolean isDimmable() {
|
||||
@@ -2090,10 +2087,6 @@ public class NotificationContentView extends FrameLayout implements Notification
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setRemoteInputViewSubcomponentFactory(RemoteInputViewSubcomponent.Factory factory) {
|
||||
mRemoteInputSubcomponentFactory = factory;
|
||||
}
|
||||
|
||||
private static class RemoteInputViewData {
|
||||
@Nullable RemoteInputView mView;
|
||||
@Nullable RemoteInputViewController mController;
|
||||
|
||||
@@ -41,6 +41,7 @@ import android.testing.TestableLooper;
|
||||
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.util.NotificationMessagingUtil;
|
||||
import com.android.systemui.R;
|
||||
@@ -87,6 +88,7 @@ import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyState;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyViewHolder;
|
||||
import com.android.systemui.statusbar.policy.SmartReplyConstants;
|
||||
import com.android.systemui.statusbar.policy.SmartReplyStateInflater;
|
||||
import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
@@ -252,13 +254,17 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase {
|
||||
.thenAnswer((Answer<ExpandableNotificationRowController>) invocation ->
|
||||
new ExpandableNotificationRowController(
|
||||
viewCaptor.getValue(),
|
||||
mListContainer,
|
||||
mock(RemoteInputViewSubcomponent.Factory.class),
|
||||
mock(ActivatableNotificationViewController.class),
|
||||
mock(RemoteInputViewSubcomponent.Factory.class),
|
||||
mock(MetricsLogger.class),
|
||||
mListContainer,
|
||||
mNotificationMediaManager,
|
||||
mock(SmartReplyConstants.class),
|
||||
mock(SmartReplyController.class),
|
||||
mock(PluginManager.class),
|
||||
new FakeSystemClock(),
|
||||
"FOOBAR", "FOOBAR",
|
||||
"FOOBAR",
|
||||
"FOOBAR",
|
||||
mKeyguardBypassController,
|
||||
mGroupMembershipManager,
|
||||
mGroupExpansionManager,
|
||||
@@ -275,8 +281,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase {
|
||||
mock(FeatureFlags.class),
|
||||
mPeopleNotificationIdentifier,
|
||||
Optional.of(mock(BubblesManager.class)),
|
||||
mock(ExpandableNotificationRowDragController.class)
|
||||
));
|
||||
mock(ExpandableNotificationRowDragController.class)));
|
||||
|
||||
when(mNotificationRowComponentBuilder.activatableNotificationView(any()))
|
||||
.thenReturn(mNotificationRowComponentBuilder);
|
||||
|
||||
@@ -44,6 +44,7 @@ import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.widget.RemoteViews;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.systemui.TestableDependency;
|
||||
import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
@@ -54,6 +55,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.SmartReplyController;
|
||||
import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
|
||||
@@ -73,6 +75,7 @@ import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManagerLogger;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyState;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyViewHolder;
|
||||
import com.android.systemui.statusbar.policy.SmartReplyConstants;
|
||||
import com.android.systemui.statusbar.policy.SmartReplyStateInflater;
|
||||
import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;
|
||||
import com.android.systemui.tests.R;
|
||||
@@ -505,7 +508,10 @@ public class NotificationTestHelper {
|
||||
mPeopleNotificationIdentifier,
|
||||
mOnUserInteractionCallback,
|
||||
Optional.of(mock(BubblesManager.class)),
|
||||
mock(NotificationGutsManager.class));
|
||||
mock(NotificationGutsManager.class),
|
||||
mock(MetricsLogger.class),
|
||||
mock(SmartReplyConstants.class),
|
||||
mock(SmartReplyController.class));
|
||||
|
||||
row.setAboveShelfChangedListener(aboveShelf -> { });
|
||||
mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags);
|
||||
|
||||
Reference in New Issue
Block a user