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
This commit is contained in:
Zhizhi Liu
2022-01-31 05:47:23 +00:00
parent 3811eb4e2e
commit c9eb55593f

View File

@@ -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));
}
}
}