[Physical Keybaord] Fix Mouse key image truncate

Seperate Images in Mouse Key page to apply scaling.

Bug: 389665773
Flag: com.android.settings.keyboard.keyboard_and_touchpad_a11y_new_page_enabled
Test: atest
packages/apps/Settings/tests/robotests/src/com/android/settings/inputmethod/

Change-Id: I207c13fb99fa5c01c08c7ca92eae2d1d5781a830
This commit is contained in:
shaoweishen
2025-01-22 09:57:26 +00:00
parent e8afedea91
commit 50ea6b06d5
3 changed files with 34 additions and 13 deletions

View File

@@ -15,12 +15,25 @@
limitations under the License.
-->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="20dp"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:drawablePadding="8dp"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/layout_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:gravity="center" />
</LinearLayout>

View File

@@ -22,6 +22,7 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -124,18 +125,19 @@ public class MouseKeysImageListAdapter extends
public static class MouseKeyImageViewHolder extends RecyclerView.ViewHolder {
private final TextView mTextView;
private final ImageView mImageView;
private final Context mContext;
public MouseKeyImageViewHolder(View itemView, Context context) {
super(itemView);
mTextView = (TextView) itemView;
mTextView = itemView.findViewById(R.id.layout_description);
mImageView = itemView.findViewById(R.id.image);
mContext = context;
}
void bindView(int drawableRes, String summary) {
mTextView.setText(summary);
mTextView.setCompoundDrawablesWithIntrinsicBounds(null,
mContext.getDrawable(drawableRes), null, null);
mImageView.setImageDrawable(mContext.getDrawable(drawableRes));
}
}
}

View File

@@ -20,6 +20,7 @@ import static com.android.settings.inputmethod.PhysicalKeyboardFragment.getHardK
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Configuration;
import android.hardware.input.InputManager;
import android.os.Bundle;
import android.view.InputDevice;
@@ -32,6 +33,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.util.Preconditions;
import com.android.settings.R;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.keyboard.Flags;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -125,7 +127,11 @@ public class MouseKeysMainPageFragment extends DashboardFragment
private void configureImagesPreference() {
final RecyclerView recyclerView = mMouseKeyImagesPreference.findViewById(
R.id.mouse_keys_image_recycler_list);
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
boolean isPortrait = getResources().getConfiguration().orientation
== Configuration.ORIENTATION_PORTRAIT;
boolean isTwoPaneState = ActivityEmbeddingUtils.isAlreadyEmbedded(this.getActivity());
int column = isPortrait && !isTwoPaneState ? 1 : 2;
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), column));
recyclerView.setAdapter(new MouseKeysImageListAdapter(getActivity(), mCurrentInputDevice));
}