Merge "Roll forward "Make notification effects for automotive configurable."" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
328ff83bb3
@@ -745,6 +745,10 @@
|
||||
|
||||
<!-- XXXXXX END OF RESOURCES USING WRONG NAMING CONVENTION -->
|
||||
|
||||
<!-- If this is true, notification effects will be played by the notification server.
|
||||
When false, car notification effects will be handled elsewhere. -->
|
||||
<bool name="config_enableServerNotificationEffectsForAutomotive">false</bool>
|
||||
|
||||
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
|
||||
<bool name="config_unplugTurnsOnScreen">false</bool>
|
||||
|
||||
|
||||
@@ -1910,6 +1910,7 @@
|
||||
<java-symbol type="array" name="config_testLocationProviders" />
|
||||
<java-symbol type="array" name="config_defaultNotificationVibePattern" />
|
||||
<java-symbol type="array" name="config_notificationFallbackVibePattern" />
|
||||
<java-symbol type="bool" name="config_enableServerNotificationEffectsForAutomotive" />
|
||||
<java-symbol type="bool" name="config_useAttentionLight" />
|
||||
<java-symbol type="bool" name="config_adaptive_sleep_available" />
|
||||
<java-symbol type="bool" name="config_animateScreenLights" />
|
||||
|
||||
@@ -455,6 +455,7 @@ public class NotificationManagerService extends SystemService {
|
||||
private int mAutoGroupAtCount;
|
||||
private boolean mIsTelevision;
|
||||
private boolean mIsAutomotive;
|
||||
private boolean mNotificationEffectsEnabledForAutomotive;
|
||||
|
||||
private MetricsLogger mMetricsLogger;
|
||||
private TriPredicate<String, Integer, String> mAllowedManagedServicePackages;
|
||||
@@ -1525,6 +1526,11 @@ public class NotificationManagerService extends SystemService {
|
||||
mIsAutomotive = isAutomotive;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setNotificationEffectsEnabledForAutomotive(boolean isEnabled) {
|
||||
mNotificationEffectsEnabledForAutomotive = isEnabled;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setIsTelevision(boolean isTelevision) {
|
||||
mIsTelevision = isTelevision;
|
||||
@@ -1686,6 +1692,8 @@ public class NotificationManagerService extends SystemService {
|
||||
|
||||
mIsAutomotive =
|
||||
mPackageManagerClient.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE, 0);
|
||||
mNotificationEffectsEnabledForAutomotive =
|
||||
resources.getBoolean(R.bool.config_enableServerNotificationEffectsForAutomotive);
|
||||
|
||||
mPreferencesHelper.lockChannelsForOEM(getContext().getResources().getStringArray(
|
||||
com.android.internal.R.array.config_nonBlockableNotificationPackages));
|
||||
@@ -5563,6 +5571,9 @@ public class NotificationManagerService extends SystemService {
|
||||
@VisibleForTesting
|
||||
@GuardedBy("mNotificationLock")
|
||||
void buzzBeepBlinkLocked(NotificationRecord record) {
|
||||
if (mIsAutomotive && !mNotificationEffectsEnabledForAutomotive) {
|
||||
return;
|
||||
}
|
||||
boolean buzz = false;
|
||||
boolean beep = false;
|
||||
boolean blink = false;
|
||||
|
||||
@@ -455,8 +455,23 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoBeepForImportanceDefaultInAutomotive() throws Exception {
|
||||
public void testNoBeepForAutomotiveIfEffectsDisabled() throws Exception {
|
||||
mService.setIsAutomotive(true);
|
||||
mService.setNotificationEffectsEnabledForAutomotive(false);
|
||||
|
||||
NotificationRecord r = getBeepyNotification();
|
||||
r.setSystemImportance(NotificationManager.IMPORTANCE_HIGH);
|
||||
|
||||
mService.buzzBeepBlinkLocked(r);
|
||||
|
||||
verifyNeverBeep();
|
||||
assertFalse(r.isInterruptive());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoBeepForImportanceDefaultInAutomotiveIfEffectsEnabled() throws Exception {
|
||||
mService.setIsAutomotive(true);
|
||||
mService.setNotificationEffectsEnabledForAutomotive(true);
|
||||
|
||||
NotificationRecord r = getBeepyNotification();
|
||||
r.setSystemImportance(NotificationManager.IMPORTANCE_DEFAULT);
|
||||
@@ -468,10 +483,12 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBeepForImportanceHighInAutomotive() throws Exception {
|
||||
public void testBeepForImportanceHighInAutomotiveIfEffectsEnabled() throws Exception {
|
||||
mService.setIsAutomotive(true);
|
||||
mService.setNotificationEffectsEnabledForAutomotive(true);
|
||||
|
||||
NotificationRecord r = getBeepyNotification();
|
||||
r.setSystemImportance(NotificationManager.IMPORTANCE_HIGH);
|
||||
|
||||
mService.buzzBeepBlinkLocked(r);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user