Optimize toggle keyboard

pull/586/head
FongMi 1 year ago
parent 3bc374a0fa
commit 02d414c1ce
  1. 18
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/KeyboardAdapter.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyboard.java

@ -12,20 +12,24 @@ import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.databinding.AdapterKeyboardIconBinding;
import com.fongmi.android.tv.databinding.AdapterKeyboardTextBinding;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class KeyboardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private final List<Object> enList = Arrays.asList(R.drawable.ic_keyboard_remote, R.drawable.ic_keyboard_left, R.drawable.ic_keyboard_right, R.drawable.ic_keyboard_back, R.drawable.ic_keyboard_search, R.drawable.ic_setting_home, R.drawable.ic_keyboard, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
private final List<Object> twList = Arrays.asList(R.drawable.ic_keyboard_remote, R.drawable.ic_keyboard_left, R.drawable.ic_keyboard_right, R.drawable.ic_keyboard_back, R.drawable.ic_keyboard_search, R.drawable.ic_setting_home, R.drawable.ic_keyboard, "ㄅ", "ㄆ", "ㄇ", "ㄈ", "ㄉ", "ㄊ", "ㄋ", "ㄌ", "ㄍ", "ㄎ", "ㄏ", "ㄐ", "ㄑ", "ㄒ", "ㄓ", "ㄔ", "ㄕ", "ㄖ", "ㄗ", "ㄘ", "ㄙ", "ㄧ", "ㄨ", "ㄩ", "ㄚ", "ㄛ", "ㄜ", "ㄝ", "ㄞ", "ㄟ", "ㄠ", "ㄡ", "ㄢ", "ㄣ", "ㄤ", "ㄥ", "ㄦ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
private final List<Integer> icons = Arrays.asList(R.drawable.ic_keyboard_remote, R.drawable.ic_keyboard_left, R.drawable.ic_keyboard_right, R.drawable.ic_keyboard_back, R.drawable.ic_keyboard_search, R.drawable.ic_setting_home, R.drawable.ic_keyboard);
private final List<String> enList = Arrays.asList("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
private final List<String> twList = Arrays.asList("ㄅ", "ㄆ", "ㄇ", "ㄈ", "ㄉ", "ㄊ", "ㄋ", "ㄌ", "ㄍ", "ㄎ", "ㄏ", "ㄐ", "ㄑ", "ㄒ", "ㄓ", "ㄔ", "ㄕ", "ㄖ", "ㄗ", "ㄘ", "ㄙ", "ㄧ", "ㄨ", "ㄩ", "ㄚ", "ㄛ", "ㄜ", "ㄝ", "ㄞ", "ㄟ", "ㄠ", "ㄡ", "ㄢ", "ㄣ", "ㄤ", "ㄥ", "ㄦ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
private final OnClickListener mListener;
private List<Object> mItems;
private final List<Object> mItems;
public KeyboardAdapter(OnClickListener listener) {
this.mItems = Setting.isZhuyin() ? twList : enList;
this.mItems = new ArrayList<>();
this.mListener = listener;
this.mItems.addAll(icons);
this.mItems.addAll(Setting.isZhuyin() ? twList : enList);
}
public interface OnClickListener {
@ -39,8 +43,10 @@ public class KeyboardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
public void toggle() {
Setting.putZhuyin(!Setting.isZhuyin());
this.mItems = Setting.isZhuyin() ? twList : enList;
notifyDataSetChanged();
mItems.removeAll(Setting.isZhuyin() ? enList : twList);
mItems.addAll(icons.size(), Setting.isZhuyin() ? twList : enList);
notifyItemRangeRemoved(icons.size(), Setting.isZhuyin() ? enList.size() : twList.size());
notifyItemRangeInserted(icons.size(), Setting.isZhuyin() ? twList.size() : enList.size());
}
@Override

@ -65,9 +65,7 @@ public class CustomKeyboard implements KeyboardAdapter.OnClickListener {
binding.keyword.setSelection(cursor - 1);
break;
case R.drawable.ic_keyboard:
binding.keyword.requestFocus();
adapter.toggle();
binding.keyboard.postDelayed(() -> binding.keyboard.findViewHolderForLayoutPosition(6).itemView.requestFocus(), 0);
break;
}
}

Loading…
Cancel
Save