Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c22d90cb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents dad135f4 f736532a
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -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);
            if (mButtonTriggered) {
                mButtonTriggered = false;
                mTurnOffButton.requestFocus();
            }
        } else {
            mTurnOnButton.setVisibility(View.VISIBLE);
            mTurnOffButton.setVisibility(View.GONE);
            mTurnOnButton.setText(buttonText);
            if (mButtonTriggered) {
                mButtonTriggered = false;
                mTurnOnButton.requestFocus();
            }
        }
    }
}
+24 −20
Original line number Diff line number Diff line
@@ -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);
                if (mButtonTriggered) {
                    mButtonTriggered = false;
                    mZenButtonOff.requestFocus();
                }
                break;
            case Settings.Global.ZEN_MODE_OFF:
            default:
                mZenButtonOff.setVisibility(View.GONE);
                updateZenButtonOnClickListener(preference);
                mZenButtonOn.setVisibility(View.VISIBLE);
                if (mButtonTriggered) {
                    mButtonTriggered = false;
                    mZenButtonOn.requestFocus();
                }
        }
    }

    private void updateZenButtonOnClickListener(Preference preference) {
        mZenButtonOn.setOnClickListener(v -> {
            mButtonTriggered = true;
            writeMetrics(preference, true);
            int zenDuration = getZenDuration();
            switch (zenDuration) {
                case Settings.Secure.ZEN_DURATION_PROMPT:
                mZenButtonOn.setOnClickListener(v -> {
                    writeMetrics(preference, true);
                    new SettingsEnableZenModeDialog().show(mFragment, TAG);
                });
                    break;
                case Settings.Secure.ZEN_DURATION_FOREVER:
                mZenButtonOn.setOnClickListener(v -> {
                    writeMetrics(preference, true);
                    mBackend.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
                });
                    break;
                default:
                mZenButtonOn.setOnClickListener(v -> {
                    writeMetrics(preference, true);
                    mBackend.setZenModeForDuration(zenDuration);
                });
            }
        });
    }

    private void writeMetrics(Preference preference, boolean buttonOn) {