2/2 Remove GlobalSetting class

- Replace usages of GlobalSetting with SettingObserver

 - Change parameters to SettingObserver from SecureSetting to
   SettingsProxy

 - Update variable names SettingObserver

Test: com.android.systemui.statusbar.policy.ZenModeControllerImplTest
Test: com.android.systemui.qs.SettingObserverTest
Bug: 201567807
Change-Id: If5cb74cc10ed43777b5cb40c705b43321e7fa0e9
This commit is contained in:
Peter Kalauskas
2021-11-17 13:47:59 -08:00
parent ec34667c54
commit fa0237c180
5 changed files with 40 additions and 88 deletions

View File

@@ -1,61 +0,0 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.systemui.qs;
import android.content.Context;
import android.database.ContentObserver;
import android.os.Handler;
import android.provider.Settings.Global;
import com.android.systemui.statusbar.policy.Listenable;
/** Helper for managing a global setting. **/
public abstract class GlobalSetting extends ContentObserver implements Listenable {
private final Context mContext;
private final String mSettingName;
protected abstract void handleValueChanged(int value);
public GlobalSetting(Context context, Handler handler, String settingName) {
super(handler);
mContext = context;
mSettingName = settingName;
}
public int getValue() {
return Global.getInt(mContext.getContentResolver(), mSettingName, 0);
}
public void setValue(int value) {
Global.putInt(mContext.getContentResolver(), mSettingName, value);
}
@Override
public void setListening(boolean listening) {
if (listening) {
mContext.getContentResolver().registerContentObserver(
Global.getUriFor(mSettingName), false, this);
} else {
mContext.getContentResolver().unregisterContentObserver(this);
}
}
@Override
public void onChange(boolean selfChange) {
handleValueChanged(getValue());
}
}

View File

