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

Commit 0f292589 authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Remove Dependency.get from CarDevProvCont."

parents 604af18a 8525fa39
Loading
Loading
Loading
Loading
+33 −31
Original line number Diff line number Diff line
@@ -16,20 +16,19 @@

package com.android.systemui.car;

import android.annotation.NonNull;
import android.app.ActivityManager;
import android.car.settings.CarSettings;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.provider.Settings;

import com.android.systemui.Dependency;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
import com.android.systemui.util.settings.GlobalSettings;
import com.android.systemui.util.settings.SecureSettings;

import javax.inject.Inject;

@@ -40,30 +39,33 @@ import javax.inject.Inject;
@SysUISingleton
public class CarDeviceProvisionedControllerImpl extends DeviceProvisionedControllerImpl implements
        CarDeviceProvisionedController {
    private static final Uri USER_SETUP_IN_PROGRESS_URI = Settings.Secure.getUriFor(
            CarSettings.Secure.KEY_SETUP_WIZARD_IN_PROGRESS);
    private final ContentObserver mCarSettingsObserver = new ContentObserver(
            Dependency.get(Dependency.MAIN_HANDLER)) {
    private final Uri mUserSetupInProgressUri;
    private final ContentObserver mCarSettingsObserver;
    private final Handler mMainHandler;
    private final SecureSettings mSecureSettings;

    @Inject
    public CarDeviceProvisionedControllerImpl(@Main Handler mainHandler,
            BroadcastDispatcher broadcastDispatcher, GlobalSettings globalSetting,
            SecureSettings secureSettings) {
        super(mainHandler, broadcastDispatcher, globalSetting, secureSettings);
        mMainHandler = mainHandler;
        mSecureSettings = secureSettings;
        mUserSetupInProgressUri = mSecureSettings.getUriFor(
                CarSettings.Secure.KEY_SETUP_WIZARD_IN_PROGRESS);
        mCarSettingsObserver = new ContentObserver(mMainHandler) {
            @Override
            public void onChange(boolean selfChange, Uri uri, int flags) {
            if (USER_SETUP_IN_PROGRESS_URI.equals(uri)) {
                if (mUserSetupInProgressUri.equals(uri)) {
                    notifyUserSetupInProgressChanged();
                }
            }
        };
    private final ContentResolver mContentResolver;

    @Inject
    public CarDeviceProvisionedControllerImpl(Context context, @Main Handler mainHandler,
            BroadcastDispatcher broadcastDispatcher) {
        super(context, mainHandler, broadcastDispatcher);
        mContentResolver = context.getContentResolver();
    }

    @Override
    public boolean isUserSetupInProgress(int user) {
        return Settings.Secure.getIntForUser(mContentResolver,
        return mSecureSettings.getIntForUser(
                CarSettings.Secure.KEY_SETUP_WIZARD_IN_PROGRESS, /* def= */ 0, user) != 0;
    }

@@ -73,7 +75,7 @@ public class CarDeviceProvisionedControllerImpl extends DeviceProvisionedControl
    }

    @Override
    public void addCallback(DeviceProvisionedListener listener) {
    public void addCallback(@NonNull DeviceProvisionedListener listener) {
        super.addCallback(listener);
        if (listener instanceof CarDeviceProvisionedListener) {
            ((CarDeviceProvisionedListener) listener).onUserSetupInProgressChanged();
@@ -82,9 +84,9 @@ public class CarDeviceProvisionedControllerImpl extends DeviceProvisionedControl

    @Override
    protected void startListening(int user) {
        mContentResolver.registerContentObserver(
                USER_SETUP_IN_PROGRESS_URI, /* notifyForDescendants= */ true, mCarSettingsObserver,
                user);
        mSecureSettings.registerContentObserverForUser(
                mUserSetupInProgressUri, /* notifyForDescendants= */ true,
                mCarSettingsObserver, user);
        // The SUW Flag observer is registered before super.startListening() so that the observer is
        // in place before DeviceProvisionedController starts to track user switches which avoids
        // an edge case where our observer gets registered twice.
@@ -94,16 +96,16 @@ public class CarDeviceProvisionedControllerImpl extends DeviceProvisionedControl
    @Override
    protected void stopListening() {
        super.stopListening();
        mContentResolver.unregisterContentObserver(mCarSettingsObserver);
        mSecureSettings.unregisterContentObserver(mCarSettingsObserver);
    }

    @Override
    public void onUserSwitched(int newUserId) {
        super.onUserSwitched(newUserId);
        mContentResolver.unregisterContentObserver(mCarSettingsObserver);
        mContentResolver.registerContentObserver(
                USER_SETUP_IN_PROGRESS_URI, /* notifyForDescendants= */ true, mCarSettingsObserver,
                newUserId);
        mSecureSettings.unregisterContentObserver(mCarSettingsObserver);
        mSecureSettings.registerContentObserverForUser(
                mUserSetupInProgressUri, /* notifyForDescendants= */ true,
                mCarSettingsObserver, newUserId);
    }

    private void notifyUserSetupInProgressChanged() {
+19 −19
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@
package com.android.systemui.statusbar.policy;

import android.app.ActivityManager;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
@@ -30,6 +28,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.util.settings.GlobalSettings;
import com.android.systemui.util.settings.SecureSettings;

import java.util.ArrayList;

@@ -43,8 +43,8 @@ public class DeviceProvisionedControllerImpl extends CurrentUserTracker implemen

    protected static final String TAG = DeviceProvisionedControllerImpl.class.getSimpleName();
    protected final ArrayList<DeviceProvisionedListener> mListeners = new ArrayList<>();
    private final ContentResolver mContentResolver;
    private final Context mContext;
    private final GlobalSettings mGlobalSettings;
    private final SecureSettings mSecureSettings;
    private final Uri mDeviceProvisionedUri;
    private final Uri mUserSetupUri;
    protected final ContentObserver mSettingsObserver;
@@ -52,13 +52,14 @@ public class DeviceProvisionedControllerImpl extends CurrentUserTracker implemen
    /**
     */
    @Inject
    public DeviceProvisionedControllerImpl(Context context, @Main Handler mainHandler,
            BroadcastDispatcher broadcastDispatcher) {
    public DeviceProvisionedControllerImpl(@Main Handler mainHandler,
            BroadcastDispatcher broadcastDispatcher, GlobalSettings globalSettings,
            SecureSettings secureSettings) {
        super(broadcastDispatcher);
        mContext = context;
        mContentResolver = context.getContentResolver();
        mDeviceProvisionedUri = Global.getUriFor(Global.DEVICE_PROVISIONED);
        mUserSetupUri = Secure.getUriFor(Secure.USER_SETUP_COMPLETE);
        mGlobalSettings = globalSettings;
        mSecureSettings = secureSettings;
        mDeviceProvisionedUri = mGlobalSettings.getUriFor(Global.DEVICE_PROVISIONED);
        mUserSetupUri = mSecureSettings.getUriFor(Secure.USER_SETUP_COMPLETE);
        mSettingsObserver = new ContentObserver(mainHandler) {
            @Override
            public void onChange(boolean selfChange, Uri uri, int flags) {
@@ -74,13 +75,12 @@ public class DeviceProvisionedControllerImpl extends CurrentUserTracker implemen

    @Override
    public boolean isDeviceProvisioned() {
        return Global.getInt(mContentResolver, Global.DEVICE_PROVISIONED, 0) != 0;
        return mGlobalSettings.getInt(Global.DEVICE_PROVISIONED, 0) != 0;
    }

    @Override
    public boolean isUserSetup(int currentUser) {
        return Secure.getIntForUser(mContentResolver, Secure.USER_SETUP_COMPLETE, 0, currentUser)
                != 0;
        return mSecureSettings.getIntForUser(Secure.USER_SETUP_COMPLETE, 0, currentUser) != 0;
    }

    @Override
@@ -107,24 +107,24 @@ public class DeviceProvisionedControllerImpl extends CurrentUserTracker implemen
    }

    protected void startListening(int user) {
        mContentResolver.registerContentObserver(mDeviceProvisionedUri, true,
        mGlobalSettings.registerContentObserverForUser(mDeviceProvisionedUri, true,
                mSettingsObserver, 0);
        mContentResolver.registerContentObserver(mUserSetupUri, true,
        mSecureSettings.registerContentObserverForUser(mUserSetupUri, true,
                mSettingsObserver, user);
        startTracking();
    }

    protected void stopListening() {
        stopTracking();
        mContentResolver.unregisterContentObserver(mSettingsObserver);
        mGlobalSettings.unregisterContentObserver(mSettingsObserver);
    }

    @Override
    public void onUserSwitched(int newUserId) {
        mContentResolver.unregisterContentObserver(mSettingsObserver);
        mContentResolver.registerContentObserver(mDeviceProvisionedUri, true,
        mGlobalSettings.unregisterContentObserver(mSettingsObserver);
        mGlobalSettings.registerContentObserverForUser(mDeviceProvisionedUri, true,
                mSettingsObserver, 0);
        mContentResolver.registerContentObserver(mUserSetupUri, true,
        mSecureSettings.registerContentObserverForUser(mUserSetupUri, true,
                mSettingsObserver, newUserId);
        notifyUserChanged();
    }
+64 −2
Original line number Diff line number Diff line
@@ -67,7 +67,35 @@ public interface SettingsProxy {
     * Implicitly calls {@link #getUriFor(String)} on the passed in name.
     */
    default void registerContentObserver(String name, ContentObserver settingsObserver) {
        registerContentObserverForUser(name, settingsObserver, getUserId());
        registerContentObserver(getUriFor(name), settingsObserver);
    }

    /**
     * Convenience wrapper around
     * {@link ContentResolver#registerContentObserver(Uri, boolean, ContentObserver)}.'
     */
    default void registerContentObserver(Uri uri, ContentObserver settingsObserver) {
        registerContentObserverForUser(uri, settingsObserver, getUserId());
    }

    /**
     * Convenience wrapper around
     * {@link ContentResolver#registerContentObserver(Uri, boolean, ContentObserver)}.'
     *
     * Implicitly calls {@link #getUriFor(String)} on the passed in name.
     */
    default void registerContentObserver(String name, boolean notifyForDescendents,
            ContentObserver settingsObserver) {
        registerContentObserver(getUriFor(name), notifyForDescendents, settingsObserver);
    }

    /**
     * Convenience wrapper around
     * {@link ContentResolver#registerContentObserver(Uri, boolean, ContentObserver)}.'
     */
    default void registerContentObserver(Uri uri, boolean notifyForDescendents,
            ContentObserver settingsObserver) {
        registerContentObserverForUser(uri, notifyForDescendents, settingsObserver, getUserId());
    }

    /**
@@ -78,8 +106,42 @@ public interface SettingsProxy {
     */
    default void registerContentObserverForUser(
            String name, ContentObserver settingsObserver, int userHandle) {
        registerContentObserverForUser(
                getUriFor(name), settingsObserver, userHandle);
    }

    /**
     * Convenience wrapper around
     * {@link ContentResolver#registerContentObserver(Uri, boolean, ContentObserver, int)}
     */
    default void registerContentObserverForUser(
            Uri uri, ContentObserver settingsObserver, int userHandle) {
        registerContentObserverForUser(
                uri, false, settingsObserver, userHandle);
    }

    /**
     * Convenience wrapper around
     * {@link ContentResolver#registerContentObserver(Uri, boolean, ContentObserver, int)}
     *
     * Implicitly calls {@link #getUriFor(String)} on the passed in name.
     */
    default void registerContentObserverForUser(
            String name, boolean notifyForDescendents, ContentObserver settingsObserver,
            int userHandle) {
        registerContentObserverForUser(
                getUriFor(name), notifyForDescendents, settingsObserver, userHandle);
    }

    /**
     * Convenience wrapper around
     * {@link ContentResolver#registerContentObserver(Uri, boolean, ContentObserver, int)}
     */
    default void registerContentObserverForUser(
            Uri uri, boolean notifyForDescendents, ContentObserver settingsObserver,
            int userHandle) {
        getContentResolver().registerContentObserver(
                getUriFor(name), false, settingsObserver, userHandle);
                uri, notifyForDescendents, settingsObserver, userHandle);
    }

    /** See {@link ContentResolver#unregisterContentObserver(ContentObserver)}. */