From c9eb55593f1f0f8a0ee70fe957a7d52ee05d236b Mon Sep 17 00:00:00 2001 From: Zhizhi Liu Date: Mon, 31 Jan 2022 05:47:23 +0000 Subject: [PATCH] Fix crash in ManageKeyboard screen in TvSettings. Leanback lib is using a different layout for InputMethodPreference. To fix the crash, do not apply LinearLayoutParams for TV. Bug: 205671514 Test: mmma packages/apps/TvSettings, manually test. Change-Id: I7e59f0a2c3fefe7e2c45e136f74d96416f159880 --- .../settingslib/inputmethod/InputMethodPreference.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodPreference.java b/packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodPreference.java index c1ab706fe45e4..26e3e0432fd6a 100644 --- a/packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/inputmethod/InputMethodPreference.java @@ -27,6 +27,7 @@ import android.content.res.Configuration; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; +import android.view.ViewGroup; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; @@ -155,7 +156,14 @@ public class InputMethodPreference extends PrimarySwitchPreference final int iconSize = getContext().getResources().getDimensionPixelSize( R.dimen.secondary_app_icon_size); if (icon != null && iconSize > 0) { - icon.setLayoutParams(new LinearLayout.LayoutParams(iconSize, iconSize)); + if (isTv()) { + ViewGroup.LayoutParams params = icon.getLayoutParams(); + params.height = iconSize; + params.width = iconSize; + icon.setLayoutParams(params); + } else { + icon.setLayoutParams(new LinearLayout.LayoutParams(iconSize, iconSize)); + } } }