refactor(brightness suw): decouple auto brightness initialization logic for setup flow

The AccessibilitySettingsForSetupWizard class should not be responsible for managing the initial
logic of controllers, such as determining which controllers need to be dynamically added or updated
using setInSetupWizard APIs. This logic should be handled directly by the controllers themselves.

Bug: 311093618
Flag: EXEMPT bugfix
Test: atest AccessibilitySettingsForSetupWizardTest
            AutoBrightnessPreferenceControllerForSetupWizardTest
            AutoBrightnessPreferenceControllerTest
            BrightnessLevelPreferenceControllerForSetupWizardTest
            BrightnessLevelPreferenceControllerTest

Change-Id: I6065a10e72d002981c0f514543e6933d79c2aa1b
This commit is contained in:
Menghan Li
2024-09-23 09:24:38 +00:00
parent aa7114cf3e
commit e0f734526d
11 changed files with 289 additions and 105 deletions

View File

@@ -20,7 +20,6 @@ import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX;
import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MIN;
import static com.android.settingslib.display.BrightnessUtils.convertLinearToGammaFloat;
import android.annotation.Nullable;
import android.app.ActivityOptions;
import android.content.ContentResolver;
import android.content.Context;
@@ -37,12 +36,13 @@ import android.os.UserManager;
import android.provider.Settings.System;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.accessibility.Flags;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.SettingsBaseActivity;
@@ -54,18 +54,17 @@ import com.android.settingslib.transition.SettingsTransitionHelper;
import java.text.NumberFormat;
/**
* The top-level preference controller that updates the adaptive brightness level.
*/
public class BrightnessLevelPreferenceController extends BasePreferenceController implements
PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {
private static final String TAG = "BrightnessPrefCtrl";
private static final Uri BRIGHTNESS_ADJ_URI;
private final ContentResolver mContentResolver;
private final Handler mHandler = new Handler(Looper.getMainLooper());
private final DisplayManager mDisplayManager;
@Nullable
private Preference mPreference;
private boolean mInSetupWizard;
static {
BRIGHTNESS_ADJ_URI = System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ);
@@ -94,11 +93,13 @@ public class BrightnessLevelPreferenceController extends BasePreferenceControlle
}
};
public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle) {
public BrightnessLevelPreferenceController(@NonNull Context context,
@Nullable Lifecycle lifecycle) {
this(context, context.getString(R.string.preference_key_brightness_level), lifecycle);
}
private BrightnessLevelPreferenceController(Context context, String key, Lifecycle lifecycle) {
private BrightnessLevelPreferenceController(@NonNull Context context, @NonNull String key,
@Nullable Lifecycle lifecycle) {
super(context, key);
mDisplayManager = context.getSystemService(DisplayManager.class);
@@ -108,15 +109,8 @@ public class BrightnessLevelPreferenceController extends BasePreferenceControlle
mContentResolver = mContext.getContentResolver();
}
public void setInSetupWizard(boolean inSetupWizard) {
mInSetupWizard = inSetupWizard;
}
@Override
public int getAvailabilityStatus() {
if (mInSetupWizard && !Flags.addBrightnessSettingsInSuw()) {
return CONDITIONALLY_UNAVAILABLE;
}
return AVAILABLE;
}