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 -->
|
<!-- 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. -->
|
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
|
||||||
<bool name="config_unplugTurnsOnScreen">false</bool>
|
<bool name="config_unplugTurnsOnScreen">false</bool>
|
||||||
|
|
||||||
|
|||||||
@@ -1910,6 +1910,7 @@
|
|||||||
<java-symbol type="array" name="config_testLocationProviders" />
|
<java-symbol type="array" name="config_testLocationProviders" />
|
||||||
<java-symbol type="array" name="config_defaultNotificationVibePattern" />
|
<java-symbol type="array" name="config_defaultNotificationVibePattern" />
|
||||||
<java-symbol type="array" name="config_notificationFallbackVibePattern" />
|
<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_useAttentionLight" />
|
||||||
<java-symbol type="bool" name="config_adaptive_sleep_available" />
|
<java-symbol type="bool" name="config_adaptive_sleep_available" />
|
||||||
<java-symbol type="bool" name="config_animateScreenLights" />
|
<java-symbol type="bool" name="config_animateScreenLights" />
|
||||||
|
|||||||
@@ -455,6 +455,7 @@ public class NotificationManagerService extends SystemService {
|
|||||||
private int mAutoGroupAtCount;
|
private int mAutoGroupAtCount;
|
||||||
private boolean mIsTelevision;
|
private boolean mIsTelevision;
|
||||||
private boolean mIsAutomotive;
|
private boolean mIsAutomotive;
|
||||||
|
private boolean mNotificationEffectsEnabledForAutomotive;
|
||||||
|
|
||||||
private MetricsLogger mMetricsLogger;
|
private MetricsLogger mMetricsLogger;
|
||||||
private TriPredicate<String, Integer, String> mAllowedManagedServicePackages;
|
private TriPredicate<String, Integer, String> mAllowedManagedServicePackages;
|
||||||
@@ -1525,6 +1526,11 @@ public class NotificationManagerService extends SystemService {
|
|||||||
mIsAutomotive = isAutomotive;
|
mIsAutomotive = isAutomotive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void setNotificationEffectsEnabledForAutomotive(boolean isEnabled) {
|
||||||
|
mNotificationEffectsEnabledForAutomotive = isEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setIsTelevision(boolean isTelevision) {
|
void setIsTelevision(boolean isTelevision) {
|
||||||
mIsTelevision = isTelevision;
|
mIsTelevision = isTelevision;
|
||||||
@@ -1686,6 +1692,8 @@ public class NotificationManagerService extends SystemService {
|
|||||||
|
|
||||||
mIsAutomotive =
|
mIsAutomotive =
|
||||||
mPackageManagerClient.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE, 0);
|
mPackageManagerClient.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE, 0);
|
||||||
|
mNotificationEffectsEnabledForAutomotive =
|
||||||
|
resources.getBoolean(R.bool.config_enableServerNotificationEffectsForAutomotive);
|
||||||
|
|
||||||
mPreferencesHelper.lockChannelsForOEM(getContext().getResources().getStringArray(
|
mPreferencesHelper.lockChannelsForOEM(getContext().getResources().getStringArray(
|
||||||
com.android.internal.R.array.config_nonBlockableNotificationPackages));
|
com.android.internal.R.array.config_nonBlockableNotificationPackages));
|
||||||
@@ -5563,6 +5571,9 @@ public class NotificationManagerService extends SystemService {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@GuardedBy("mNotificationLock")
|
@GuardedBy("mNotificationLock")
|
||||||
void buzzBeepBlinkLocked(NotificationRecord record) {
|
void buzzBeepBlinkLocked(NotificationRecord record) {
|
||||||
|
if (mIsAutomotive && !mNotificationEffectsEnabledForAutomotive) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
boolean buzz = false;
|
boolean buzz = false;
|
||||||
boolean beep = false;
|
boolean beep = false;
|
||||||
boolean blink = false;
|
boolean blink = false;
|
||||||
|
|||||||
@@ -455,8 +455,23 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNoBeepForImportanceDefaultInAutomotive() throws Exception {
|
public void testNoBeepForAutomotiveIfEffectsDisabled() throws Exception {
|
||||||
mService.setIsAutomotive(true);
|
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();
|
NotificationRecord r = getBeepyNotification();
|
||||||
r.setSystemImportance(NotificationManager.IMPORTANCE_DEFAULT);
|
r.setSystemImportance(NotificationManager.IMPORTANCE_DEFAULT);
|
||||||
@@ -468,10 +483,12 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBeepForImportanceHighInAutomotive() throws Exception {
|
public void testBeepForImportanceHighInAutomotiveIfEffectsEnabled() throws Exception {
|
||||||
mService.setIsAutomotive(true);
|
mService.setIsAutomotive(true);
|
||||||
|
mService.setNotificationEffectsEnabledForAutomotive(true);
|
||||||
|
|
||||||
NotificationRecord r = getBeepyNotification();
|
NotificationRecord r = getBeepyNotification();
|
||||||
|
r.setSystemImportance(NotificationManager.IMPORTANCE_HIGH);
|
||||||
|
|
||||||
mService.buzzBeepBlinkLocked(r);
|
mService.buzzBeepBlinkLocked(r);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user