Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9a6b1a7 authored by Justin Weir's avatar Justin Weir Committed by Android (Google) Code Review
Browse files

Merge "Remove NotificationGutsManager from Dependency" into main

parents 78a85847 ef3a8edb
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -87,7 +87,6 @@ import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManager;
import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.stack.AmbientState;
import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
@@ -130,14 +129,14 @@ import com.android.systemui.util.leak.LeakDetector;
import com.android.systemui.util.leak.LeakReporter;
import com.android.systemui.util.sensors.AsyncSensorManager;

import dagger.Lazy;

import java.util.concurrent.Executor;
import java.util.function.Consumer;

import javax.inject.Inject;
import javax.inject.Named;

import dagger.Lazy;

/**
 * Class to handle ugly dependencies throughout sysui until we determine the
 * long-term dependency injection solution.
@@ -298,7 +297,6 @@ public class Dependency {
    @Inject Lazy<AccessibilityFloatingMenuController> mAccessibilityFloatingMenuController;
    @Inject Lazy<StatusBarStateController> mStatusBarStateController;
    @Inject Lazy<NotificationLockscreenUserManager> mNotificationLockscreenUserManager;
    @Inject Lazy<NotificationGutsManager> mNotificationGutsManager;
    @Inject Lazy<NotificationMediaManager> mNotificationMediaManager;
    @Inject Lazy<NotificationRemoteInputManager> mNotificationRemoteInputManager;
    @Inject Lazy<SmartReplyConstants> mSmartReplyConstants;
@@ -498,7 +496,6 @@ public class Dependency {
        mProviders.put(NotificationLockscreenUserManager.class,
                mNotificationLockscreenUserManager::get);
        mProviders.put(NotificationMediaManager.class, mNotificationMediaManager::get);
        mProviders.put(NotificationGutsManager.class, mNotificationGutsManager::get);
        mProviders.put(NotificationRemoteInputManager.class,
                mNotificationRemoteInputManager::get);
        mProviders.put(SmartReplyConstants.class, mSmartReplyConstants::get);
+6 −5
Original line number Diff line number Diff line
@@ -42,9 +42,8 @@ import android.widget.LinearLayout;
import android.widget.TextView;

import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.Dependency;
import com.android.systemui.res.R;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.res.R;
import com.android.systemui.statusbar.notification.AssistantFeedbackController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.util.Compile;
@@ -76,7 +75,9 @@ public class FeedbackInfo extends LinearLayout implements NotificationGuts.GutsC
            final StatusBarNotification sbn,
            final NotificationEntry entry,
            final ExpandableNotificationRow row,
            final AssistantFeedbackController controller) {
            final AssistantFeedbackController controller,
            final IStatusBarService statusBarService,
            final NotificationGutsManager notificationGutsManager) {
        mPkg = sbn.getPackageName();
        mPm = pm;
        mEntry = entry;
@@ -84,8 +85,8 @@ public class FeedbackInfo extends LinearLayout implements NotificationGuts.GutsC
        mRanking = entry.getRanking();
        mFeedbackController = controller;
        mAppName = mPkg;
        mStatusBarService = Dependency.get(IStatusBarService.class);
        mNotificationGutsManager = Dependency.get(NotificationGutsManager.class);
        mStatusBarService = statusBarService;
        mNotificationGutsManager = notificationGutsManager;

        bindHeader();
        bindPrompt();
+6 −1
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.statusbar.IStatusBarService;
import com.android.settingslib.notification.ConversationIconFactory;
import com.android.systemui.CoreStartable;
import com.android.systemui.dagger.SysUISingleton;
@@ -99,6 +100,7 @@ public class NotificationGutsManager implements NotifGutsViewManager, CoreStarta
    // Dependencies:
    private final NotificationLockscreenUserManager mLockscreenUserManager;
    private final StatusBarStateController mStatusBarStateController;
    private final IStatusBarService mStatusBarService;
    private final DeviceProvisionedController mDeviceProvisionedController;
    private final AssistantFeedbackController mAssistantFeedbackController;

@@ -152,6 +154,7 @@ public class NotificationGutsManager implements NotifGutsViewManager, CoreStarta
            WindowRootViewVisibilityInteractor windowRootViewVisibilityInteractor,
            NotificationLockscreenUserManager notificationLockscreenUserManager,
            StatusBarStateController statusBarStateController,
            IStatusBarService statusBarService,
            DeviceProvisionedController deviceProvisionedController,
            MetricsLogger metricsLogger,
            HeadsUpManager headsUpManager,
@@ -177,6 +180,7 @@ public class NotificationGutsManager implements NotifGutsViewManager, CoreStarta
        mWindowRootViewVisibilityInteractor = windowRootViewVisibilityInteractor;
        mLockscreenUserManager = notificationLockscreenUserManager;
        mStatusBarStateController = statusBarStateController;
        mStatusBarService = statusBarService;
        mDeviceProvisionedController = deviceProvisionedController;
        mMetricsLogger = metricsLogger;
        mHeadsUpManager = headsUpManager;
@@ -358,7 +362,8 @@ public class NotificationGutsManager implements NotifGutsViewManager, CoreStarta
        PackageManager pmUser = CentralSurfaces.getPackageManagerForUser(mContext,
                userHandle.getIdentifier());

        feedbackInfo.bindGuts(pmUser, sbn, row.getEntry(), row, mAssistantFeedbackController);
        feedbackInfo.bindGuts(pmUser, sbn, row.getEntry(), row, mAssistantFeedbackController,
                mStatusBarService, this);
    }

    /**
+11 −9
Original line number Diff line number Diff line
@@ -54,9 +54,9 @@ import android.widget.ImageView;
import android.widget.TextView;

import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.res.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.res.R;
import com.android.systemui.statusbar.notification.AssistantFeedbackController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
@@ -132,7 +132,8 @@ public class FeedbackInfoTest extends SysuiTestCase {
    public void testBindNotification_SetsTextApplicationName() {
        when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name");
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(),
                mMockNotificationRow, mAssistantFeedbackController);
                mMockNotificationRow, mAssistantFeedbackController, mStatusBarService,
                mNotificationGutsManager);
        final TextView textView = mFeedbackInfo.findViewById(R.id.pkg_name);
        assertTrue(textView.getText().toString().contains("App Name"));
    }
@@ -143,7 +144,8 @@ public class FeedbackInfoTest extends SysuiTestCase {
        when(mMockPackageManager.getApplicationIcon(any(ApplicationInfo.class)))
                .thenReturn(iconDrawable);
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(),
                mMockNotificationRow, mAssistantFeedbackController);
                mMockNotificationRow, mAssistantFeedbackController, mStatusBarService,
                mNotificationGutsManager);
        final ImageView iconView = mFeedbackInfo.findViewById(R.id.pkg_icon);
        assertEquals(iconDrawable, iconView.getDrawable());
    }
@@ -153,7 +155,7 @@ public class FeedbackInfoTest extends SysuiTestCase {
        when(mAssistantFeedbackController.getFeedbackStatus(any(NotificationEntry.class)))
                .thenReturn(STATUS_SILENCED);
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(), mMockNotificationRow,
                mAssistantFeedbackController);
                mAssistantFeedbackController, mStatusBarService, mNotificationGutsManager);
        TextView prompt = mFeedbackInfo.findViewById(R.id.prompt);
        assertEquals("This notification was automatically demoted to Silent by the system. "
                        + "Let the developer know your feedback. Was this correct?",
@@ -165,7 +167,7 @@ public class FeedbackInfoTest extends SysuiTestCase {
        when(mAssistantFeedbackController.getFeedbackStatus(any(NotificationEntry.class)))
                .thenReturn(STATUS_PROMOTED);
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(), mMockNotificationRow,
                mAssistantFeedbackController);
                mAssistantFeedbackController, mStatusBarService, mNotificationGutsManager);
        TextView prompt = mFeedbackInfo.findViewById(R.id.prompt);
        assertEquals("This notification was automatically ranked higher in your shade. "
                        + "Let the developer know your feedback. Was this correct?",
@@ -177,7 +179,7 @@ public class FeedbackInfoTest extends SysuiTestCase {
        when(mAssistantFeedbackController.getFeedbackStatus(any(NotificationEntry.class)))
                .thenReturn(STATUS_ALERTED);
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(), mMockNotificationRow,
                mAssistantFeedbackController);
                mAssistantFeedbackController, mStatusBarService, mNotificationGutsManager);
        TextView prompt = mFeedbackInfo.findViewById(R.id.prompt);
        assertEquals("This notification was automatically promoted to Default by the system. "
                        + "Let the developer know your feedback. Was this correct?",
@@ -189,7 +191,7 @@ public class FeedbackInfoTest extends SysuiTestCase {
        when(mAssistantFeedbackController.getFeedbackStatus(any(NotificationEntry.class)))
                .thenReturn(STATUS_DEMOTED);
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(), mMockNotificationRow,
                mAssistantFeedbackController);
                mAssistantFeedbackController, mStatusBarService, mNotificationGutsManager);
        TextView prompt = mFeedbackInfo.findViewById(R.id.prompt);
        assertEquals("This notification was automatically ranked lower in your shade. "
                        + "Let the developer know your feedback. Was this correct?",
@@ -199,7 +201,7 @@ public class FeedbackInfoTest extends SysuiTestCase {
    @Test
    public void testPositiveFeedback() {
        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(), mMockNotificationRow,
                mAssistantFeedbackController);
                mAssistantFeedbackController, mStatusBarService, mNotificationGutsManager);

        final View yes = mFeedbackInfo.findViewById(R.id.yes);
        yes.performClick();
@@ -216,7 +218,7 @@ public class FeedbackInfoTest extends SysuiTestCase {
                .thenReturn(true);

        mFeedbackInfo.bindGuts(mMockPackageManager, mSbn, getEntry(), mMockNotificationRow,
                mAssistantFeedbackController);
                mAssistantFeedbackController, mStatusBarService, mNotificationGutsManager);

        final View no = mFeedbackInfo.findViewById(R.id.no);
        no.performClick();
+1 −0
Original line number Diff line number Diff line
@@ -195,6 +195,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
                mWindowRootViewVisibilityInteractor,
                mNotificationLockscreenUserManager,
                mStatusBarStateController,
                mBarService,
                mDeviceProvisionedController,
                mMetricsLogger,
                mHeadsUpManager,