diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
index 6b89cd34e..3f941e8f5 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
@@ -446,6 +446,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (KeyUtil.isMenuKey(event)) showDialog();
+ if (KeyUtil.isActionDown(event) & KeyUtil.isDownKey(event) && getCurrentFocus() == mBinding.site) return mBinding.recycler.getChildAt(0).requestFocus();
return super.dispatchKeyEvent(event);
}
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 747a228da..bf8ff346d 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
@@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
import androidx.leanback.widget.HorizontalGridView;
import com.fongmi.android.tv.R;
+import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
public class CustomHorizontalGridView extends HorizontalGridView {
@@ -59,8 +60,8 @@ public class CustomHorizontalGridView extends HorizontalGridView {
}
public boolean executeKeyEvent(@NonNull KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT) return arrowScroll(FOCUS_LEFT);
- if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT) return arrowScroll(FOCUS_RIGHT);
+ if (KeyUtil.isActionDown(event) && KeyUtil.isLeftKey(event)) return arrowScroll(FOCUS_LEFT);
+ if (KeyUtil.isActionDown(event) && KeyUtil.isRightKey(event)) return arrowScroll(FOCUS_RIGHT);
return false;
}
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java
index 1caab46c7..b5e97573a 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java
@@ -50,21 +50,21 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
}
private void check(KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) {
+ if (KeyUtil.isActionDown(event) && KeyUtil.isLeftKey(event)) {
listener.onSeeking(subTime());
- } else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
+ } else if (KeyUtil.isActionDown(event) && KeyUtil.isRightKey(event)) {
listener.onSeeking(addTime());
- } else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event)) {
+ } else if (KeyUtil.isActionDown(event) && KeyUtil.isUpKey(event)) {
listener.onKeyUp();
- } else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isDownKey(event)) {
+ } else if (KeyUtil.isActionDown(event) && KeyUtil.isDownKey(event)) {
listener.onKeyDown();
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isLeftKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isLeftKey(event)) {
listener.onKeyLeft(holdTime);
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isRightKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isRightKey(event)) {
listener.onKeyRight(holdTime);
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isDigitKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isDigitKey(event)) {
onKeyDown(event.getKeyCode());
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isEnterKey(event)) {
listener.onKeyCenter();
} else if (KeyUtil.isMenuKey(event) || event.isLongPress() && KeyUtil.isEnterKey(event)) {
listener.onMenu();
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java
index fa53df34c..7f68d66eb 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java
@@ -47,19 +47,19 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
}
private void check(KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) {
+ if (KeyUtil.isActionDown(event) && KeyUtil.isLeftKey(event)) {
listener.onSeeking(subTime());
- } else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
+ } else if (KeyUtil.isActionDown(event) && KeyUtil.isRightKey(event)) {
listener.onSeeking(addTime());
- } else if (event.getAction() == KeyEvent.ACTION_UP && (KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event))) {
+ } else if (KeyUtil.isActionUp(event) && (KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event))) {
App.post(() -> listener.onSeekTo(holdTime), 250);
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isUpKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isUpKey(event)) {
if (changeSpeed) listener.onSpeedEnd();
else listener.onKeyUp();
changeSpeed = false;
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isDownKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isDownKey(event)) {
listener.onKeyDown();
- } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) {
+ } else if (KeyUtil.isActionUp(event) && KeyUtil.isEnterKey(event)) {
listener.onKeyCenter();
} else if (event.isLongPress() && KeyUtil.isUpKey(event)) {
listener.onSpeedUp();
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLeftRightLayout.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLeftRightLayout.java
index d3d05589e..91cd77607 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLeftRightLayout.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLeftRightLayout.java
@@ -32,7 +32,7 @@ public class CustomLeftRightLayout extends LinearLayout {
}
private boolean hasEvent(KeyEvent event) {
- return event.getAction() == KeyEvent.ACTION_DOWN && ((leftListener != null && KeyUtil.isLeftKey(event)) || (rightListener != null && KeyUtil.isRightKey(event)));
+ return KeyUtil.isActionDown(event) && ((leftListener != null && KeyUtil.isLeftKey(event)) || (rightListener != null && KeyUtil.isRightKey(event)));
}
@Override
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
index 1921ababf..208220c92 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
@@ -60,8 +60,8 @@ public class CustomTitleView extends AppCompatTextView {
}
private void onKeyDown(KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) listener.showDialog();
- else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event)) onKeyUp();
+ if (KeyUtil.isActionUp(event) && KeyUtil.isEnterKey(event)) listener.showDialog();
+ else if (KeyUtil.isActionDown(event) && KeyUtil.isUpKey(event)) onKeyUp();
}
private void onKeyUp() {
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTypeView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTypeView.java
index 9d04b8fb6..b3c864d31 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTypeView.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTypeView.java
@@ -30,7 +30,7 @@ public class CustomTypeView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
- return !coolDown && event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event);
+ return !coolDown && KeyUtil.isActionDown(event) && KeyUtil.isUpKey(event);
}
@Override
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomUpDownView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomUpDownView.java
index 522f717e2..36485bce6 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomUpDownView.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomUpDownView.java
@@ -32,7 +32,7 @@ public class CustomUpDownView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
- return event.getAction() == KeyEvent.ACTION_DOWN && ((upListener != null && KeyUtil.isUpKey(event)) || (downListener != null && KeyUtil.isDownKey(event)));
+ return KeyUtil.isActionDown(event) && ((upListener != null && KeyUtil.isUpKey(event)) || (downListener != null && KeyUtil.isDownKey(event)));
}
@Override
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java
index d14b586c8..35e19c140 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java
@@ -17,6 +17,7 @@ import androidx.annotation.Nullable;
import androidx.viewpager.widget.ViewPager;
import com.fongmi.android.tv.R;
+import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
public class CustomViewPager extends ViewPager {
@@ -46,8 +47,8 @@ public class CustomViewPager extends ViewPager {
@Override
public boolean executeKeyEvent(@NonNull KeyEvent event) {
if (findFocus() instanceof TextView) return false;
- if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT) return arrowScroll(FOCUS_LEFT);
- if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT) return arrowScroll(FOCUS_RIGHT);
+ if (KeyUtil.isActionDown(event) && KeyUtil.isLeftKey(event)) return arrowScroll(FOCUS_LEFT);
+ if (KeyUtil.isActionDown(event) && KeyUtil.isRightKey(event)) return arrowScroll(FOCUS_RIGHT);
return false;
}
diff --git a/app/src/leanback/java/com/fongmi/android/tv/utils/KeyUtil.java b/app/src/leanback/java/com/fongmi/android/tv/utils/KeyUtil.java
index 32ee50b5c..67da7b323 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/utils/KeyUtil.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/utils/KeyUtil.java
@@ -35,4 +35,12 @@ public class KeyUtil {
public static boolean isMenuKey(KeyEvent event) {
return event.getAction() == KeyEvent.ACTION_UP && event.getKeyCode() == KeyEvent.KEYCODE_MENU;
}
+
+ public static boolean isActionDown(KeyEvent event) {
+ return event.getAction() == KeyEvent.ACTION_DOWN;
+ }
+
+ public static boolean isActionUp(KeyEvent event) {
+ return event.getAction() == KeyEvent.ACTION_UP;
+ }
}
diff --git a/app/src/leanback/res/layout/activity_home.xml b/app/src/leanback/res/layout/activity_home.xml
index d957e780f..3e0a12a1f 100644
--- a/app/src/leanback/res/layout/activity_home.xml
+++ b/app/src/leanback/res/layout/activity_home.xml
@@ -6,56 +6,50 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
-
-
-
+
-
-
-
+
-
+