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

Commit 4bddaa76 authored by Riley Jones's avatar Riley Jones
Browse files

Using SecureSettings to monitor settings on worker thread

Adjusting the SecureSettingsContentObserver to comply with the guidelines at go/register-observer-bg-migration.

Bug: 362737091
Test: atest com.android.systemui.accessibility
Flag: EXEMPT internal cleanup
Change-Id: Id6b24aa555fa4a25ec8f47a8b4d30301b52966cc
parent 02aebb42
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.util.Log;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -68,8 +69,9 @@ public class AccessibilityButtonModeObserver extends
    }

    @Inject
    public AccessibilityButtonModeObserver(Context context, UserTracker userTracker) {
        super(context, userTracker, Settings.Secure.ACCESSIBILITY_BUTTON_MODE);
    public AccessibilityButtonModeObserver(
            Context context, UserTracker userTracker, SecureSettings secureSettings) {
        super(context, userTracker, secureSettings, Settings.Secure.ACCESSIBILITY_BUTTON_MODE);
    }

    @Override
+4 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import androidx.annotation.Nullable;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;

import javax.inject.Inject;

@@ -49,8 +50,9 @@ public class AccessibilityButtonTargetsObserver extends
    }

    @Inject
    public AccessibilityButtonTargetsObserver(Context context, UserTracker userTracker) {
        super(context, userTracker, Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS);
    public AccessibilityButtonTargetsObserver(
            Context context, UserTracker userTracker, SecureSettings secureSettings) {
        super(context, userTracker, secureSettings, Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS);
    }

    @Override
+4 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import androidx.annotation.Nullable;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;

import javax.inject.Inject;

@@ -49,8 +50,9 @@ public class AccessibilityGestureTargetsObserver extends
    }

    @Inject
    public AccessibilityGestureTargetsObserver(Context context, UserTracker userTracker) {
        super(context, userTracker, Settings.Secure.ACCESSIBILITY_GESTURE_TARGETS);
    public AccessibilityGestureTargetsObserver(
            Context context, UserTracker userTracker, SecureSettings secureSettings) {
        super(context, userTracker, secureSettings, Settings.Secure.ACCESSIBILITY_GESTURE_TARGETS);
    }

    @Override
+7 −5
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import androidx.annotation.NonNull;

import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;

import java.util.ArrayList;
import java.util.List;
@@ -48,6 +49,7 @@ public abstract class SecureSettingsContentObserver<T> {
    private final UserTracker mUserTracker;
    @VisibleForTesting
    final ContentObserver mContentObserver;
    private final SecureSettings mSecureSettings;

    private final String mKey;

@@ -55,7 +57,7 @@ public abstract class SecureSettingsContentObserver<T> {
    final List<T> mListeners = new ArrayList<>();

    protected SecureSettingsContentObserver(Context context, UserTracker userTracker,
            String secureSettingsKey) {
            SecureSettings secureSettings, String secureSettingsKey) {
        mKey = secureSettingsKey;
        mContentResolver = context.getContentResolver();
        mUserTracker = userTracker;
@@ -65,6 +67,7 @@ public abstract class SecureSettingsContentObserver<T> {
                updateValueChanged();
            }
        };
        mSecureSettings = secureSettings;
    }

    /**
@@ -80,9 +83,8 @@ public abstract class SecureSettingsContentObserver<T> {
        }

        if (mListeners.size() == 1) {
            mContentResolver.registerContentObserver(
                    Settings.Secure.getUriFor(mKey), /* notifyForDescendants= */
                    false, mContentObserver, UserHandle.USER_ALL);
            mSecureSettings.registerContentObserverForUserAsync(Settings.Secure.getUriFor(mKey),
                    /* notifyForDescendants= */ false, mContentObserver, UserHandle.USER_ALL);
        }
    }

@@ -97,7 +99,7 @@ public abstract class SecureSettingsContentObserver<T> {
        mListeners.remove(listener);

        if (mListeners.isEmpty()) {
            mContentResolver.unregisterContentObserver(mContentObserver);
            mSecureSettings.unregisterContentObserverAsync(mContentObserver);
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -32,12 +32,14 @@ import androidx.test.filters.SmallTest;

import com.android.systemui.SysuiTestCase;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;

@@ -66,7 +68,7 @@ public class AccessibilityButtonModeObserverTest extends SysuiTestCase {
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR, MY_USER_ID);
        mAccessibilityButtonModeObserver = new AccessibilityButtonModeObserver(mContext,
                mUserTracker);
                mUserTracker, Mockito.mock(SecureSettings.class));
    }

    @Test
Loading