Merge changes from topic "hub-mode-settings" into tm-qpr-dev

* changes:
  Add top-level Communal settings.
  Change screensaver ctrlr to base pref ctrlr.
This commit is contained in:
Darrell Shi
2022-12-21 08:03:49 +00:00
committed by Android (Google) Code Review
13 changed files with 164 additions and 21 deletions

View File

@@ -24,7 +24,6 @@ import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.BrightnessLevelPreferenceController;
import com.android.settings.display.CameraGesturePreferenceController;
import com.android.settings.display.LiftToWakePreferenceController;
import com.android.settings.display.ScreenSaverPreferenceController;
import com.android.settings.display.ShowOperatorNamePreferenceController;
import com.android.settings.display.TapToWakePreferenceController;
import com.android.settings.display.ThemePreferenceController;
@@ -76,7 +75,6 @@ public class DisplaySettings extends DashboardFragment {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new CameraGesturePreferenceController(context));
controllers.add(new LiftToWakePreferenceController(context));
controllers.add(new ScreenSaverPreferenceController(context));
controllers.add(new TapToWakePreferenceController(context));
controllers.add(new VrDisplayPreferenceController(context));
controllers.add(new ShowOperatorNamePreferenceController(context));

View File

@@ -0,0 +1,44 @@
/*
* Copyright (C) 2022 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.settings.communal;
import android.app.settings.SettingsEnums;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
/**
* Dashboard fragment for the top-level Communal settings.
*/
public class CommunalDashboardFragment extends DashboardFragment {
private static final String TAG = "CommunalFragment";
@Override
public int getMetricsCategory() {
return SettingsEnums.COMMUNAL_MODE_SETTINGS;
}
@Override
protected int getPreferenceScreenResId() {
return R.xml.communal_settings;
}
@Override
protected String getLogTag() {
return TAG;
}
}

View File

@@ -0,0 +1,37 @@
/*
* Copyright (C) 2022 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.settings.communal;
import android.content.Context;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
/**
* Controls the top-level Communal settings preference.
*/
public class CommunalPreferenceController extends BasePreferenceController {
public CommunalPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
}
@Override
public int getAvailabilityStatus() {
return mContext.getResources().getBoolean(R.bool.config_show_communal_settings)
? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
}

View File

@@ -23,6 +23,7 @@ import com.android.settings.LegalSettings;
import com.android.settings.accounts.AccountDashboardFragment;
import com.android.settings.accounts.AccountDetailDashboardFragment;
import com.android.settings.applications.AppDashboardFragment;
import com.android.settings.communal.CommunalDashboardFragment;
import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.development.DevelopmentSettingsDashboardFragment;
@@ -125,6 +126,8 @@ public class DashboardFragmentRegistry {
CategoryKey.CATEGORY_BATTERY_SAVER_SETTINGS);
PARENT_TO_CATEGORY_KEY_MAP.put(SmartBatterySettings.class.getName(),
CategoryKey.CATEGORY_SMART_BATTERY_SETTINGS);
PARENT_TO_CATEGORY_KEY_MAP.put(CommunalDashboardFragment.class.getName(),
CategoryKey.CATEGORY_COMMUNAL_SETTINGS);
CATEGORY_KEY_TO_PARENT_MAP = new ArrayMap<>(PARENT_TO_CATEGORY_KEY_MAP.size());

View File

@@ -16,47 +16,41 @@ package com.android.settings.display;
import android.content.Context;
import android.os.UserManager;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dream.DreamSettings;
import com.android.settingslib.core.AbstractPreferenceController;
public class ScreenSaverPreferenceController extends AbstractPreferenceController implements
public class ScreenSaverPreferenceController extends BasePreferenceController implements
PreferenceControllerMixin {
private static final String KEY_SCREEN_SAVER = "screensaver";
private final boolean mDreamsDisabledByAmbientModeSuppression;
public ScreenSaverPreferenceController(Context context) {
super(context);
public ScreenSaverPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
mDreamsDisabledByAmbientModeSuppression = context.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig);
}
@Override
public boolean isAvailable() {
public int getAvailabilityStatus() {
final boolean dreamsSupported = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsSupported);
final boolean dreamsOnlyEnabledForDockUser = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsOnlyEnabledForDockUser);
// TODO(b/257333623): Allow the Dock User to be non-SystemUser user in HSUM.
return dreamsSupported && (!dreamsOnlyEnabledForDockUser || isSystemUser());
return (dreamsSupported && (!dreamsOnlyEnabledForDockUser || isSystemUser()))
? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public String getPreferenceKey() {
return KEY_SCREEN_SAVER;
}
@Override
public void updateState(Preference preference) {
public CharSequence getSummary() {
if (mDreamsDisabledByAmbientModeSuppression
&& AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime(mContext)) {
preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
return mContext.getString(R.string.screensaver_settings_when_to_dream_bedtime);
} else {
preference.setSummary(DreamSettings.getSummaryTextWithDreamName(mContext));
return DreamSettings.getSummaryTextWithDreamName(mContext);
}
}