Merge "Show conversation guts when HUNing" into rvc-dev am: 161cdc30ec am: a43d3edfe1
Change-Id: I2eabe722c4d7a4bfa1f5da06b6901d32d0f15307
This commit is contained in:
@@ -89,6 +89,7 @@ import com.android.systemui.statusbar.notification.NotificationUtils;
|
|||||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationCounters;
|
import com.android.systemui.statusbar.notification.logging.NotificationCounters;
|
||||||
|
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
|
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
|
||||||
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
|
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
|
||||||
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
||||||
@@ -148,6 +149,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
|||||||
private KeyguardBypassController mBypassController;
|
private KeyguardBypassController mBypassController;
|
||||||
private LayoutListener mLayoutListener;
|
private LayoutListener mLayoutListener;
|
||||||
private RowContentBindStage mRowContentBindStage;
|
private RowContentBindStage mRowContentBindStage;
|
||||||
|
private PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
private int mIconTransformContentShift;
|
private int mIconTransformContentShift;
|
||||||
private int mMaxHeadsUpHeightBeforeN;
|
private int mMaxHeadsUpHeightBeforeN;
|
||||||
private int mMaxHeadsUpHeightBeforeP;
|
private int mMaxHeadsUpHeightBeforeP;
|
||||||
@@ -1145,7 +1147,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
|||||||
@Override
|
@Override
|
||||||
public void onPluginDisconnected(NotificationMenuRowPlugin plugin) {
|
public void onPluginDisconnected(NotificationMenuRowPlugin plugin) {
|
||||||
boolean existed = mMenuRow.getMenuView() != null;
|
boolean existed = mMenuRow.getMenuView() != null;
|
||||||
mMenuRow = new NotificationMenuRow(mContext);
|
mMenuRow = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
if (existed) {
|
if (existed) {
|
||||||
createMenu();
|
createMenu();
|
||||||
}
|
}
|
||||||
@@ -1582,7 +1584,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
|||||||
|
|
||||||
public ExpandableNotificationRow(Context context, AttributeSet attrs) {
|
public ExpandableNotificationRow(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
mMenuRow = new NotificationMenuRow(mContext);
|
|
||||||
mImageResolver = new NotificationInlineImageResolver(context,
|
mImageResolver = new NotificationInlineImageResolver(context,
|
||||||
new NotificationInlineImageCache());
|
new NotificationInlineImageCache());
|
||||||
initDimens();
|
initDimens();
|
||||||
@@ -1603,9 +1604,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
|||||||
NotificationMediaManager notificationMediaManager,
|
NotificationMediaManager notificationMediaManager,
|
||||||
OnAppOpsClickListener onAppOpsClickListener,
|
OnAppOpsClickListener onAppOpsClickListener,
|
||||||
FalsingManager falsingManager,
|
FalsingManager falsingManager,
|
||||||
StatusBarStateController statusBarStateController) {
|
StatusBarStateController statusBarStateController,
|
||||||
|
PeopleNotificationIdentifier peopleNotificationIdentifier) {
|
||||||
mAppName = appName;
|
mAppName = appName;
|
||||||
if (mMenuRow != null && mMenuRow.getMenuView() != null) {
|
if (mMenuRow == null) {
|
||||||
|
mMenuRow = new NotificationMenuRow(mContext, peopleNotificationIdentifier);
|
||||||
|
}
|
||||||
|
if (mMenuRow.getMenuView() != null) {
|
||||||
mMenuRow.setAppName(mAppName);
|
mMenuRow.setAppName(mAppName);
|
||||||
}
|
}
|
||||||
mLogger = logger;
|
mLogger = logger;
|
||||||
@@ -1620,6 +1625,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
|||||||
setAppOpsOnClickListener(onAppOpsClickListener);
|
setAppOpsOnClickListener(onAppOpsClickListener);
|
||||||
mFalsingManager = falsingManager;
|
mFalsingManager = falsingManager;
|
||||||
mStatusbarStateController = statusBarStateController;
|
mStatusbarStateController = statusBarStateController;
|
||||||
|
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDimens() {
|
private void initDimens() {
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
|||||||
import com.android.systemui.shared.plugins.PluginManager;
|
import com.android.systemui.shared.plugins.PluginManager;
|
||||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
|
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
|
||||||
import com.android.systemui.statusbar.notification.row.dagger.AppName;
|
import com.android.systemui.statusbar.notification.row.dagger.AppName;
|
||||||
import com.android.systemui.statusbar.notification.row.dagger.DismissRunnable;
|
import com.android.systemui.statusbar.notification.row.dagger.DismissRunnable;
|
||||||
import com.android.systemui.statusbar.notification.row.dagger.NotificationKey;
|
import com.android.systemui.statusbar.notification.row.dagger.NotificationKey;
|
||||||
@@ -68,6 +69,7 @@ public class ExpandableNotificationRowController {
|
|||||||
private Runnable mOnDismissRunnable;
|
private Runnable mOnDismissRunnable;
|
||||||
private final FalsingManager mFalsingManager;
|
private final FalsingManager mFalsingManager;
|
||||||
private final boolean mAllowLongPress;
|
private final boolean mAllowLongPress;
|
||||||
|
private final PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public ExpandableNotificationRowController(ExpandableNotificationRow view,
|
public ExpandableNotificationRowController(ExpandableNotificationRow view,
|
||||||
@@ -83,7 +85,8 @@ public class ExpandableNotificationRowController {
|
|||||||
NotificationRowContentBinder.InflationCallback inflationCallback,
|
NotificationRowContentBinder.InflationCallback inflationCallback,
|
||||||
NotificationGutsManager notificationGutsManager,
|
NotificationGutsManager notificationGutsManager,
|
||||||
@Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress,
|
@Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress,
|
||||||
@DismissRunnable Runnable onDismissRunnable, FalsingManager falsingManager) {
|
@DismissRunnable Runnable onDismissRunnable, FalsingManager falsingManager,
|
||||||
|
PeopleNotificationIdentifier peopleNotificationIdentifier) {
|
||||||
mView = view;
|
mView = view;
|
||||||
mActivatableNotificationViewController = activatableNotificationViewController;
|
mActivatableNotificationViewController = activatableNotificationViewController;
|
||||||
mMediaManager = mediaManager;
|
mMediaManager = mediaManager;
|
||||||
@@ -104,6 +107,7 @@ public class ExpandableNotificationRowController {
|
|||||||
mOnAppOpsClickListener = mNotificationGutsManager::openGuts;
|
mOnAppOpsClickListener = mNotificationGutsManager::openGuts;
|
||||||
mAllowLongPress = allowLongPress;
|
mAllowLongPress = allowLongPress;
|
||||||
mFalsingManager = falsingManager;
|
mFalsingManager = falsingManager;
|
||||||
|
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -123,7 +127,8 @@ public class ExpandableNotificationRowController {
|
|||||||
mMediaManager,
|
mMediaManager,
|
||||||
mOnAppOpsClickListener,
|
mOnAppOpsClickListener,
|
||||||
mFalsingManager,
|
mFalsingManager,
|
||||||
mStatusBarStateController
|
mStatusBarStateController,
|
||||||
|
mPeopleNotificationIdentifier
|
||||||
);
|
);
|
||||||
mView.setOnDismissRunnable(mOnDismissRunnable);
|
mView.setOnDismissRunnable(mOnDismissRunnable);
|
||||||
mView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
|
mView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
|
||||||
|
|||||||
@@ -45,8 +45,9 @@ import com.android.systemui.Interpolators;
|
|||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
||||||
import com.android.systemui.statusbar.AlphaOptimizedImageView;
|
import com.android.systemui.statusbar.AlphaOptimizedImageView;
|
||||||
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
|
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationGuts.GutsContent;
|
import com.android.systemui.statusbar.notification.row.NotificationGuts.GutsContent;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager;
|
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -114,12 +115,16 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl
|
|||||||
|
|
||||||
private boolean mIsUserTouching;
|
private boolean mIsUserTouching;
|
||||||
|
|
||||||
public NotificationMenuRow(Context context) {
|
private final PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
|
|
||||||
|
public NotificationMenuRow(Context context,
|
||||||
|
PeopleNotificationIdentifier peopleNotificationIdentifier) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mShouldShowMenu = context.getResources().getBoolean(R.bool.config_showNotificationGear);
|
mShouldShowMenu = context.getResources().getBoolean(R.bool.config_showNotificationGear);
|
||||||
mHandler = new Handler(Looper.getMainLooper());
|
mHandler = new Handler(Looper.getMainLooper());
|
||||||
mLeftMenuItems = new ArrayList<>();
|
mLeftMenuItems = new ArrayList<>();
|
||||||
mRightMenuItems = new ArrayList<>();
|
mRightMenuItems = new ArrayList<>();
|
||||||
|
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -260,7 +265,10 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl
|
|||||||
mSnoozeItem = createSnoozeItem(mContext);
|
mSnoozeItem = createSnoozeItem(mContext);
|
||||||
}
|
}
|
||||||
mAppOpsItem = createAppOpsItem(mContext);
|
mAppOpsItem = createAppOpsItem(mContext);
|
||||||
if (mParent.getEntry().getBucket() == NotificationSectionsManager.BUCKET_PEOPLE) {
|
NotificationEntry entry = mParent.getEntry();
|
||||||
|
int personNotifType = mPeopleNotificationIdentifier
|
||||||
|
.getPeopleNotificationType(entry.getSbn(), entry.getRanking());
|
||||||
|
if (personNotifType != PeopleNotificationIdentifier.TYPE_NON_PERSON) {
|
||||||
mInfoItem = createConversationItem(mContext);
|
mInfoItem = createConversationItem(mContext);
|
||||||
} else {
|
} else {
|
||||||
mInfoItem = createInfoItem(mContext);
|
mInfoItem = createInfoItem(mContext);
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Mock private ActivatableNotificationViewController mActivatableNotificationViewController;
|
@Mock private ActivatableNotificationViewController mActivatableNotificationViewController;
|
||||||
@Mock private NotificationRowComponent.Builder mNotificationRowComponentBuilder;
|
@Mock private NotificationRowComponent.Builder mNotificationRowComponentBuilder;
|
||||||
|
@Mock private PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
|
|
||||||
private StatusBarNotification mSbn;
|
private StatusBarNotification mSbn;
|
||||||
private NotificationListenerService.RankingMap mRankingMap;
|
private NotificationListenerService.RankingMap mRankingMap;
|
||||||
@@ -239,7 +240,8 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase {
|
|||||||
mGutsManager,
|
mGutsManager,
|
||||||
true,
|
true,
|
||||||
null,
|
null,
|
||||||
mFalsingManager
|
mFalsingManager,
|
||||||
|
mPeopleNotificationIdentifier
|
||||||
));
|
));
|
||||||
|
|
||||||
when(mNotificationRowComponentBuilder.activatableNotificationView(any()))
|
when(mNotificationRowComponentBuilder.activatableNotificationView(any()))
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ import com.android.systemui.statusbar.notification.NotificationActivityStarter;
|
|||||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
|
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
|
||||||
|
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener;
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
||||||
import com.android.systemui.statusbar.phone.StatusBar;
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
@@ -118,6 +119,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
|||||||
@Mock private INotificationManager mINotificationManager;
|
@Mock private INotificationManager mINotificationManager;
|
||||||
@Mock private LauncherApps mLauncherApps;
|
@Mock private LauncherApps mLauncherApps;
|
||||||
@Mock private ShortcutManager mShortcutManager;
|
@Mock private ShortcutManager mShortcutManager;
|
||||||
|
@Mock private PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -465,7 +467,8 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private NotificationMenuRowPlugin.MenuItem createTestMenuItem(ExpandableNotificationRow row) {
|
private NotificationMenuRowPlugin.MenuItem createTestMenuItem(ExpandableNotificationRow row) {
|
||||||
NotificationMenuRowPlugin menuRow = new NotificationMenuRow(mContext);
|
NotificationMenuRowPlugin menuRow =
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
menuRow.createMenu(row, row.getEntry().getSbn());
|
menuRow.createMenu(row, row.getEntry().getSbn());
|
||||||
|
|
||||||
NotificationMenuRowPlugin.MenuItem menuItem = menuRow.getLongpressMenuItem(mContext);
|
NotificationMenuRowPlugin.MenuItem menuItem = menuRow.getLongpressMenuItem(mContext);
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ import androidx.test.filters.SmallTest;
|
|||||||
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
|
||||||
|
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
|
||||||
import com.android.systemui.utils.leaks.LeakCheckedTest;
|
import com.android.systemui.utils.leaks.LeakCheckedTest;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
@@ -54,11 +55,13 @@ import org.mockito.Mockito;
|
|||||||
public class NotificationMenuRowTest extends LeakCheckedTest {
|
public class NotificationMenuRowTest extends LeakCheckedTest {
|
||||||
|
|
||||||
private ExpandableNotificationRow mRow;
|
private ExpandableNotificationRow mRow;
|
||||||
|
private PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
|
injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
|
||||||
mRow = mock(ExpandableNotificationRow.class);
|
mRow = mock(ExpandableNotificationRow.class);
|
||||||
|
mPeopleNotificationIdentifier = mock(PeopleNotificationIdentifier.class);
|
||||||
NotificationEntry entry = new NotificationEntryBuilder().build();
|
NotificationEntry entry = new NotificationEntryBuilder().build();
|
||||||
when(mRow.getEntry()).thenReturn(entry);
|
when(mRow.getEntry()).thenReturn(entry);
|
||||||
}
|
}
|
||||||
@@ -71,7 +74,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAttachDetach() {
|
public void testAttachDetach() {
|
||||||
NotificationMenuRowPlugin row = new NotificationMenuRow(mContext);
|
NotificationMenuRowPlugin row =
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
row.createMenu(mRow, null);
|
row.createMenu(mRow, null);
|
||||||
ViewUtils.attachView(row.getMenuView());
|
ViewUtils.attachView(row.getMenuView());
|
||||||
TestableLooper.get(this).processAllMessages();
|
TestableLooper.get(this).processAllMessages();
|
||||||
@@ -81,7 +85,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRecreateMenu() {
|
public void testRecreateMenu() {
|
||||||
NotificationMenuRowPlugin row = new NotificationMenuRow(mContext);
|
NotificationMenuRowPlugin row =
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
row.createMenu(mRow, null);
|
row.createMenu(mRow, null);
|
||||||
assertTrue(row.getMenuView() != null);
|
assertTrue(row.getMenuView() != null);
|
||||||
row.createMenu(mRow, null);
|
row.createMenu(mRow, null);
|
||||||
@@ -90,7 +95,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResetUncreatedMenu() {
|
public void testResetUncreatedMenu() {
|
||||||
NotificationMenuRowPlugin row = new NotificationMenuRow(mContext);
|
NotificationMenuRowPlugin row =
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
row.resetMenu();
|
row.resetMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +105,7 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
public void testNoAppOpsInSlowSwipe() {
|
public void testNoAppOpsInSlowSwipe() {
|
||||||
Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 0);
|
Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 0);
|
||||||
|
|
||||||
NotificationMenuRow row = new NotificationMenuRow(mContext);
|
NotificationMenuRow row = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
row.createMenu(mRow, null);
|
row.createMenu(mRow, null);
|
||||||
|
|
||||||
ViewGroup container = (ViewGroup) row.getMenuView();
|
ViewGroup container = (ViewGroup) row.getMenuView();
|
||||||
@@ -111,7 +117,7 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
public void testNoSnoozeInSlowSwipe() {
|
public void testNoSnoozeInSlowSwipe() {
|
||||||
Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 0);
|
Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 0);
|
||||||
|
|
||||||
NotificationMenuRow row = new NotificationMenuRow(mContext);
|
NotificationMenuRow row = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
row.createMenu(mRow, null);
|
row.createMenu(mRow, null);
|
||||||
|
|
||||||
ViewGroup container = (ViewGroup) row.getMenuView();
|
ViewGroup container = (ViewGroup) row.getMenuView();
|
||||||
@@ -123,7 +129,7 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
public void testSnoozeInSlowSwipe() {
|
public void testSnoozeInSlowSwipe() {
|
||||||
Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 1);
|
Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 1);
|
||||||
|
|
||||||
NotificationMenuRow row = new NotificationMenuRow(mContext);
|
NotificationMenuRow row = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier);
|
||||||
row.createMenu(mRow, null);
|
row.createMenu(mRow, null);
|
||||||
|
|
||||||
ViewGroup container = (ViewGroup) row.getMenuView();
|
ViewGroup container = (ViewGroup) row.getMenuView();
|
||||||
@@ -133,7 +139,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsSnappedAndOnSameSide() {
|
public void testIsSnappedAndOnSameSide() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
|
|
||||||
when(row.isMenuVisible()).thenReturn(true);
|
when(row.isMenuVisible()).thenReturn(true);
|
||||||
when(row.isMenuSnapped()).thenReturn(true);
|
when(row.isMenuSnapped()).thenReturn(true);
|
||||||
@@ -165,7 +172,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetMenuSnapTarget() {
|
public void testGetMenuSnapTarget() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
when(row.isMenuOnLeft()).thenReturn(true);
|
when(row.isMenuOnLeft()).thenReturn(true);
|
||||||
doReturn(30).when(row).getSpaceForMenu();
|
doReturn(30).when(row).getSpaceForMenu();
|
||||||
|
|
||||||
@@ -179,7 +187,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsSwipedEnoughToShowMenu() {
|
public void testIsSwipedEnoughToShowMenu() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
when(row.isMenuVisible()).thenReturn(true);
|
when(row.isMenuVisible()).thenReturn(true);
|
||||||
when(row.isMenuOnLeft()).thenReturn(true);
|
when(row.isMenuOnLeft()).thenReturn(true);
|
||||||
doReturn(40f).when(row).getMinimumSwipeDistance();
|
doReturn(40f).when(row).getMinimumSwipeDistance();
|
||||||
@@ -205,7 +214,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsWithinSnapMenuThreshold() {
|
public void testIsWithinSnapMenuThreshold() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
doReturn(30f).when(row).getSnapBackThreshold();
|
doReturn(30f).when(row).getSnapBackThreshold();
|
||||||
doReturn(50f).when(row).getDismissThreshold();
|
doReturn(50f).when(row).getDismissThreshold();
|
||||||
|
|
||||||
@@ -238,7 +248,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testShouldSnapBack() {
|
public void testShouldSnapBack() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
doReturn(40f).when(row).getSnapBackThreshold();
|
doReturn(40f).when(row).getSnapBackThreshold();
|
||||||
when(row.isMenuVisible()).thenReturn(false);
|
when(row.isMenuVisible()).thenReturn(false);
|
||||||
when(row.isMenuOnLeft()).thenReturn(true);
|
when(row.isMenuOnLeft()).thenReturn(true);
|
||||||
@@ -259,7 +270,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCanBeDismissed() {
|
public void testCanBeDismissed() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
ExpandableNotificationRow parent = mock(ExpandableNotificationRow.class);
|
ExpandableNotificationRow parent = mock(ExpandableNotificationRow.class);
|
||||||
|
|
||||||
when(row.getParent()).thenReturn(parent);
|
when(row.getParent()).thenReturn(parent);
|
||||||
@@ -274,7 +286,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsTowardsMenu() {
|
public void testIsTowardsMenu() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
when(row.isMenuVisible()).thenReturn(true);
|
when(row.isMenuVisible()).thenReturn(true);
|
||||||
when(row.isMenuOnLeft()).thenReturn(true);
|
when(row.isMenuOnLeft()).thenReturn(true);
|
||||||
|
|
||||||
@@ -294,7 +307,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onSnapBack() {
|
public void onSnapBack() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
NotificationMenuRowPlugin.OnMenuEventListener listener = mock(NotificationMenuRowPlugin
|
NotificationMenuRowPlugin.OnMenuEventListener listener = mock(NotificationMenuRowPlugin
|
||||||
.OnMenuEventListener.class);
|
.OnMenuEventListener.class);
|
||||||
row.setMenuClickListener(listener);
|
row.setMenuClickListener(listener);
|
||||||
@@ -315,7 +329,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnSnap() {
|
public void testOnSnap() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
when(row.isMenuOnLeft()).thenReturn(true);
|
when(row.isMenuOnLeft()).thenReturn(true);
|
||||||
NotificationMenuRowPlugin.OnMenuEventListener listener = mock(NotificationMenuRowPlugin
|
NotificationMenuRowPlugin.OnMenuEventListener listener = mock(NotificationMenuRowPlugin
|
||||||
.OnMenuEventListener.class);
|
.OnMenuEventListener.class);
|
||||||
@@ -335,7 +350,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnDismiss() {
|
public void testOnDismiss() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
doNothing().when(row).cancelDrag();
|
doNothing().when(row).cancelDrag();
|
||||||
row.onSnapOpen();
|
row.onSnapOpen();
|
||||||
|
|
||||||
@@ -351,7 +367,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnDown() {
|
public void testOnDown() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
doNothing().when(row).beginDrag();
|
doNothing().when(row).beginDrag();
|
||||||
|
|
||||||
row.onTouchStart();
|
row.onTouchStart();
|
||||||
@@ -361,7 +378,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnUp() {
|
public void testOnUp() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
row.onTouchStart();
|
row.onTouchStart();
|
||||||
|
|
||||||
assertTrue("before onTouchEnd, isUserTouching is true", row.isUserTouching());
|
assertTrue("before onTouchEnd, isUserTouching is true", row.isUserTouching());
|
||||||
@@ -373,7 +391,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsMenuVisible() {
|
public void testIsMenuVisible() {
|
||||||
NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext)));
|
NotificationMenuRow row = Mockito.spy(
|
||||||
|
new NotificationMenuRow(mContext, mPeopleNotificationIdentifier));
|
||||||
row.setMenuAlpha(0);
|
row.setMenuAlpha(0);
|
||||||
|
|
||||||
assertFalse("when alpha is 0, menu is not visible", row.isMenuVisible());
|
assertFalse("when alpha is 0, menu is not visible", row.isMenuVisible());
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ import com.android.systemui.statusbar.notification.collection.notifcollection.Co
|
|||||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
||||||
import com.android.systemui.statusbar.notification.icon.IconBuilder;
|
import com.android.systemui.statusbar.notification.icon.IconBuilder;
|
||||||
import com.android.systemui.statusbar.notification.icon.IconManager;
|
import com.android.systemui.statusbar.notification.icon.IconManager;
|
||||||
|
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
|
||||||
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.ExpansionLogger;
|
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.ExpandableNotificationRow.OnExpandClickListener;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
|
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
|
||||||
@@ -100,6 +101,7 @@ public class NotificationTestHelper {
|
|||||||
private final RowContentBindStage mBindStage;
|
private final RowContentBindStage mBindStage;
|
||||||
private final IconManager mIconManager;
|
private final IconManager mIconManager;
|
||||||
private StatusBarStateController mStatusBarStateController;
|
private StatusBarStateController mStatusBarStateController;
|
||||||
|
private final PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||||
|
|
||||||
public NotificationTestHelper(Context context, TestableDependency dependency) {
|
public NotificationTestHelper(Context context, TestableDependency dependency) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
@@ -138,6 +140,7 @@ public class NotificationTestHelper {
|
|||||||
ArgumentCaptor.forClass(NotifCollectionListener.class);
|
ArgumentCaptor.forClass(NotifCollectionListener.class);
|
||||||
verify(collection).addCollectionListener(collectionListenerCaptor.capture());
|
verify(collection).addCollectionListener(collectionListenerCaptor.capture());
|
||||||
mBindPipelineEntryListener = collectionListenerCaptor.getValue();
|
mBindPipelineEntryListener = collectionListenerCaptor.getValue();
|
||||||
|
mPeopleNotificationIdentifier = mock(PeopleNotificationIdentifier.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -407,7 +410,8 @@ public class NotificationTestHelper {
|
|||||||
mock(NotificationMediaManager.class),
|
mock(NotificationMediaManager.class),
|
||||||
mock(ExpandableNotificationRow.OnAppOpsClickListener.class),
|
mock(ExpandableNotificationRow.OnAppOpsClickListener.class),
|
||||||
mock(FalsingManager.class),
|
mock(FalsingManager.class),
|
||||||
mStatusBarStateController);
|
mStatusBarStateController,
|
||||||
|
mPeopleNotificationIdentifier);
|
||||||
row.setAboveShelfChangedListener(aboveShelf -> { });
|
row.setAboveShelfChangedListener(aboveShelf -> { });
|
||||||
mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags);
|
mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags);
|
||||||
inflateAndWait(entry, mBindStage);
|
inflateAndWait(entry, mBindStage);
|
||||||
|
|||||||
Reference in New Issue
Block a user