Merge "Roll forward "Make notification effects for automotive configurable."" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-18 04:45:43 +00:00
committed by Android (Google) Code Review
4 changed files with 35 additions and 2 deletions

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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;

View File

@@ -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);