@@ -21,11 +21,18 @@ import android.database.ContentObserver;
import android.os.Handler;
import com.android.systemui.statusbar.policy.Listenable;
import com.android.systemui.util.settings.GlobalSettings;
import com.android.systemui.util.settings.SecureSettings;
import com.android.systemui.util.settings.SettingsProxy;
import com.android.systemui.util.settings.SystemSettings;
/** Helper for managing a secure setting. **/
/**
* Helper for managing secure, global, and system settings through use of {@link SettingsProxy},
* which is the common superclass of {@link SecureSettings}, {@link GlobalSettings}, and
* {@link SystemSettings}.
*/
public abstract class SettingObserver extends ContentObserver implements Listenable {
private final SecureSettings mSecureSettings;
private final SettingsProxy mSettingsProxy;
private final String mSettingName;
private final int mDefaultValue;
@@ -35,19 +42,19 @@ public abstract class SettingObserver extends ContentObserver implements Listena
protected abstract void handleValueChanged(int value, boolean observedChange);
public SettingObserver(SecureSettings secureSettings, Handler handler, String settingName,
public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName,
int userId) {
this(secureSettings, handler, settingName, userId, 0);
this(settingsProxy, handler, settingName, userId, 0);
}
public SettingObserver(SecureSettings secureSetting, Handler handler, String settingName) {
this(secureSetting, handler, settingName, ActivityManager.getCurrentUser());
public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName) {
this(settingsProxy, handler, settingName, ActivityManager.getCurrentUser());
}
public SettingObserver(SecureSettings secureSettings, Handler handler, String settingName,
public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName,
int userId, int defaultValue) {
super(handler);
mSecureSettings = secureSettings;
mSettingsProxy = settingsProxy;
mSettingName = settingName;
mObservedValue = mDefaultValue = defaultValue;
mUserId = userId;
@@ -63,11 +70,11 @@ public abstract class SettingObserver extends ContentObserver implements Listena
* @param value The new value for the setting.
*/
public void setValue(int value) {
mSecureSettings.putIntForUser(mSettingName, value, mUserId);
mSettingsProxy.putIntForUser(mSettingName, value, mUserId);
}
private int getValueFromProvider() {
return mSecureSettings.getIntForUser(mSettingName, mDefaultValue, mUserId);
return mSettingsProxy.getIntForUser(mSettingName, mDefaultValue, mUserId);
}
@Override
@@ -76,10 +83,10 @@ public abstract class SettingObserver extends ContentObserver implements Listena
mListening = listening;
if (listening) {
mObservedValue = getValueFromProvider();
mSecureSettings.registerContentObserverForUser(
mSecureSettings.getUriFor(mSettingName), false, this, mUserId);
mSettingsProxy.registerContentObserverForUser(
mSettingsProxy.getUriFor(mSettingName), false, this, mUserId);
} else {
mSecureSettings.unregisterContentObserver(this);
mSettingsProxy.unregisterContentObserver(this);
mObservedValue = mDefaultValue;
}
}

View File

@@ -44,10 +44,11 @@ import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.GlobalSetting;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.SettingObserver;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.util.settings.GlobalSettings;
import javax.inject.Inject;
@@ -56,7 +57,7 @@ import dagger.Lazy;
/** Quick settings tile: Airplane mode **/
public class AirplaneModeTile extends QSTileImpl<BooleanState> {
private final Icon mIcon = ResourceIcon.get(com.android.internal.R.drawable.ic_qs_airplane);
private final GlobalSetting mSetting;
private final SettingObserver mSetting;
private final BroadcastDispatcher mBroadcastDispatcher;
private final Lazy<ConnectivityManager> mLazyConnectivityManager;
@@ -73,16 +74,17 @@ public class AirplaneModeTile extends QSTileImpl<BooleanState> {
ActivityStarter activityStarter,
QSLogger qsLogger,
BroadcastDispatcher broadcastDispatcher,
Lazy<ConnectivityManager> lazyConnectivityManager
Lazy<ConnectivityManager> lazyConnectivityManager,
GlobalSettings globalSettings
) {
super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger,
statusBarStateController, activityStarter, qsLogger);
mBroadcastDispatcher = broadcastDispatcher;
mLazyConnectivityManager = lazyConnectivityManager;
mSetting = new GlobalSetting(mContext, mHandler, Global.AIRPLANE_MODE_ON) {
mSetting = new SettingObserver(globalSettings, mHandler, Global.AIRPLANE_MODE_ON) {
@Override
protected void handleValueChanged(int value) {
protected void handleValueChanged(int value, boolean observedChange) {
// mHandler is the background handler so calling this is OK
handleRefreshState(value);
}

View File

@@ -45,9 +45,10 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.qs.GlobalSetting;
import com.android.systemui.qs.SettingObserver;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.util.Utils;
import com.android.systemui.util.settings.GlobalSettings;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -66,8 +67,8 @@ public class ZenModeControllerImpl extends CurrentUserTracker
private final ArrayList<Callback> mCallbacks = new ArrayList<>();
private final Object mCallbacksLock = new Object();
private final Context mContext;
private final GlobalSetting mModeSetting;
private final GlobalSetting mConfigSetting;
private final SettingObserver mModeSetting;
private final SettingObserver mConfigSetting;
private final NotificationManager mNoMan;
private final AlarmManager mAlarmManager;
private final SetupObserver mSetupObserver;
@@ -85,19 +86,20 @@ public class ZenModeControllerImpl extends CurrentUserTracker
Context context,
@Main Handler handler,
BroadcastDispatcher broadcastDispatcher,
DumpManager dumpManager) {
DumpManager dumpManager,
GlobalSettings globalSettings) {
super(broadcastDispatcher);
mContext = context;
mModeSetting = new GlobalSetting(mContext, handler, Global.ZEN_MODE) {
mModeSetting = new SettingObserver(globalSettings, handler, Global.ZEN_MODE) {
@Override
protected void handleValueChanged(int value) {
protected void handleValueChanged(int value, boolean observedChange) {
updateZenMode(value);
fireZenChanged(value);
}
};
mConfigSetting = new GlobalSetting(mContext, handler, Global.ZEN_MODE_CONFIG_ETAG) {
mConfigSetting = new SettingObserver(globalSettings, handler, Global.ZEN_MODE_CONFIG_ETAG) {
@Override
protected void handleValueChanged(int value) {
protected void handleValueChanged(int value, boolean observedChange) {
updateZenModeConfig();
}
};

View File

@@ -36,6 +36,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.policy.ZenModeController.Callback;
import com.android.systemui.util.settings.FakeSettings;
import org.junit.Before;
import org.junit.Test;
@@ -70,7 +71,8 @@ public class ZenModeControllerImplTest extends SysuiTestCase {
mContext,
Handler.createAsync(Looper.myLooper()),
mBroadcastDispatcher,
mDumpManager);
mDumpManager,
new FakeSettings());
}
@Test