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

Commit f9d52fc5 authored by Riley Jones's avatar Riley Jones Committed by Android (Google) Code Review
Browse files

Merge "Using SecureSettings to monitor settings on worker thread" into main

parents e2b0e7f9 4bddaa76
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