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

Commit cb88879c authored by Matt Pape's avatar Matt Pape
Browse files

Update systemui components to DeviceConfig.onPropertiesChangedListener

Remove references to @removed onPropertyChangedListener so we can delete
the code.

Test: atest PrivacyItemControllerTest
Bug: 128902955

Change-Id: I0ac66111c10c96ae2ae0d3d2ba85d19abe696ef9
parent 121cd670
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
@@ -95,12 +95,14 @@ class PrivacyItemController @Inject constructor(

    private var indicatorsAvailable = isPermissionsHubEnabled()
    @VisibleForTesting
    internal val devicePropertyChangedListener =
            object : DeviceConfig.OnPropertyChangedListener {
        override fun onPropertyChanged(namespace: String, name: String, value: String?) {
            if (DeviceConfig.NAMESPACE_PRIVACY.equals(namespace) &&
                    SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED.equals(name)) {
                indicatorsAvailable = java.lang.Boolean.parseBoolean(value)
    internal val devicePropertiesChangedListener =
            object : DeviceConfig.OnPropertiesChangedListener {
        override fun onPropertiesChanged(properties: DeviceConfig.Properties) {
            if (DeviceConfig.NAMESPACE_PRIVACY.equals(properties.getNamespace()) &&
                    properties.getKeyset().contains(
                    SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED)) {
                indicatorsAvailable = properties.getBoolean(
                        SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED, false)
                messageHandler.removeMessages(MSG_UPDATE_LISTENING_STATE)
                messageHandler.sendEmptyMessage(MSG_UPDATE_LISTENING_STATE)
            }
@@ -130,8 +132,10 @@ class PrivacyItemController @Inject constructor(
        }

    init {
        DeviceConfig.addOnPropertyChangedListener(
                DeviceConfig.NAMESPACE_PRIVACY, context.mainExecutor, devicePropertyChangedListener)
        DeviceConfig.addOnPropertiesChangedListener(
                DeviceConfig.NAMESPACE_PRIVACY,
                context.mainExecutor,
                devicePropertiesChangedListener)
    }

    private fun unregisterReceiver() {
+10 −9
Original line number Diff line number Diff line
@@ -158,14 +158,15 @@ public class QuickStatusBarHeader extends RelativeLayout implements
    private boolean mHasTopCutout = false;
    private boolean mPrivacyChipLogged = false;

    private final DeviceConfig.OnPropertyChangedListener mPropertyListener =
            new DeviceConfig.OnPropertyChangedListener() {
    private final DeviceConfig.OnPropertiesChangedListener mPropertiesListener =
            new DeviceConfig.OnPropertiesChangedListener() {
                @Override
                public void onPropertyChanged(String namespace, String name, String value) {
                    if (DeviceConfig.NAMESPACE_PRIVACY.equals(namespace)
                            && SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED.equals(
                            name)) {
                        mPermissionsHubEnabled = Boolean.valueOf(value);
                public void onPropertiesChanged(DeviceConfig.Properties properties) {
                    if (DeviceConfig.NAMESPACE_PRIVACY.equals(properties.getNamespace())
                            && properties.getKeyset()
                            .contains(SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED)) {
                        mPermissionsHubEnabled = properties.getBoolean(
                                SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED, false);
                        StatusIconContainer iconContainer = findViewById(R.id.statusIcons);
                        iconContainer.setIgnoredSlots(getIgnoredIconSlots());
                    }
@@ -257,8 +258,8 @@ public class QuickStatusBarHeader extends RelativeLayout implements

        mPermissionsHubEnabled = PrivacyItemControllerKt.isPermissionsHubEnabled();
        // Change the ignored slots when DeviceConfig flag changes
        DeviceConfig.addOnPropertyChangedListener(DeviceConfig.NAMESPACE_PRIVACY,
                mContext.getMainExecutor(), mPropertyListener);
        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_PRIVACY,
                mContext.getMainExecutor(), mPropertiesListener);

    }

+23 −2
Original line number Diff line number Diff line
@@ -48,12 +48,15 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentMatchers.any
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.anyList
import org.mockito.ArgumentMatchers.anyString
import org.mockito.ArgumentMatchers.eq
import org.mockito.Captor
import org.mockito.Mock
import org.mockito.Mockito.atLeastOnce
import org.mockito.Mockito.doAnswer
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
@@ -281,13 +284,31 @@ class PrivacyItemControllerTest : SysuiTestCase() {

    @Test
    fun testNotListeningWhenIndicatorsDisabled() {
        privacyItemController.devicePropertyChangedListener.onPropertyChanged(
        val properties = getProperties(
                DeviceConfig.NAMESPACE_PRIVACY,
                SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED,
                "false")
                false)
        privacyItemController.devicePropertiesChangedListener.onPropertiesChanged(properties)
        privacyItemController.addCallback(callback)
        testableLooper.processAllMessages()
        verify(appOpsController, never()).addCallback(eq(PrivacyItemController.OPS),
                any(AppOpsController.Callback::class.java))
    }

    private fun getProperties(namespace: String, name: String, value: Boolean):
            DeviceConfig.Properties {
        val properties = mock<DeviceConfig.Properties>(DeviceConfig.Properties::class.java)
        doReturn(namespace).`when`(properties).getNamespace()
        doReturn(setOf(name)).`when`(properties).getKeyset()
        doAnswer {
            val key: String = it.getArgument(0)
            val defaultValue: Boolean = it.getArgument(1)
            if (name.equals(key, ignoreCase = true)) {
                value
            } else {
                defaultValue
            }
        }.`when`(properties).getBoolean(anyString(), anyBoolean())
        return properties
    }
}
 No newline at end of file