[Physical Keyboard] Add main page for Repeat keys

Page markup: https://screenshot.googleplex.com/5xCd2wVVyXajdCB.png

Test: atest SettingsRoboTests
Bug: 345399212
Flag: com.android.input.flags.keyboard_repeat_keys
Change-Id: Ie60f4b6ea4de973644103c0aa0bcdfe9a1e758eb
This commit is contained in:
shaoweishen
2024-10-09 14:31:29 +00:00
committed by Shaowei Shen
parent 145bbb1638
commit cbe75928d9
10 changed files with 546 additions and 12 deletions

View File

@@ -25,14 +25,20 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.LifecycleObserver;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreferenceCompat;
import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.widget.MainSwitchPreference;
public class KeyboardRepeatKeysController extends
InputSettingPreferenceController implements
LifecycleObserver {
private static final String KEY_REPEAT_KEY = "physical_keyboard_repeat_keys";
private static final String KEY_REPEAT_KEY_MAIN_PAGE = "repeat_key_main_switch";
@Nullable
private SwitchPreferenceCompat mSwitchPreferenceCompat;
private PrimarySwitchPreference mPrimarySwitchPreference;
@Nullable
private MainSwitchPreference mMainSwitchPreference;
public KeyboardRepeatKeysController(@NonNull Context context,
@NonNull String key) {
@@ -42,7 +48,11 @@ public class KeyboardRepeatKeysController extends
@Override
public void displayPreference(@NonNull PreferenceScreen screen) {
super.displayPreference(screen);
mSwitchPreferenceCompat = screen.findPreference(getPreferenceKey());
if (KEY_REPEAT_KEY.equals(getPreferenceKey())) {
mPrimarySwitchPreference = screen.findPreference(getPreferenceKey());
} else if (KEY_REPEAT_KEY_MAIN_PAGE.equals(getPreferenceKey())) {
mMainSwitchPreference = screen.findPreference(getPreferenceKey());
}
}
@Override
@@ -63,8 +73,10 @@ public class KeyboardRepeatKeysController extends
@Override
protected void onInputSettingUpdated() {
if (mSwitchPreferenceCompat != null) {
mSwitchPreferenceCompat.setChecked(InputSettings.isRepeatKeysEnabled(mContext));
if (mPrimarySwitchPreference != null) {
mPrimarySwitchPreference.setChecked(InputSettings.isRepeatKeysEnabled(mContext));
} else if (mMainSwitchPreference != null) {
mMainSwitchPreference.setChecked(InputSettings.isRepeatKeysEnabled(mContext));
}
}