Merge "Hide "additional info" when active dream does not support." into tm-qpr-dev am: 6b6c68fd94 am: d8f61dc2a3 am: 8ba70d32e2 am: b319e78682

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/21452841

Change-Id: I1349f0bc03740f277f2d7ab8e4a38fc9c1929fc9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Darrell Shi
2023-03-01 12:34:23 +00:00
committed by Automerger Merge Worker
6 changed files with 240 additions and 14 deletions

View File

@@ -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
@@ -201,6 +229,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());