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

Commit 025d9d2a authored by Fan Zhang's avatar Fan Zhang
Browse files

Fix a NPE when getting ZenMode in RingerMutedCondition.

Change-Id: If9a8b6f4a2d5e9b45402240d8e1401cef7dd001c
Fixes: 77217038
Test: robotest
parent f9cfc7c7
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.dashboard.conditional;

import static android.content.Context.NOTIFICATION_SERVICE;

import android.app.NotificationManager;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
@@ -30,14 +32,19 @@ public class RingerMutedCondition extends AbnormalRingerConditionBase {

    RingerMutedCondition(ConditionManager manager) {
        super(manager);
        mNotificationManager = mManager.getContext().getSystemService(NotificationManager.class);
        mNotificationManager =
                (NotificationManager) mManager.getContext().getSystemService(NOTIFICATION_SERVICE);
    }

    @Override
    public void refreshState() {
        int zen = mNotificationManager.getZenMode();
        boolean zenModeEnabled = zen != Settings.Global.ZEN_MODE_OFF;
        boolean isSilent = mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_SILENT;
        int zen = Settings.Global.ZEN_MODE_OFF;
        if (mNotificationManager != null) {
            zen = mNotificationManager.getZenMode();
        }
        final boolean zenModeEnabled = zen != Settings.Global.ZEN_MODE_OFF;
        final boolean isSilent =
                mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_SILENT;
        setActive(isSilent && !zenModeEnabled);
    }

+1 −2
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.NotificationManager;
import android.content.Context;
import android.media.AudioManager;
import android.provider.Settings;
@@ -59,7 +58,7 @@ public class RingerMutedConditionTest {
        mContext = RuntimeEnvironment.application;
        mAudioManager = Shadow.extract(mContext.getSystemService(Context.AUDIO_SERVICE));
        mNotificationManager = Shadow.extract(
                mContext.getSystemService(NotificationManager.class));
                mContext.getSystemService(Context.NOTIFICATION_SERVICE));
        when(mConditionManager.getContext()).thenReturn(mContext);
        mCondition = spy(new RingerMutedCondition(mConditionManager));
    }