Merge "[Physical Keybaord] Fix Mouse key image truncate" into main

This commit is contained in:
Shaowei Shen
2025-02-04 19:17:34 -08:00
committed by Android (Google) Code Review
3 changed files with 34 additions and 13 deletions

View File

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

View File

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

View File

@@ -20,6 +20,7 @@ import static com.android.settings.inputmethod.PhysicalKeyboardFragment.getHardK
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration;
import android.hardware.input.InputManager; import android.hardware.input.InputManager;
import android.os.Bundle; import android.os.Bundle;
import android.view.InputDevice; import android.view.InputDevice;
@@ -32,6 +33,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.keyboard.Flags; import com.android.settings.keyboard.Flags;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
@@ -125,7 +127,11 @@ public class MouseKeysMainPageFragment extends DashboardFragment
private void configureImagesPreference() { private void configureImagesPreference() {
final RecyclerView recyclerView = mMouseKeyImagesPreference.findViewById( final RecyclerView recyclerView = mMouseKeyImagesPreference.findViewById(
R.id.mouse_keys_image_recycler_list); 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)); recyclerView.setAdapter(new MouseKeysImageListAdapter(getActivity(), mCurrentInputDevice));
} }