home button

pull/356/head
okjack 2 years ago
parent 0c101134fa
commit 4effdecabf
  1. 24
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ButtonsAdapter.java
  2. 5
      app/src/leanback/res/drawable/ic_action_down.xml
  3. 11
      app/src/leanback/res/layout/adapter_buttons.xml

@ -18,9 +18,13 @@ import java.util.Map;
public class ButtonsAdapter extends RecyclerView.Adapter<ButtonsAdapter.ViewHolder> {
private List<Button> mItems;
private int upFocus;
private int downFocus;
public ButtonsAdapter() {
this.mItems = Button.sortedAll();
this.upFocus = -1;
this.downFocus = -1;
}
@Override
@ -42,7 +46,10 @@ public class ButtonsAdapter extends RecyclerView.Adapter<ButtonsAdapter.ViewHold
holder.binding.select.setOnLongClickListener(v -> onItemLongClick(item));
holder.binding.select.setOnClickListener(v -> onItemClick(item, position));
holder.binding.text.setGravity(Gravity.START);
holder.binding.down.setOnClickListener(v -> onDownClick(item, position));
holder.binding.up.setOnClickListener(v -> onUpClick(item, position));
if (upFocus == position) holder.binding.up.requestFocus();
else if (downFocus == position) holder.binding.down.requestFocus();
}
private boolean getChecked(Button item) {
@ -69,6 +76,21 @@ public class ButtonsAdapter extends RecyclerView.Adapter<ButtonsAdapter.ViewHold
return true;
}
private void onDownClick(Button item, int position) {
if (position == getItemCount() - 1) return;
List<Button> buttonList = Button.sortedAll();
Button button = buttonList.get(position);
buttonList.remove(position);
buttonList.add(position + 1, button);
Map<Integer, Button> map = Button.getMap(buttonList);
Button.saveSorted(map);
mItems = Button.sortedAll();
save(mItems, Button.getButtonsMap());
downFocus = position + 1;
upFocus = -1;
notifyItemRangeChanged(0, getItemCount());
}
private void onUpClick(Button item, int position) {
if (position == 0) return;
List<Button> buttonList = Button.sortedAll();
@ -79,6 +101,8 @@ public class ButtonsAdapter extends RecyclerView.Adapter<ButtonsAdapter.ViewHold
Button.saveSorted(map);
mItems = Button.sortedAll();
save(mItems, Button.getButtonsMap());
upFocus = position - 1;
downFocus = -1;
notifyItemRangeChanged(0, getItemCount());
}

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M20,12l-1.41,-1.41L13,16.17V4h-2v12.17l-5.58,-5.59L4,12l8,8 8,-8z"/>
</vector>

@ -39,6 +39,17 @@
android:focusableInTouchMode="false" />
</LinearLayout>
<ImageView
android:id="@+id/down"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="10dp"
android:background="@drawable/selector_text"
android:focusable="true"
android:focusableInTouchMode="true"
android:padding="8dp"
android:src="@drawable/ic_action_down" />
<ImageView
android:id="@+id/up"
android:layout_width="40dp"

Loading…
Cancel
Save