diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java
index e03fd7962..74c6e36e3 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java
@@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.Intent;
+import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -65,6 +66,7 @@ public class VodActivity extends BaseActivity {
@Override
protected void initEvent() {
+ mTypePresenter.setOnClickListener(this::updateFilter);
mBinding.pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
@@ -81,12 +83,6 @@ public class VodActivity extends BaseActivity {
mOldView.setActivated(true);
}
});
- mTypePresenter.setOnClickListener(item -> {
- int index = mResult.getTypes().indexOf(item);
- if (index != mBinding.pager.getCurrentItem()) mBinding.pager.setCurrentItem(index);
- else item.setFilter(item.getFilter() == null ? null : !item.getFilter());
- if (item.getFilter() != null) updateFilter(item.getFilter());
- });
}
private void setRecyclerView() {
@@ -107,9 +103,26 @@ public class VodActivity extends BaseActivity {
mBinding.pager.setAdapter(mPageAdapter = new PageAdapter(getSupportFragmentManager()));
}
- private void updateFilter(boolean filter) {
- mAdapter.notifyArrayItemRangeChanged(0, mAdapter.size());
- getVodFragment().toggleFilter(filter);
+ private void updateFilter(Class item) {
+ if (item.getFilter() != null) {
+ item.toggleFilter();
+ getVodFragment().toggleFilter(item.getFilter());
+ mAdapter.notifyArrayItemRangeChanged(0, mAdapter.size());
+ }
+ }
+
+ @Override
+ public boolean dispatchKeyEvent(KeyEvent event) {
+ boolean isMenuUp = event.getAction() == KeyEvent.ACTION_UP && event.getKeyCode() == KeyEvent.KEYCODE_MENU;
+ if (isMenuUp) updateFilter(mResult.getTypes().get(mBinding.pager.getCurrentItem()));
+ return super.dispatchKeyEvent(event);
+ }
+
+ @Override
+ public void onBackPressed() {
+ Class item = mResult.getTypes().get(mBinding.pager.getCurrentItem());
+ if (item.getFilter()) updateFilter(item);
+ else super.onBackPressed();
}
private VodFragment getVodFragment() {
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java
index 2e4a167b7..a7516737a 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java
@@ -12,6 +12,7 @@ import androidx.appcompat.app.AlertDialog;
import com.fongmi.android.tv.databinding.DialogConfigBinding;
import com.fongmi.android.tv.event.ServerEvent;
import com.fongmi.android.tv.server.Server;
+import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.QRCode;
import com.fongmi.android.tv.utils.ResUtil;
@@ -57,6 +58,7 @@ public class ConfigDialog implements DialogInterface.OnDismissListener {
}
private void initEvent() {
+ binding.history.setOnClickListener(this::onHistory);
binding.positive.setOnClickListener(this::onPositive);
binding.negative.setOnClickListener(this::onNegative);
binding.text.setOnEditorActionListener((textView, actionId, event) -> {
@@ -75,6 +77,10 @@ public class ConfigDialog implements DialogInterface.OnDismissListener {
dialog.dismiss();
}
+ private void onHistory(View view) {
+ Notify.show("尚未開發");
+ }
+
@Subscribe(threadMode = ThreadMode.MAIN)
public void onServerEvent(ServerEvent event) {
if (event.getType() != ServerEvent.Type.API) return;
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomHorizontalGridView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomHorizontalGridView.java
index 793c998ee..266a6f777 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomHorizontalGridView.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomHorizontalGridView.java
@@ -55,16 +55,7 @@ public class CustomHorizontalGridView extends HorizontalGridView {
}
@Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_DOWN) {
- if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
- if (getSelectedPosition() != 0) {
- if (getVisibility() != View.VISIBLE) setVisibility(View.VISIBLE);
- setSelectedPositionSmooth(0);
- return true;
- }
- }
- }
+ public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
return super.dispatchKeyEvent(event) || executeKeyEvent(event);
}
diff --git a/app/src/leanback/res/layout/dialog_config.xml b/app/src/leanback/res/layout/dialog_config.xml
index 411b533cf..51a954463 100644
--- a/app/src/leanback/res/layout/dialog_config.xml
+++ b/app/src/leanback/res/layout/dialog_config.xml
@@ -29,36 +29,46 @@
android:layout_alignStart="@+id/text"
android:layout_alignBottom="@+id/code"
android:layout_marginTop="16dp"
+ android:gravity="end"
android:orientation="horizontal">
-
-
-
diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Class.java b/app/src/main/java/com/fongmi/android/tv/bean/Class.java
index 6d333d928..b58d3827a 100644
--- a/app/src/main/java/com/fongmi/android/tv/bean/Class.java
+++ b/app/src/main/java/com/fongmi/android/tv/bean/Class.java
@@ -35,6 +35,11 @@ public class Class {
return filter;
}
+ public void toggleFilter() {
+ if (getFilter() == null) return;
+ setFilter(!getFilter());
+ }
+
@Override
public boolean equals(Object obj) {
if (this == obj) return true;