Use Falsing Manager for media player taps
Bug: 202499474 Test: Open media output dialog a few times on keyguard Change-Id: I863874ffab4cd87eda69a4f422792fd8085483b9
This commit is contained in:
@@ -55,6 +55,7 @@ import com.android.systemui.animation.GhostedViewLaunchAnimatorController;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.shared.system.SysUiStatsLog;
|
||||
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
|
||||
import com.android.systemui.util.animation.TransitionLayout;
|
||||
@@ -119,6 +120,7 @@ public class MediaControlPanel {
|
||||
private int mSmartspaceMediaItemsCount;
|
||||
private MediaCarouselController mMediaCarouselController;
|
||||
private final MediaOutputDialogFactory mMediaOutputDialogFactory;
|
||||
private final FalsingManager mFalsingManager;
|
||||
|
||||
/**
|
||||
* Initialize a new control panel
|
||||
@@ -131,7 +133,8 @@ public class MediaControlPanel {
|
||||
ActivityStarter activityStarter, MediaViewController mediaViewController,
|
||||
SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager,
|
||||
KeyguardDismissUtil keyguardDismissUtil, MediaOutputDialogFactory
|
||||
mediaOutputDialogFactory, MediaCarouselController mediaCarouselController) {
|
||||
mediaOutputDialogFactory, MediaCarouselController mediaCarouselController,
|
||||
FalsingManager falsingManager) {
|
||||
mContext = context;
|
||||
mBackgroundExecutor = backgroundExecutor;
|
||||
mActivityStarter = activityStarter;
|
||||
@@ -141,6 +144,7 @@ public class MediaControlPanel {
|
||||
mKeyguardDismissUtil = keyguardDismissUtil;
|
||||
mMediaOutputDialogFactory = mediaOutputDialogFactory;
|
||||
mMediaCarouselController = mediaCarouselController;
|
||||
mFalsingManager = falsingManager;
|
||||
loadDimens();
|
||||
|
||||
mSeekBarViewModel.setLogSmartspaceClick(() -> {
|
||||
@@ -235,10 +239,14 @@ public class MediaControlPanel {
|
||||
}
|
||||
});
|
||||
mPlayerViewHolder.getCancel().setOnClickListener(v -> {
|
||||
closeGuts();
|
||||
if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
closeGuts();
|
||||
}
|
||||
});
|
||||
mPlayerViewHolder.getSettings().setOnClickListener(v -> {
|
||||
mActivityStarter.startActivity(SETTINGS_INTENT, true /* dismissShade */);
|
||||
if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
mActivityStarter.startActivity(SETTINGS_INTENT, true /* dismissShade */);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -259,10 +267,14 @@ public class MediaControlPanel {
|
||||
}
|
||||
});
|
||||
mRecommendationViewHolder.getCancel().setOnClickListener(v -> {
|
||||
closeGuts();
|
||||
if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
closeGuts();
|
||||
}
|
||||
});
|
||||
mRecommendationViewHolder.getSettings().setOnClickListener(v -> {
|
||||
mActivityStarter.startActivity(SETTINGS_INTENT, true /* dismissShade */);
|
||||
if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
mActivityStarter.startActivity(SETTINGS_INTENT, true /* dismissShade */);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -299,6 +311,7 @@ public class MediaControlPanel {
|
||||
PendingIntent clickIntent = data.getClickIntent();
|
||||
if (clickIntent != null) {
|
||||
mPlayerViewHolder.getPlayer().setOnClickListener(v -> {
|
||||
if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return;
|
||||
if (mMediaViewController.isGutsVisible()) return;
|
||||
|
||||
logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
|
||||
@@ -365,8 +378,12 @@ public class MediaControlPanel {
|
||||
setVisibleAndAlpha(collapsedSet, R.id.media_seamless, true /*visible */);
|
||||
setVisibleAndAlpha(expandedSet, R.id.media_seamless, true /*visible */);
|
||||
seamlessView.setOnClickListener(
|
||||
v -> mMediaOutputDialogFactory.create(data.getPackageName(), true,
|
||||
mPlayerViewHolder.getSeamlessButton()));
|
||||
v -> {
|
||||
if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
mMediaOutputDialogFactory.create(data.getPackageName(), true,
|
||||
mPlayerViewHolder.getSeamlessButton());
|
||||
}
|
||||
});
|
||||
|
||||
ImageView iconView = mPlayerViewHolder.getSeamlessIcon();
|
||||
TextView deviceName = mPlayerViewHolder.getSeamlessText();
|
||||
@@ -417,9 +434,11 @@ public class MediaControlPanel {
|
||||
} else {
|
||||
button.setEnabled(true);
|
||||
button.setOnClickListener(v -> {
|
||||
logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
|
||||
/* isRecommendationCard */ false);
|
||||
action.run();
|
||||
if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
|
||||
/* isRecommendationCard */ false);
|
||||
action.run();
|
||||
}
|
||||
});
|
||||
}
|
||||
boolean visibleInCompat = actionsWhenCollapsed.contains(i);
|
||||
@@ -451,6 +470,8 @@ public class MediaControlPanel {
|
||||
mPlayerViewHolder.getDismissLabel().setAlpha(isDismissible ? 1 : DISABLED_ALPHA);
|
||||
mPlayerViewHolder.getDismiss().setEnabled(isDismissible);
|
||||
mPlayerViewHolder.getDismiss().setOnClickListener(v -> {
|
||||
if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return;
|
||||
|
||||
logSmartspaceCardReported(761, // SMARTSPACE_CARD_DISMISS
|
||||
/* isRecommendationCard */ false);
|
||||
|
||||
@@ -633,6 +654,8 @@ public class MediaControlPanel {
|
||||
mSmartspaceMediaItemsCount = uiComponentIndex;
|
||||
// Set up long press to show guts setting panel.
|
||||
mRecommendationViewHolder.getDismiss().setOnClickListener(v -> {
|
||||
if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return;
|
||||
|
||||
logSmartspaceCardReported(761, // SMARTSPACE_CARD_DISMISS
|
||||
/* isRecommendationCard */ true);
|
||||
closeGuts();
|
||||
@@ -788,6 +811,8 @@ public class MediaControlPanel {
|
||||
}
|
||||
|
||||
view.setOnClickListener(v -> {
|
||||
if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return;
|
||||
|
||||
logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
|
||||
/* isRecommendationCard */ true,
|
||||
interactedSubcardRank,
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.media.dialog.MediaOutputDialogFactory
|
||||
import com.android.systemui.plugins.ActivityStarter
|
||||
import com.android.systemui.plugins.FalsingManager
|
||||
import com.android.systemui.statusbar.phone.KeyguardDismissUtil
|
||||
import com.android.systemui.util.animation.TransitionLayout
|
||||
import com.android.systemui.util.concurrency.FakeExecutor
|
||||
@@ -95,6 +96,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
|
||||
@Mock private lateinit var collapsedSet: ConstraintSet
|
||||
@Mock private lateinit var mediaOutputDialogFactory: MediaOutputDialogFactory
|
||||
@Mock private lateinit var mediaCarouselController: MediaCarouselController
|
||||
@Mock private lateinit var falsingManager: FalsingManager
|
||||
private lateinit var appIcon: ImageView
|
||||
private lateinit var albumView: ImageView
|
||||
private lateinit var titleText: TextView
|
||||
@@ -131,8 +133,8 @@ public class MediaControlPanelTest : SysuiTestCase() {
|
||||
whenever(mediaViewController.collapsedLayout).thenReturn(collapsedSet)
|
||||
|
||||
player = MediaControlPanel(context, bgExecutor, activityStarter, mediaViewController,
|
||||
seekBarViewModel, Lazy { mediaDataManager }, keyguardDismissUtil,
|
||||
mediaOutputDialogFactory, mediaCarouselController)
|
||||
seekBarViewModel, Lazy { mediaDataManager }, keyguardDismissUtil,
|
||||
mediaOutputDialogFactory, mediaCarouselController, falsingManager)
|
||||
whenever(seekBarViewModel.progress).thenReturn(seekBarData)
|
||||
|
||||
// Mock out a view holder for the player to attach to.
|
||||
|
||||
Reference in New Issue
Block a user