Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9d0bffa authored by Qiao (Adora) Zhang's avatar Qiao (Adora) Zhang
Browse files

Revert "Make notification effects for automotive configurable."

This reverts commit 4dae2857.

Reason for revert: b/130513450

Fix: 130513450

Change-Id: Ie2f7c5e66f1436c0a540fb86b1886978d72cb7c7
parent 4dae2857
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -744,10 +744,6 @@


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


+0 −1
Original line number Original line Diff line number Diff line
@@ -1909,7 +1909,6 @@
  <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" />
+0 −6
Original line number Original line Diff line number Diff line
@@ -454,7 +454,6 @@ 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;
@@ -1681,8 +1680,6 @@ 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));
@@ -5557,9 +5554,6 @@ 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;
+13 −38
Original line number Original line Diff line number Diff line
@@ -48,8 +48,8 @@ import android.app.Notification;
import android.app.Notification.Builder;
import android.app.Notification.Builder;
import android.app.NotificationChannel;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.NotificationManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Color;
import android.media.AudioAttributes;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.AudioManager;
@@ -63,7 +63,6 @@ import android.provider.Settings;
import android.service.notification.NotificationListenerService;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.service.notification.StatusBarNotification;
import android.test.suitebuilder.annotation.SmallTest;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.TestableContext;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.IAccessibilityManager;
import android.view.accessibility.IAccessibilityManager;
@@ -71,7 +70,6 @@ import android.view.accessibility.IAccessibilityManagerClient;


import androidx.test.runner.AndroidJUnit4;
import androidx.test.runner.AndroidJUnit4;


import com.android.internal.R;
import com.android.internal.util.IntPair;
import com.android.internal.util.IntPair;
import com.android.server.UiServiceTestCase;
import com.android.server.UiServiceTestCase;
import com.android.server.lights.Light;
import com.android.server.lights.Light;
@@ -88,7 +86,6 @@ import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class)
@RunWith(AndroidJUnit4.class)
public class BuzzBeepBlinkTest extends UiServiceTestCase {
public class BuzzBeepBlinkTest extends UiServiceTestCase {


    private TestableContext mContext = spy(getContext());
    @Mock AudioManager mAudioManager;
    @Mock AudioManager mAudioManager;
    @Mock Vibrator mVibrator;
    @Mock Vibrator mVibrator;
    @Mock android.media.IRingtonePlayer mRingtonePlayer;
    @Mock android.media.IRingtonePlayer mRingtonePlayer;
@@ -99,8 +96,6 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
    NotificationUsageStats mUsageStats;
    NotificationUsageStats mUsageStats;
    @Mock
    @Mock
    IAccessibilityManager mAccessibilityService;
    IAccessibilityManager mAccessibilityService;
    @Mock
    Resources mResources;


    private NotificationManagerService mService;
    private NotificationManagerService mService;
    private String mPkg = "com.android.server.notification";
    private String mPkg = "com.android.server.notification";
@@ -150,7 +145,7 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
        verify(mAccessibilityService).addClient(any(IAccessibilityManagerClient.class), anyInt());
        verify(mAccessibilityService).addClient(any(IAccessibilityManagerClient.class), anyInt());
        assertTrue(accessibilityManager.isEnabled());
        assertTrue(accessibilityManager.isEnabled());


        mService = spy(new NotificationManagerService(mContext));
        mService = spy(new NotificationManagerService(getContext()));
        mService.setAudioManager(mAudioManager);
        mService.setAudioManager(mAudioManager);
        mService.setVibrator(mVibrator);
        mService.setVibrator(mVibrator);
        mService.setSystemReady(true);
        mService.setSystemReady(true);
@@ -280,7 +275,7 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
            boolean isLeanback) {
            boolean isLeanback) {
        NotificationChannel channel =
        NotificationChannel channel =
                new NotificationChannel("test", "test", IMPORTANCE_HIGH);
                new NotificationChannel("test", "test", IMPORTANCE_HIGH);
        final Builder builder = new Builder(mContext)
        final Builder builder = new Builder(getContext())
                .setContentTitle("foo")
                .setContentTitle("foo")
                .setSmallIcon(android.R.drawable.sym_def_app_icon)
                .setSmallIcon(android.R.drawable.sym_def_app_icon)
                .setPriority(Notification.PRIORITY_HIGH)
                .setPriority(Notification.PRIORITY_HIGH)
@@ -326,14 +321,15 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
            n.flags |= Notification.FLAG_INSISTENT;
            n.flags |= Notification.FLAG_INSISTENT;
        }
        }


        PackageManager packageManager = spy(mContext.getPackageManager());
        Context context = spy(getContext());
        when(mContext.getPackageManager()).thenReturn(packageManager);
        PackageManager packageManager = spy(context.getPackageManager());
        when(context.getPackageManager()).thenReturn(packageManager);
        when(packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK))
        when(packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK))
                .thenReturn(isLeanback);
                .thenReturn(isLeanback);


        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, id, mTag, mUid,
        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, id, mTag, mUid,
                mPid, n, mUser, null, System.currentTimeMillis());
                mPid, n, mUser, null, System.currentTimeMillis());
        NotificationRecord r = new NotificationRecord(mContext, sbn, channel);
        NotificationRecord r = new NotificationRecord(context, sbn, channel);
        mService.addNotification(r);
        mService.addNotification(r);
        return r;
        return r;
    }
    }
