Loading res/layout/dialog_keyboard_a11y_input_setting_keys.xml +139 −100 Original line number Original line Diff line number Diff line Loading @@ -15,11 +15,18 @@ limitations under the License. limitations under the License. --> --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:id="@+id/input_keys_dialog_scroll_view" android:gravity="center_horizontal" android:gravity="center_horizontal" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/modifier_key_fragment_container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView <TextView android:id="@+id/input_setting_keys_dialog_title" android:id="@+id/input_setting_keys_dialog_title" Loading Loading @@ -121,16 +128,48 @@ android:paddingEnd="36dp" android:paddingEnd="36dp" android:min="1" android:min="1" android:max="50" android:max="50" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:progressBackgroundTint="@color/input_dialog_slider_progress_background" android:progressBackgroundTint="@color/input_dialog_slider_progress_background" android:progressTint="@color/input_dialog_slider_progress" android:progressTint="@color/input_dialog_slider_progress" android:thumbTint="@color/input_dialog_slider_progress" android:thumbTint="@color/input_dialog_slider_progress" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginTop="8dp" android:layout_marginTop="8dp" android:visibility="gone"/> android:visibility="gone"/> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </RadioGroup> </RadioGroup> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:layout_marginTop="12dp" android:layout_marginBottom="6dp"> <Button android:id="@+id/cancel_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:paddingVertical="14dp" android:layout_toStartOf="@+id/done_button" style="@style/SettingsLibActionButton" android:text="@string/cancel"/> <Button android:id="@+id/done_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:layout_marginEnd="8dp" android:layout_alignParentEnd="true" android:paddingVertical="14dp" style="@style/SettingsLibActionButton" android:text="@string/done"/> </RelativeLayout> </LinearLayout> </LinearLayout> </ScrollView> No newline at end of file src/com/android/settings/inputmethod/KeyboardAccessibilityKeysDialogFragment.java +51 −32 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; import android.view.Window; import android.view.Window; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup; import android.widget.SeekBar; import android.widget.SeekBar; Loading Loading @@ -78,8 +79,8 @@ public abstract class KeyboardAccessibilityKeysDialogFragment extends DialogFrag R.layout.dialog_keyboard_a11y_input_setting_keys, null); R.layout.dialog_keyboard_a11y_input_setting_keys, null); AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); dialogBuilder.setView(dialoglayout); dialogBuilder.setView(dialoglayout); dialogBuilder.setPositiveButton(android.R.string.ok, Button doneButton = dialoglayout.findViewById(R.id.done_button); (dialog, which) -> { doneButton.setOnClickListener(v -> { RadioGroup radioGroup = RadioGroup radioGroup = dialoglayout.findViewById( dialoglayout.findViewById( R.id.input_setting_keys_value_group); R.id.input_setting_keys_value_group); Loading @@ -106,8 +107,13 @@ public abstract class KeyboardAccessibilityKeysDialogFragment extends DialogFrag } } updateInputSettingKeysValue(threshold); updateInputSettingKeysValue(threshold); onCustomValueUpdated(threshold); onCustomValueUpdated(threshold); }) dismiss(); .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()); }); Button cancelButton = dialoglayout.findViewById(R.id.cancel_button); cancelButton.setOnClickListener(v -> { dismiss(); }); AlertDialog accessibilityKeyDialog = dialogBuilder.create(); AlertDialog accessibilityKeyDialog = dialogBuilder.create(); accessibilityKeyDialog.setOnShowListener(dialog -> { accessibilityKeyDialog.setOnShowListener(dialog -> { RadioGroup cannedValueRadioGroup = accessibilityKeyDialog.findViewById( RadioGroup cannedValueRadioGroup = accessibilityKeyDialog.findViewById( Loading Loading @@ -162,8 +168,21 @@ public abstract class KeyboardAccessibilityKeysDialogFragment extends DialogFrag public void onStopTrackingTouch(SeekBar seekBar) { public void onStopTrackingTouch(SeekBar seekBar) { } } }); }); initStateBasedOnThreshold(cannedValueRadioGroup, customRadioButton, customValueTextView, if (cannedValueRadioGroup.getCheckedRadioButtonId() == -1 && !customRadioButton.isChecked()) { //if canned radio group and custom are not select, initial check state from input // setting initStateBasedOnThreshold(cannedValueRadioGroup, customRadioButton, customValueTextView, customProgressBar); customProgressBar); } else if (customRadioButton.isChecked()) { cannedValueRadioGroup.clearCheck(); customRadioButton.setChecked(true); customValueTextView.setVisibility(View.VISIBLE); customValueTextView.setText( progressToThresholdInSecond(customProgressBar.getProgress())); customProgressBar.setVisibility(View.VISIBLE); } }); }); final Window window = accessibilityKeyDialog.getWindow(); final Window window = accessibilityKeyDialog.getWindow(); Loading tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysDialogFragmentTest.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import android.app.AlertDialog; import android.app.AlertDialog; import android.hardware.input.InputSettings; import android.hardware.input.InputSettings; import android.os.Bundle; import android.os.Bundle; import android.widget.Button; import android.widget.RadioGroup; import android.widget.RadioGroup; import androidx.fragment.app.testing.FragmentScenario; import androidx.fragment.app.testing.FragmentScenario; Loading Loading @@ -70,7 +71,8 @@ public class KeyboardAccessibilityBounceKeysDialogFragmentTest { RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); radioGroup.check(R.id.input_setting_keys_value_200); radioGroup.check(R.id.input_setting_keys_value_200); mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); Button doneButton = mAlertDialog.findViewById(R.id.done_button); doneButton.performClick(); ShadowLooper.idleMainLooper(); ShadowLooper.idleMainLooper(); assertThat(mAlertDialog.isShowing()).isFalse(); assertThat(mAlertDialog.isShowing()).isFalse(); Loading tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysDialogFragmentTest.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import android.app.AlertDialog; import android.app.AlertDialog; import android.hardware.input.InputSettings; import android.hardware.input.InputSettings; import android.os.Bundle; import android.os.Bundle; import android.widget.Button; import android.widget.RadioGroup; import android.widget.RadioGroup; import androidx.fragment.app.testing.FragmentScenario; import androidx.fragment.app.testing.FragmentScenario; Loading Loading @@ -70,7 +71,8 @@ public class KeyboardAccessibilitySlowKeysDialogFragmentTest { RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); radioGroup.check(R.id.input_setting_keys_value_200); radioGroup.check(R.id.input_setting_keys_value_200); mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); Button doneButton = mAlertDialog.findViewById(R.id.done_button); doneButton.performClick(); ShadowLooper.idleMainLooper(); ShadowLooper.idleMainLooper(); assertThat(mAlertDialog.isShowing()).isFalse(); assertThat(mAlertDialog.isShowing()).isFalse(); Loading Loading
res/layout/dialog_keyboard_a11y_input_setting_keys.xml +139 −100 Original line number Original line Diff line number Diff line Loading @@ -15,11 +15,18 @@ limitations under the License. limitations under the License. --> --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:id="@+id/input_keys_dialog_scroll_view" android:gravity="center_horizontal" android:gravity="center_horizontal" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/modifier_key_fragment_container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView <TextView android:id="@+id/input_setting_keys_dialog_title" android:id="@+id/input_setting_keys_dialog_title" Loading Loading @@ -121,16 +128,48 @@ android:paddingEnd="36dp" android:paddingEnd="36dp" android:min="1" android:min="1" android:max="50" android:max="50" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:progressBackgroundTint="@color/input_dialog_slider_progress_background" android:progressBackgroundTint="@color/input_dialog_slider_progress_background" android:progressTint="@color/input_dialog_slider_progress" android:progressTint="@color/input_dialog_slider_progress" android:thumbTint="@color/input_dialog_slider_progress" android:thumbTint="@color/input_dialog_slider_progress" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginTop="8dp" android:layout_marginTop="8dp" android:visibility="gone"/> android:visibility="gone"/> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </RadioGroup> </RadioGroup> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:layout_marginTop="12dp" android:layout_marginBottom="6dp"> <Button android:id="@+id/cancel_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:paddingVertical="14dp" android:layout_toStartOf="@+id/done_button" style="@style/SettingsLibActionButton" android:text="@string/cancel"/> <Button android:id="@+id/done_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:layout_marginEnd="8dp" android:layout_alignParentEnd="true" android:paddingVertical="14dp" style="@style/SettingsLibActionButton" android:text="@string/done"/> </RelativeLayout> </LinearLayout> </LinearLayout> </ScrollView> No newline at end of file
src/com/android/settings/inputmethod/KeyboardAccessibilityKeysDialogFragment.java +51 −32 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; import android.view.Window; import android.view.Window; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup; import android.widget.SeekBar; import android.widget.SeekBar; Loading Loading @@ -78,8 +79,8 @@ public abstract class KeyboardAccessibilityKeysDialogFragment extends DialogFrag R.layout.dialog_keyboard_a11y_input_setting_keys, null); R.layout.dialog_keyboard_a11y_input_setting_keys, null); AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); dialogBuilder.setView(dialoglayout); dialogBuilder.setView(dialoglayout); dialogBuilder.setPositiveButton(android.R.string.ok, Button doneButton = dialoglayout.findViewById(R.id.done_button); (dialog, which) -> { doneButton.setOnClickListener(v -> { RadioGroup radioGroup = RadioGroup radioGroup = dialoglayout.findViewById( dialoglayout.findViewById( R.id.input_setting_keys_value_group); R.id.input_setting_keys_value_group); Loading @@ -106,8 +107,13 @@ public abstract class KeyboardAccessibilityKeysDialogFragment extends DialogFrag } } updateInputSettingKeysValue(threshold); updateInputSettingKeysValue(threshold); onCustomValueUpdated(threshold); onCustomValueUpdated(threshold); }) dismiss(); .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()); }); Button cancelButton = dialoglayout.findViewById(R.id.cancel_button); cancelButton.setOnClickListener(v -> { dismiss(); }); AlertDialog accessibilityKeyDialog = dialogBuilder.create(); AlertDialog accessibilityKeyDialog = dialogBuilder.create(); accessibilityKeyDialog.setOnShowListener(dialog -> { accessibilityKeyDialog.setOnShowListener(dialog -> { RadioGroup cannedValueRadioGroup = accessibilityKeyDialog.findViewById( RadioGroup cannedValueRadioGroup = accessibilityKeyDialog.findViewById( Loading Loading @@ -162,8 +168,21 @@ public abstract class KeyboardAccessibilityKeysDialogFragment extends DialogFrag public void onStopTrackingTouch(SeekBar seekBar) { public void onStopTrackingTouch(SeekBar seekBar) { } } }); }); initStateBasedOnThreshold(cannedValueRadioGroup, customRadioButton, customValueTextView, if (cannedValueRadioGroup.getCheckedRadioButtonId() == -1 && !customRadioButton.isChecked()) { //if canned radio group and custom are not select, initial check state from input // setting initStateBasedOnThreshold(cannedValueRadioGroup, customRadioButton, customValueTextView, customProgressBar); customProgressBar); } else if (customRadioButton.isChecked()) { cannedValueRadioGroup.clearCheck(); customRadioButton.setChecked(true); customValueTextView.setVisibility(View.VISIBLE); customValueTextView.setText( progressToThresholdInSecond(customProgressBar.getProgress())); customProgressBar.setVisibility(View.VISIBLE); } }); }); final Window window = accessibilityKeyDialog.getWindow(); final Window window = accessibilityKeyDialog.getWindow(); Loading
tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysDialogFragmentTest.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import android.app.AlertDialog; import android.app.AlertDialog; import android.hardware.input.InputSettings; import android.hardware.input.InputSettings; import android.os.Bundle; import android.os.Bundle; import android.widget.Button; import android.widget.RadioGroup; import android.widget.RadioGroup; import androidx.fragment.app.testing.FragmentScenario; import androidx.fragment.app.testing.FragmentScenario; Loading Loading @@ -70,7 +71,8 @@ public class KeyboardAccessibilityBounceKeysDialogFragmentTest { RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); radioGroup.check(R.id.input_setting_keys_value_200); radioGroup.check(R.id.input_setting_keys_value_200); mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); Button doneButton = mAlertDialog.findViewById(R.id.done_button); doneButton.performClick(); ShadowLooper.idleMainLooper(); ShadowLooper.idleMainLooper(); assertThat(mAlertDialog.isShowing()).isFalse(); assertThat(mAlertDialog.isShowing()).isFalse(); Loading
tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysDialogFragmentTest.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import android.app.AlertDialog; import android.app.AlertDialog; import android.hardware.input.InputSettings; import android.hardware.input.InputSettings; import android.os.Bundle; import android.os.Bundle; import android.widget.Button; import android.widget.RadioGroup; import android.widget.RadioGroup; import androidx.fragment.app.testing.FragmentScenario; import androidx.fragment.app.testing.FragmentScenario; Loading Loading @@ -70,7 +71,8 @@ public class KeyboardAccessibilitySlowKeysDialogFragmentTest { RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); RadioGroup radioGroup = mAlertDialog.findViewById(R.id.input_setting_keys_value_group); radioGroup.check(R.id.input_setting_keys_value_200); radioGroup.check(R.id.input_setting_keys_value_200); mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); Button doneButton = mAlertDialog.findViewById(R.id.done_button); doneButton.performClick(); ShadowLooper.idleMainLooper(); ShadowLooper.idleMainLooper(); assertThat(mAlertDialog.isShowing()).isFalse(); assertThat(mAlertDialog.isShowing()).isFalse(); Loading