Restore the style of the screen saver widget from switch style to

button style.

The operation of the Switch is not suitable for previewing the
screen saver and will make the user confused. So we change the
style of the screen saver widget back to the button style.

Fix: 189505023
Test: manually test the screen saver
Change-Id: I4a97d91cc0b76111d4cb7b6aa202f2207ee0ca5d
This commit is contained in:
Stanley Wang
2021-12-21 17:25:38 +08:00
parent a93796f7a3
commit 446f6dd886
5 changed files with 78 additions and 47 deletions

View File

@@ -17,20 +17,23 @@
package com.android.settings.dream;
import android.content.Context;
import android.widget.Button;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.SettingsMainSwitchPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.dream.DreamBackend;
import com.android.settingslib.widget.LayoutPreference;
/**
* Controller that used to enable screen saver
*/
public class StartNowPreferenceController extends SettingsMainSwitchPreferenceController {
public class StartNowPreferenceController extends BasePreferenceController {
private final DreamBackend mBackend;
private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -47,30 +50,23 @@ public class StartNowPreferenceController extends SettingsMainSwitchPreferenceCo
}
@Override
public void updateState(Preference preference) {
mSwitchPreference.setChecked(false);
mSwitchPreference.setEnabled(mBackend.getWhenToDreamSetting() != DreamBackend.NEVER);
}
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
@Override
public boolean isChecked() {
return false;
}
@Override
public boolean setChecked(boolean isChecked) {
if (isChecked) {
if (mSwitchPreference != null) {
mMetricsFeatureProvider.logClickedPreference(mSwitchPreference,
mSwitchPreference.getExtras().getInt(DashboardFragment.CATEGORY));
}
final LayoutPreference pref = screen.findPreference(getPreferenceKey());
final Button startButton = pref.findViewById(R.id.dream_start_now_button);
startButton.setOnClickListener(v -> {
mMetricsFeatureProvider.logClickedPreference(pref,
pref.getExtras().getInt(DashboardFragment.CATEGORY));
mBackend.startDreaming();
}
return true;
});
}
@Override
public int getSliceHighlightMenuRes() {
return R.string.menu_key_display;
public void updateState(Preference preference) {
super.updateState(preference);
final Button startButton = ((LayoutPreference) preference)
.findViewById(R.id.dream_start_now_button);
startButton.setEnabled(mBackend.getWhenToDreamSetting() != DreamBackend.NEVER);
}
}