summaryrefslogtreecommitdiff
path: root/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java')
-rw-r--r--src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java44
1 files changed, 42 insertions, 2 deletions
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
index 88cacd2b046..f583971cf67 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
@@ -16,35 +16,75 @@
package com.android.settings.inputmethod;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
+import android.graphics.drawable.Drawable;
+import android.hardware.input.InputManager;
+import android.hardware.input.KeyboardLayout;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import androidx.fragment.app.Fragment;
import com.android.settings.R;
+//TODO: b/316243168 - [Physical Keyboard Setting] Refactor NewKeyboardLayoutPickerFragment
public class NewKeyboardLayoutPickerFragment extends Fragment {
+ private static final int DEFAULT_KEYBOARD_PREVIEW_WIDTH = 1630;
+ private static final int DEFAULT_KEYBOARD_PREVIEW_HEIGHT = 540;
+
+ private ImageView mKeyboardLayoutPreview;
+ private InputManager mInputManager;
+ private final NewKeyboardLayoutPickerController.KeyboardLayoutSelectedCallback
+ mKeyboardLayoutSelectedCallback =
+ new NewKeyboardLayoutPickerController.KeyboardLayoutSelectedCallback() {
+ @Override
+ public void onSelected(KeyboardLayout keyboardLayout) {
+ if (mInputManager != null && mKeyboardLayoutPreview != null) {
+ Drawable previewDrawable = mInputManager.getKeyboardLayoutPreview(
+ keyboardLayout,
+ DEFAULT_KEYBOARD_PREVIEW_WIDTH, DEFAULT_KEYBOARD_PREVIEW_HEIGHT);
+ mKeyboardLayoutPreview.setVisibility(
+ previewDrawable == null ? GONE : VISIBLE);
+ if (previewDrawable != null) {
+ mKeyboardLayoutPreview.setImageDrawable(previewDrawable);
+ }
+ }
+ }
+ };
+
+ private final NewKeyboardLayoutPickerContent.ControllerUpdateCallback
+ mControllerUpdateCallback =
+ newKeyboardLayoutPickerController -> {
+ if (newKeyboardLayoutPickerController != null) {
+ newKeyboardLayoutPickerController.registerKeyboardSelectedCallback(
+ mKeyboardLayoutSelectedCallback);
+ }
+ };
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
-
+ mInputManager = requireContext().getSystemService(InputManager.class);
ViewGroup fragmentView = (ViewGroup) inflater.inflate(
R.layout.keyboard_layout_picker, container, false);
+ mKeyboardLayoutPreview = fragmentView.findViewById(R.id.keyboard_layout_preview);
getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.keyboard_layout_title, new NewKeyboardLayoutPickerTitle())
.commit();
NewKeyboardLayoutPickerContent fragment = new NewKeyboardLayoutPickerContent();
+ fragment.setControllerUpdateCallback(mControllerUpdateCallback);
fragment.setArguments(getArguments());
getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.keyboard_layouts, fragment)
.commit();
-
return fragmentView;
}
}