Merge "Add "Hub Mode" settings to mobile settings." into main

This commit is contained in:
William Leshner
2025-01-27 20:28:02 -08:00
committed by Android (Google) Code Review
6 changed files with 110 additions and 25 deletions

View File

@@ -21,6 +21,7 @@ import android.content.Context;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.flags.Flags;
/**
* Controls the top-level Communal settings preference.
@@ -39,7 +40,14 @@ public class CommunalPreferenceController extends BasePreferenceController {
* Returns whether communal preferences are available.
*/
public static boolean isAvailable(Context context) {
return context.getResources().getBoolean(R.bool.config_show_communal_settings)
&& Utils.canCurrentUserDream(context);
if (context.getResources().getBoolean(R.bool.config_show_communal_settings)) {
return Utils.canCurrentUserDream(context);
}
if (context.getResources().getBoolean(R.bool.config_show_communal_settings_mobile)) {
return Flags.enableHubModeSettingsOnMobile() && Utils.canCurrentUserDream(context);
}
return false;
}
}

View File

@@ -16,37 +16,44 @@
package com.android.settings.dream;
import android.annotation.StringRes;
import android.content.Context;
import androidx.preference.Preference;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.dream.DreamBackend;
public class WhenToDreamPreferenceController extends AbstractPreferenceController implements
public class WhenToDreamPreferenceController extends BasePreferenceController implements
PreferenceControllerMixin {
private static final String WHEN_TO_START = "when_to_start";
private static final String DEFAULT_PREF_KEY = "when_to_start";
private final DreamBackend mBackend;
private final boolean mDreamsDisabledByAmbientModeSuppression;
private final boolean mDreamsEnabledOnBattery;
WhenToDreamPreferenceController(Context context) {
this(context, context.getResources().getBoolean(
public WhenToDreamPreferenceController(Context context) {
this(context, DEFAULT_PREF_KEY);
}
public WhenToDreamPreferenceController(Context context, String preferenceKey) {
this(context, preferenceKey, context.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig),
context.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsEnabledOnBattery));
}
@VisibleForTesting
WhenToDreamPreferenceController(Context context,
WhenToDreamPreferenceController(
Context context,
String preferenceKey,
boolean dreamsDisabledByAmbientModeSuppression,
boolean dreamsEnabledOnBattery) {
super(context);
super(context, preferenceKey);
mBackend = DreamBackend.getInstance(context);
mDreamsDisabledByAmbientModeSuppression = dreamsDisabledByAmbientModeSuppression;
@@ -57,23 +64,27 @@ public class WhenToDreamPreferenceController extends AbstractPreferenceControlle
public void updateState(Preference preference) {
super.updateState(preference);
preference.setSummary(getSummaryResId());
}
@Override
public int getAvailabilityStatus() {
return AVAILABLE;
}
@Override
public CharSequence getSummary() {
return mContext.getString(getSummaryResId());
}
private @StringRes int getSummaryResId() {
if (mDreamsDisabledByAmbientModeSuppression
&& AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime(mContext)) {
preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
return R.string.screensaver_settings_when_to_dream_bedtime;
} else {
final int resId = DreamSettings.getDreamSettingDescriptionResId(
mBackend.getWhenToDreamSetting(), mDreamsEnabledOnBattery);
preference.setSummary(resId);
return resId;
}
}
@Override
public boolean isAvailable() {
return true;
}
@Override
public String getPreferenceKey() {
return WHEN_TO_START;
}
}