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

Commit f145dc27 authored by Peter Kalauskas's avatar Peter Kalauskas Committed by Automerger Merge Worker
Browse files

Merge "Cache SHOW_MEDIA_ON_QUICK_SETTINGS" into tm-dev am: f944c485

parents e367e290 f944c485
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -21,9 +21,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.provider.Settings;
import android.view.ContextThemeWrapper;
import android.view.DisplayCutout;

import com.android.internal.policy.SystemBarUtils;
@@ -35,6 +33,8 @@ import java.util.function.Consumer;

public class Utils {

    private static Boolean sUseQsMediaPlayer = null;

    /**
     * Allows lambda iteration over a list. It is done in reverse order so it is safe
     * to add or remove items during the iteration.  Skips over null items.
@@ -81,9 +81,16 @@ public class Utils {
     * Off by default, but can be disabled by setting to 0
     */
    public static boolean useQsMediaPlayer(Context context) {
        // TODO(b/192412820): Replace SHOW_MEDIA_ON_QUICK_SETTINGS with compile-time value
        // Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS can't be toggled at runtime, so simply
        // cache the first result we fetch and use that going forward. Do this to avoid unnecessary
        // binder calls which may happen on the critical path.
        if (sUseQsMediaPlayer == null) {
            int flag = Settings.Global.getInt(context.getContentResolver(),
                    Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, 1);
        return flag > 0;
            sUseQsMediaPlayer = flag > 0;
        }
        return sUseQsMediaPlayer;
    }

    /**
+13 −5
Original line number Diff line number Diff line
@@ -21,10 +21,13 @@ import android.provider.Settings
import android.testing.AndroidTestingRunner

import androidx.test.filters.SmallTest
import com.android.dx.mockito.inline.extended.ExtendedMockito

import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_USE_PEOPLE_FILTERING
import com.android.systemui.SysuiTestCase
import com.android.systemui.util.DeviceConfigProxyFake
import com.android.systemui.util.Utils
import com.android.systemui.util.mockito.any

import org.junit.After
import org.junit.Assert.assertFalse
@@ -32,28 +35,33 @@ import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.`when`
import org.mockito.MockitoSession
import org.mockito.quality.Strictness

@RunWith(AndroidTestingRunner::class)
@SmallTest
class NotificationSectionsFeatureManagerTest : SysuiTestCase() {
    var manager: NotificationSectionsFeatureManager? = null
    val proxyFake = DeviceConfigProxyFake()
    var originalQsMediaPlayer: Int = 0
    private lateinit var staticMockSession: MockitoSession

    @Before
    public fun setup() {
        manager = NotificationSectionsFeatureManager(proxyFake, mContext)
        manager!!.clearCache()
        originalQsMediaPlayer = Settings.Global.getInt(context.getContentResolver(),
                Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, 1)
        staticMockSession = ExtendedMockito.mockitoSession()
            .mockStatic<Utils>(Utils::class.java)
            .strictness(Strictness.LENIENT)
            .startMocking()
        `when`(Utils.useQsMediaPlayer(any())).thenReturn(false)
        Settings.Global.putInt(context.getContentResolver(),
                Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, 0)
    }

    @After
    public fun teardown() {
        Settings.Global.putInt(context.getContentResolver(),
                Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, originalQsMediaPlayer)
        staticMockSession.finishMocking()
    }

    @Test