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

Commit 5446813a authored by shaoweishen's avatar shaoweishen
Browse files

[PK Setting] Refine layout for Keyboard review

1. add background for keyboard review
2. add text for showing selected keyboard's name

Test: Verified on device
Bug: 305588594
Change-Id: Icf0f2b7798cc5cbddefc1b3a95480b48271b276f
parent 7429837e
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2023 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  -->

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="@color/settingslib_colorSurface"/>
    <corners android:radius="@dimen/keyboard_picker_radius"/>
</shape>
+22 −4
Original line number Diff line number Diff line
@@ -17,15 +17,33 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="@dimen/keyboard_picker_margin"
    android:id="@+id/keyboard_layout_picker_container"
    android:orientation="vertical">

    <FrameLayout
        android:id="@+id/keyboard_layout_preview_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/keyboard_review_layout_background">
        <ImageView
            android:id="@+id/keyboard_layout_preview"
            android:layout_marginTop="@dimen/keyboard_picker_margin_small"
            android:layout_marginBottom="@dimen/keyboard_picker_margin_large"
            android:layout_marginHorizontal="@dimen/keyboard_picker_margin_small"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter" />
        <TextView
            android:id="@+id/keyboard_layout_preview_name"
            android:layout_width="match_parent"
            android:layout_height="@dimen/keyboard_picker_margin_large"
            android:textSize="@dimen/keyboard_picker_text_size"
            android:textColor="?android:attr/textColorPrimary"
            android:layout_gravity="bottom"
            android:gravity="center" />
    </FrameLayout>

    <FrameLayout
        android:id="@+id/keyboard_layout_title"
+3 −0
Original line number Diff line number Diff line
@@ -27,4 +27,7 @@

    <dimen name="text_reading_preview_layout_padding_horizontal_min_suw">24dp</dimen>
    <dimen name="text_reading_preview_background_padding_horizontal_min_suw">24dp</dimen>

    <!-- Keyboard -->
    <dimen name="keyboard_picker_margin">106dp</dimen>
</resources>
+7 −0
Original line number Diff line number Diff line
@@ -165,6 +165,13 @@
    <item name="face_preview_scale" format="float" type="dimen">1.0</item>
    <dimen name="face_enroll_intro_illustration_margin_bottom">0dp</dimen>

    <!-- Keyboard -->
    <dimen name="keyboard_picker_margin_large">68dp</dimen>
    <dimen name="keyboard_picker_margin">24dp</dimen>
    <dimen name="keyboard_picker_margin_small">16dp</dimen>
    <dimen name="keyboard_picker_radius">28dp</dimen>
    <dimen name="keyboard_picker_text_size">16sp</dimen>

    <!-- RemoteAuth-->
    <dimen name="remoteauth_fragment_padding_horizontal">40dp</dimen>
    <dimen name="remoteauth_fragment_subtitle_text_size">14sp</dimen>
+24 −1
Original line number Diff line number Diff line
@@ -26,10 +26,14 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.fragment.app.Fragment;

import com.android.hardware.input.Flags;
import com.android.settings.R;

//TODO: b/316243168 - [Physical Keyboard Setting] Refactor NewKeyboardLayoutPickerFragment
@@ -38,19 +42,25 @@ public class NewKeyboardLayoutPickerFragment extends Fragment {
    private static final int DEFAULT_KEYBOARD_PREVIEW_HEIGHT = 540;

    private ImageView mKeyboardLayoutPreview;
    private TextView mKeyboardLayoutPreviewText;
    private InputManager mInputManager;
    private final NewKeyboardLayoutPickerController.KeyboardLayoutSelectedCallback
            mKeyboardLayoutSelectedCallback =
            new NewKeyboardLayoutPickerController.KeyboardLayoutSelectedCallback() {
                @Override
                public void onSelected(KeyboardLayout keyboardLayout) {
                    if (mInputManager != null && mKeyboardLayoutPreview != null) {
                    if (mInputManager != null
                            && mKeyboardLayoutPreview != null
                            && mKeyboardLayoutPreviewText != null && keyboardLayout != null) {
                        Drawable previewDrawable = mInputManager.getKeyboardLayoutPreview(
                                keyboardLayout,
                                DEFAULT_KEYBOARD_PREVIEW_WIDTH, DEFAULT_KEYBOARD_PREVIEW_HEIGHT);
                        mKeyboardLayoutPreview.setVisibility(
                                previewDrawable == null ? GONE : VISIBLE);
                        mKeyboardLayoutPreviewText.setVisibility(
                                previewDrawable == null ? GONE : VISIBLE);
                        if (previewDrawable != null) {
                            mKeyboardLayoutPreviewText.setText(keyboardLayout.getLabel());
                            mKeyboardLayoutPreview.setImageDrawable(previewDrawable);
                        }
                    }
@@ -73,6 +83,10 @@ public class NewKeyboardLayoutPickerFragment extends Fragment {
        ViewGroup fragmentView = (ViewGroup) inflater.inflate(
                R.layout.keyboard_layout_picker, container, false);
        mKeyboardLayoutPreview = fragmentView.findViewById(R.id.keyboard_layout_preview);
        mKeyboardLayoutPreviewText = fragmentView.findViewById(R.id.keyboard_layout_preview_name);
        if (!Flags.keyboardLayoutPreviewFlag()) {
            updateViewMarginForPreviewFlagOff(fragmentView);
        }
        getActivity().getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.keyboard_layout_title, new NewKeyboardLayoutPickerTitle())
@@ -87,4 +101,13 @@ public class NewKeyboardLayoutPickerFragment extends Fragment {
                .commit();
        return fragmentView;
    }

    private void updateViewMarginForPreviewFlagOff(ViewGroup fragmentView) {
        LinearLayout previewContainer = fragmentView.findViewById(
                R.id.keyboard_layout_picker_container);
        FrameLayout.LayoutParams previewContainerLayoutParams =
                (FrameLayout.LayoutParams) previewContainer.getLayoutParams();
        previewContainerLayoutParams.setMargins(0, 0, 0, 0);
        previewContainer.setLayoutParams(previewContainerLayoutParams);
    }
}