Merge "Hide "additional info" when active dream does not support." into tm-qpr-dev am: 6b6c68fd94
am: d8f61dc2a3
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/21452841 Change-Id: I097729dd0420387e67d8aa7eba9642c4834330d3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -29,6 +29,8 @@ import com.android.settingslib.dream.DreamBackend;
|
||||
public class DreamComplicationPreferenceController extends TogglePreferenceController {
|
||||
private final DreamBackend mBackend;
|
||||
|
||||
public static final String PREF_KEY = "dream_complications_toggle";
|
||||
|
||||
public DreamComplicationPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mBackend = DreamBackend.getInstance(context);
|
||||
|
@@ -33,6 +33,7 @@ import com.android.settingslib.dream.DreamBackend;
|
||||
import com.android.settingslib.dream.DreamBackend.DreamInfo;
|
||||
import com.android.settingslib.widget.LayoutPreference;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -40,6 +41,7 @@ import java.util.stream.Collectors;
|
||||
* Controller for the dream picker where the user can select a screensaver.
|
||||
*/
|
||||
public class DreamPickerController extends BasePreferenceController {
|
||||
public static final String PREF_KEY = "dream_picker";
|
||||
|
||||
private final DreamBackend mBackend;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
@@ -48,12 +50,14 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
private DreamInfo mActiveDream;
|
||||
private DreamAdapter mAdapter;
|
||||
|
||||
public DreamPickerController(Context context, String key) {
|
||||
this(context, key, DreamBackend.getInstance(context));
|
||||
private final HashSet<Callback> mCallbacks = new HashSet<>();
|
||||
|
||||
public DreamPickerController(Context context) {
|
||||
this(context, DreamBackend.getInstance(context));
|
||||
}
|
||||
|
||||
public DreamPickerController(Context context, String key, DreamBackend backend) {
|
||||
super(context, key);
|
||||
public DreamPickerController(Context context, DreamBackend backend) {
|
||||
super(context, PREF_KEY);
|
||||
mBackend = backend;
|
||||
mDreamInfos = mBackend.getDreamInfos();
|
||||
mActiveDream = getActiveDreamInfo(mDreamInfos);
|
||||
@@ -96,6 +100,11 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public DreamInfo getActiveDreamInfo() {
|
||||
return mActiveDream;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static DreamInfo getActiveDreamInfo(List<DreamInfo> dreamInfos) {
|
||||
return dreamInfos
|
||||
@@ -105,6 +114,19 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
void addCallback(Callback callback) {
|
||||
mCallbacks.add(callback);
|
||||
}
|
||||
|
||||
void removeCallback(Callback callback) {
|
||||
mCallbacks.remove(callback);
|
||||
}
|
||||
|
||||
interface Callback {
|
||||
// Triggered when the selected dream changes.
|
||||
void onActiveDreamChanged();
|
||||
}
|
||||
|
||||
private class DreamItem implements IDreamItem {
|
||||
DreamInfo mDreamInfo;
|
||||
|
||||
@@ -131,6 +153,7 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
public void onItemClicked() {
|
||||
mActiveDream = mDreamInfo;
|
||||
mBackend.setActiveDream(mDreamInfo.componentName);
|
||||
mCallbacks.forEach(Callback::onActiveDreamChanged);
|
||||
mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_DREAM_SELECT_TYPE, SettingsEnums.DREAM,
|
||||
mDreamInfo.componentName.flattenToString(), 1);
|
||||
|
@@ -60,8 +60,14 @@ public class DreamSettings extends DashboardFragment implements OnMainSwitchChan
|
||||
|
||||
private MainSwitchPreference mMainSwitchPreference;
|
||||
private Button mPreviewButton;
|
||||
private Preference mComplicationsTogglePreference;
|
||||
private RecyclerView mRecyclerView;
|
||||
|
||||
private DreamPickerController mDreamPickerController;
|
||||
|
||||
private final DreamPickerController.Callback mCallback =
|
||||
this::updateComplicationsToggleVisibility;
|
||||
|
||||
@WhenToDream
|
||||
static int getSettingFromPrefKey(String key) {
|
||||
switch (key) {
|
||||
@@ -129,7 +135,13 @@ public class DreamSettings extends DashboardFragment implements OnMainSwitchChan
|
||||
|
||||
@Override
|
||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||
return buildPreferenceControllers(context);
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
if (mDreamPickerController == null) {
|
||||
mDreamPickerController = new DreamPickerController(context);
|
||||
}
|
||||
controllers.add(mDreamPickerController);
|
||||
controllers.add(new WhenToDreamPreferenceController(context));
|
||||
return controllers;
|
||||
}
|
||||
|
||||
public static CharSequence getSummaryTextWithDreamName(Context context) {
|
||||
@@ -147,10 +159,9 @@ public class DreamSettings extends DashboardFragment implements OnMainSwitchChan
|
||||
}
|
||||
}
|
||||
|
||||
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(new WhenToDreamPreferenceController(context));
|
||||
return controllers;
|
||||
@VisibleForTesting
|
||||
void setDreamPickerController(DreamPickerController dreamPickerController) {
|
||||
mDreamPickerController = dreamPickerController;
|
||||
}
|
||||
|
||||
private void setAllPreferencesEnabled(boolean isEnabled) {
|
||||
@@ -175,12 +186,29 @@ public class DreamSettings extends DashboardFragment implements OnMainSwitchChan
|
||||
|
||||
final DreamBackend dreamBackend = DreamBackend.getInstance(getContext());
|
||||
|
||||
mComplicationsTogglePreference = findPreference(
|
||||
DreamComplicationPreferenceController.PREF_KEY);
|
||||
updateComplicationsToggleVisibility();
|
||||
|
||||
mMainSwitchPreference = findPreference(MAIN_SWITCH_PREF_KEY);
|
||||
if (mMainSwitchPreference != null) {
|
||||
mMainSwitchPreference.addOnSwitchChangeListener(this);
|
||||
}
|
||||
|
||||
setAllPreferencesEnabled(dreamBackend.isEnabled());
|
||||
|
||||
if (mDreamPickerController != null) {
|
||||
mDreamPickerController.addCallback(mCallback);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mDreamPickerController != null) {
|
||||
mDreamPickerController.removeCallback(mCallback);
|
||||
}
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -200,6 +228,16 @@ public class DreamSettings extends DashboardFragment implements OnMainSwitchChan
|
||||
return mRecyclerView;
|
||||
}
|
||||
|
||||
private void updateComplicationsToggleVisibility() {
|
||||
if (mDreamPickerController == null || mComplicationsTogglePreference == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final DreamBackend.DreamInfo activeDream = mDreamPickerController.getActiveDreamInfo();
|
||||
mComplicationsTogglePreference.setVisible(
|
||||
activeDream != null && activeDream.supportsComplications);
|
||||
}
|
||||
|
||||
private void updatePaddingForPreviewButton() {
|
||||
mPreviewButton.post(() -> {
|
||||
mRecyclerView.setPadding(0, 0, 0, mPreviewButton.getMeasuredHeight());
|
||||
|
Reference in New Issue
Block a user