Merge "Only request focus if change was self-triggered" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-30 13:35:23 +00:00
committed by Android (Google) Code Review
2 changed files with 37 additions and 22 deletions

View File

@@ -39,12 +39,17 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
private ColorDisplayManager mColorDisplayManager;
private NightDisplayTimeFormatter mTimeFormatter;
private LayoutPreference mPreference;
// Night light can also be toggled from QS. If night light wasn't toggled by this preference,
// don't requestFocus
private boolean mButtonTriggered = false;
private Button mTurnOffButton;
private Button mTurnOnButton;
private final OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
mButtonTriggered = true;
mMetricsFeatureProvider.logClickedPreference(mPreference,
SettingsEnums.NIGHT_DISPLAY_SETTINGS);
mColorDisplayManager.setNightDisplayActivated(
@@ -140,12 +145,18 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
mTurnOnButton.setVisibility(View.GONE);
mTurnOffButton.setVisibility(View.VISIBLE);
mTurnOffButton.setText(buttonText);
mTurnOffButton.requestFocus();
if (mButtonTriggered) {
mButtonTriggered = false;
mTurnOffButton.requestFocus();
}
} else {
mTurnOnButton.setVisibility(View.VISIBLE);
mTurnOffButton.setVisibility(View.GONE);
mTurnOnButton.setText(buttonText);
mTurnOnButton.requestFocus();
if (mButtonTriggered) {
mButtonTriggered = false;
mTurnOnButton.requestFocus();
}
}
}
}

View File

@@ -39,6 +39,9 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
private static final String TAG = "EnableZenModeButton";
private final FragmentManager mFragment;
// DND can also be toggled from QS. If DND wasn't toggled by this preference, don't requestFocus
private boolean mButtonTriggered = false;
private Button mZenButtonOn;
private Button mZenButtonOff;
@@ -65,7 +68,6 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
if (null == mZenButtonOn) {
mZenButtonOn = ((LayoutPreference) preference)
.findViewById(R.id.zen_mode_settings_turn_on_button);
mZenButtonOn.setFocusableInTouchMode(true);
updateZenButtonOnClickListener(preference);
}
@@ -73,6 +75,7 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
mZenButtonOff = ((LayoutPreference) preference)
.findViewById(R.id.zen_mode_settings_turn_off_button);
mZenButtonOff.setOnClickListener(v -> {
mButtonTriggered = true;
writeMetrics(preference, false);
mBackend.setZenMode(Settings.Global.ZEN_MODE_OFF);
});
@@ -88,38 +91,39 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
mZenButtonOff.setVisibility(View.VISIBLE);
mZenButtonOn.setVisibility(View.GONE);
mZenButtonOff.requestFocus();
if (mButtonTriggered) {
mButtonTriggered = false;
mZenButtonOff.requestFocus();
}
break;
case Settings.Global.ZEN_MODE_OFF:
default:
mZenButtonOff.setVisibility(View.GONE);
updateZenButtonOnClickListener(preference);
mZenButtonOn.setVisibility(View.VISIBLE);
mZenButtonOn.requestFocus();
if (mButtonTriggered) {
mButtonTriggered = false;
mZenButtonOn.requestFocus();
}
}
}
private void updateZenButtonOnClickListener(Preference preference) {
int zenDuration = getZenDuration();
switch (zenDuration) {
case Settings.Secure.ZEN_DURATION_PROMPT:
mZenButtonOn.setOnClickListener(v -> {
writeMetrics(preference, true);
mZenButtonOn.setOnClickListener(v -> {
mButtonTriggered = true;
writeMetrics(preference, true);
int zenDuration = getZenDuration();
switch (zenDuration) {
case Settings.Secure.ZEN_DURATION_PROMPT:
new SettingsEnableZenModeDialog().show(mFragment, TAG);
});
break;
case Settings.Secure.ZEN_DURATION_FOREVER:
mZenButtonOn.setOnClickListener(v -> {
writeMetrics(preference, true);
break;
case Settings.Secure.ZEN_DURATION_FOREVER:
mBackend.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
});
break;
default:
mZenButtonOn.setOnClickListener(v -> {
writeMetrics(preference, true);
break;
default:
mBackend.setZenModeForDuration(zenDuration);
});
}
}
});
}
private void writeMetrics(Preference preference, boolean buttonOn) {