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

Commit b4b8a948 authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez
Browse files

Adding MSDL feedback to notifications long-press.

Test: manual. Verified that MSDL haptics are felt when
  long-pressing on a notification if the flag is on.
Flag: com.android.systemui.msdl_feedback
Bug: 371194868
Change-Id: I934c0ef1a1dbbeb4caa870f3fe465dcd485d29a3
parent ae63222f
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.withArgCaptor
import com.android.systemui.util.time.SystemClock
import com.android.systemui.wmshell.BubblesManager
import com.google.android.msdl.domain.MSDLPlayer
import java.util.Optional
import junit.framework.Assert
import org.junit.After
@@ -110,6 +111,7 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {
    private val dismissibilityProvider: NotificationDismissibilityProvider = mock()
    private val statusBarService: IStatusBarService = mock()
    private val uiEventLogger: UiEventLogger = mock()
    private val msdlPlayer: MSDLPlayer = mock()
    private lateinit var controller: ExpandableNotificationRowController

    @Before
@@ -150,7 +152,8 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {
                dragController,
                dismissibilityProvider,
                statusBarService,
                uiEventLogger
                uiEventLogger,
                msdlPlayer,
            )
        whenever(view.childrenContainer).thenReturn(childrenContainer)

@@ -268,14 +271,14 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {
        controller.mSettingsListener.onSettingChanged(
            BUBBLES_SETTING_URI,
            view.entry.sbn.userId,
            "1"
            "1",
        )
        verify(childView).setBubblesEnabledForUser(true)

        controller.mSettingsListener.onSettingChanged(
            BUBBLES_SETTING_URI,
            view.entry.sbn.userId,
            "9"
            "9",
        )
        verify(childView).setBubblesEnabledForUser(false)
    }
+1 −0
Original line number Diff line number Diff line
@@ -1987,6 +1987,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
        mColorUpdateLogger = colorUpdateLogger;
        mDismissibilityProvider = dismissibilityProvider;
        mFeatureFlags = featureFlags;
        setHapticFeedbackEnabled(!com.android.systemui.Flags.msdlFeedback());
    }

    private void initDimens() {
+10 −1
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;
import com.android.systemui.util.time.SystemClock;
import com.android.systemui.wmshell.BubblesManager;

import com.google.android.msdl.data.model.MSDLToken;
import com.google.android.msdl.domain.MSDLPlayer;

import java.util.List;
import java.util.Optional;

@@ -114,6 +117,7 @@ public class ExpandableNotificationRowController implements NotifViewController
    private final NotificationDismissibilityProvider mDismissibilityProvider;
    private final IStatusBarService mStatusBarService;
    private final UiEventLogger mUiEventLogger;
    private final MSDLPlayer mMSDLPlayer;

    private final NotificationSettingsController mSettingsController;

@@ -273,7 +277,8 @@ public class ExpandableNotificationRowController implements NotifViewController
            ExpandableNotificationRowDragController dragController,
            NotificationDismissibilityProvider dismissibilityProvider,
            IStatusBarService statusBarService,
            UiEventLogger uiEventLogger) {
            UiEventLogger uiEventLogger,
            MSDLPlayer msdlPlayer) {
        mView = view;
        mListContainer = listContainer;
        mRemoteInputViewSubcomponentFactory = rivSubcomponentFactory;
@@ -309,6 +314,7 @@ public class ExpandableNotificationRowController implements NotifViewController
        mDismissibilityProvider = dismissibilityProvider;
        mStatusBarService = statusBarService;
        mUiEventLogger = uiEventLogger;
        mMSDLPlayer = msdlPlayer;
    }

    /**
@@ -352,6 +358,9 @@ public class ExpandableNotificationRowController implements NotifViewController
            }

            mView.setLongPressListener((v, x, y, item) -> {
                if (com.android.systemui.Flags.msdlFeedback()) {
                    mMSDLPlayer.playToken(MSDLToken.LONG_PRESS, null);
                }
                if (mView.isSummaryWithChildren()) {
                    mView.expandNotification();
                    return true;