Toggle Home controls when user selects Home Control Panel Dream
Test: DreamSettingsTest Flag: ACONFIG android.service.controls.flags.home_panel_dream STAGING Fixes: 323887821 Change-Id: Iba7c2ff41e3e0074a28f96c4e5fa1028b80f7a92
This commit is contained in:
@@ -25,6 +25,7 @@ import static com.android.settingslib.dream.DreamBackend.WHILE_DOCKED;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.service.dreams.DreamService;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -61,9 +62,11 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
private MainSwitchPreference mMainSwitchPreference;
|
||||
private Button mPreviewButton;
|
||||
private Preference mComplicationsTogglePreference;
|
||||
private Preference mHomeControllerTogglePreference;
|
||||
private RecyclerView mRecyclerView;
|
||||
|
||||
private DreamPickerController mDreamPickerController;
|
||||
private DreamHomeControlsPreferenceController mDreamHomeControlsPreferenceController;
|
||||
|
||||
private final DreamPickerController.Callback mCallback =
|
||||
this::updateComplicationsToggleVisibility;
|
||||
@@ -139,7 +142,12 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
if (mDreamPickerController == null) {
|
||||
mDreamPickerController = new DreamPickerController(context);
|
||||
}
|
||||
if (mDreamHomeControlsPreferenceController == null) {
|
||||
mDreamHomeControlsPreferenceController = new DreamHomeControlsPreferenceController(
|
||||
context, DreamBackend.getInstance(getContext()));
|
||||
}
|
||||
controllers.add(mDreamPickerController);
|
||||
controllers.add(mDreamHomeControlsPreferenceController);
|
||||
controllers.add(new WhenToDreamPreferenceController(context));
|
||||
return controllers;
|
||||
}
|
||||
@@ -164,6 +172,12 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
mDreamPickerController = dreamPickerController;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setDreamHomeControlsPreferenceController(DreamHomeControlsPreferenceController
|
||||
dreamHomeControlsPreferenceController) {
|
||||
mDreamHomeControlsPreferenceController = dreamHomeControlsPreferenceController;
|
||||
}
|
||||
|
||||
private void setAllPreferencesEnabled(boolean isEnabled) {
|
||||
getPreferenceControllers().forEach(controllers -> {
|
||||
controllers.forEach(controller -> {
|
||||
@@ -171,6 +185,9 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
if (prefKey.equals(MAIN_SWITCH_PREF_KEY)) {
|
||||
return;
|
||||
}
|
||||
if (prefKey.equals(DreamHomeControlsPreferenceController.PREF_KEY)) {
|
||||
return;
|
||||
}
|
||||
final Preference pref = findPreference(prefKey);
|
||||
if (pref != null) {
|
||||
pref.setEnabled(isEnabled);
|
||||
@@ -178,6 +195,7 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
}
|
||||
});
|
||||
});
|
||||
updateComplicationsToggleVisibility();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -188,7 +206,10 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
|
||||
mComplicationsTogglePreference = findPreference(
|
||||
DreamComplicationPreferenceController.PREF_KEY);
|
||||
updateComplicationsToggleVisibility();
|
||||
|
||||
mHomeControllerTogglePreference = findPreference(
|
||||
DreamHomeControlsPreferenceController.PREF_KEY
|
||||
);
|
||||
|
||||
mMainSwitchPreference = findPreference(MAIN_SWITCH_PREF_KEY);
|
||||
if (mMainSwitchPreference != null) {
|
||||
@@ -230,13 +251,29 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
|
||||
}
|
||||
|
||||
private void updateComplicationsToggleVisibility() {
|
||||
if (mDreamPickerController == null || mComplicationsTogglePreference == null) {
|
||||
if (mDreamPickerController == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final DreamBackend.DreamInfo activeDream = mDreamPickerController.getActiveDreamInfo();
|
||||
mComplicationsTogglePreference.setVisible(
|
||||
activeDream != null && activeDream.supportsComplications);
|
||||
|
||||
final DreamBackend dreamBackend = DreamBackend.getInstance(getContext());
|
||||
|
||||
|
||||
if (mComplicationsTogglePreference != null) {
|
||||
mComplicationsTogglePreference.setVisible(
|
||||
activeDream != null && activeDream.supportsComplications);
|
||||
}
|
||||
|
||||
if (mHomeControllerTogglePreference != null) {
|
||||
boolean isEnabled = dreamBackend.isEnabled()
|
||||
&& (activeDream == null
|
||||
|| (activeDream.dreamCategory
|
||||
& DreamService.DREAM_CATEGORY_HOME_PANEL) == 0)
|
||||
&& mDreamHomeControlsPreferenceController
|
||||
.getAvailabilityStatus()
|
||||
== mDreamHomeControlsPreferenceController.AVAILABLE;
|
||||
mHomeControllerTogglePreference.setEnabled(isEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
private void updatePaddingForPreviewButton() {
|
||||
|
Reference in New Issue
Block a user