@@ -459,25 +455,7 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
    }
    }


    @Test
    @Test
    public void testNoBeepForAutomotiveIfEffectsDisabled() throws Exception {
    public void testNoBeepForImportanceDefaultInAutomotive() throws Exception {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_enableServerNotificationEffectsForAutomotive))
                .thenReturn(false);
        mService.setIsAutomotive(true);

        NotificationRecord r = getBeepyNotification();

        mService.buzzBeepBlinkLocked(r);

        verifyNeverBeep();
        assertFalse(r.isInterruptive());
    }

    @Test
    public void testNoBeepForImportanceDefaultInAutomotiveIfEffectsEnabled() throws Exception {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_enableServerNotificationEffectsForAutomotive))
                .thenReturn(true);
        mService.setIsAutomotive(true);
        mService.setIsAutomotive(true);


        NotificationRecord r = getBeepyNotification();
        NotificationRecord r = getBeepyNotification();
@@ -490,10 +468,7 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
    }
    }


    @Test
    @Test
    public void testBeepForImportanceHighInAutomotiveIfEffectsEnabled() throws Exception {
    public void testBeepForImportanceHighInAutomotive() throws Exception {
        when(mContext.getResources()).thenReturn(mResources);
        when(mResources.getBoolean(R.bool.config_enableServerNotificationEffectsForAutomotive))
                .thenReturn(true);
        mService.setIsAutomotive(true);
        mService.setIsAutomotive(true);


        NotificationRecord r = getBeepyNotification();
        NotificationRecord r = getBeepyNotification();
@@ -1040,12 +1015,12 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
    public void testEmptyUriSoundTreatedAsNoSound() throws Exception {
    public void testEmptyUriSoundTreatedAsNoSound() throws Exception {
        NotificationChannel channel = new NotificationChannel("test", "test", IMPORTANCE_HIGH);
        NotificationChannel channel = new NotificationChannel("test", "test", IMPORTANCE_HIGH);
        channel.setSound(Uri.EMPTY, null);
        channel.setSound(Uri.EMPTY, null);
        final Notification n = new Builder(mContext, "test")
        final Notification n = new Builder(getContext(), "test")
                .setSmallIcon(android.R.drawable.sym_def_app_icon).build();
                .setSmallIcon(android.R.drawable.sym_def_app_icon).build();


        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid,
        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid,
                mPid, n, mUser, null, System.currentTimeMillis());
                mPid, n, mUser, null, System.currentTimeMillis());
        NotificationRecord r = new NotificationRecord(mContext, sbn, channel);
        NotificationRecord r = new NotificationRecord(getContext(), sbn, channel);
        mService.addNotification(r);
        mService.addNotification(r);


        mService.buzzBeepBlinkLocked(r);
        mService.buzzBeepBlinkLocked(r);
@@ -1094,13 +1069,13 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {


    @Test
    @Test
    public void testCrossUserSoundMuted() throws Exception {
    public void testCrossUserSoundMuted() throws Exception {
        final Notification n = new Builder(mContext, "test")
        final Notification n = new Builder(getContext(), "test")
                .setSmallIcon(android.R.drawable.sym_def_app_icon).build();
                .setSmallIcon(android.R.drawable.sym_def_app_icon).build();


        int userId = mUser.getIdentifier() + 1;
        int userId = mUser.getIdentifier() + 1;
        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid,
        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid,
                mPid, n, UserHandle.of(userId), null, System.currentTimeMillis());
                mPid, n, UserHandle.of(userId), null, System.currentTimeMillis());
        NotificationRecord r = new NotificationRecord(mContext, sbn,
        NotificationRecord r = new NotificationRecord(getContext(), sbn,
                new NotificationChannel("test", "test", IMPORTANCE_HIGH));
                new NotificationChannel("test", "test", IMPORTANCE_HIGH));


        mService.buzzBeepBlinkLocked(r);
        mService.buzzBeepBlinkLocked(r);