pull/171/head
FongMi 3 years ago
parent 18f369c703
commit 9357c9839e
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  3. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  4. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java
  5. 22
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java
  6. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java
  7. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java
  8. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomMic.java
  9. 10
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
  10. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTypeView.java
  11. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomUpDownView.java
  12. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/BufferDialog.java
  13. 38
      app/src/leanback/java/com/fongmi/android/tv/utils/KeyUtil.java
  14. 5
      app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java
  15. 33
      app/src/main/java/com/fongmi/android/tv/utils/Utils.java

@ -49,6 +49,7 @@ import com.fongmi.android.tv.ui.presenter.ProgressPresenter;
import com.fongmi.android.tv.ui.presenter.VodPresenter;
import com.fongmi.android.tv.utils.Clock;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
@ -393,7 +394,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (Utils.isMenuKey(event)) showDialog();
if (KeyUtil.isMenuKey(event)) showDialog();
return super.dispatchKeyEvent(event);
}

@ -27,6 +27,7 @@ import com.fongmi.android.tv.ui.custom.CustomKeyboard;
import com.fongmi.android.tv.ui.custom.CustomTextListener;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.fongmi.android.tv.ui.custom.dialog.SiteDialog;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.net.OkHttp;
import com.google.common.net.HttpHeaders;
@ -145,7 +146,7 @@ public class SearchActivity extends BaseActivity implements WordAdapter.OnClickL
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (Utils.isMenuKey(event)) showDialog();
if (KeyUtil.isMenuKey(event)) showDialog();
return super.dispatchKeyEvent(event);
}

@ -74,6 +74,7 @@ import com.fongmi.android.tv.ui.presenter.QuickPresenter;
import com.fongmi.android.tv.utils.Clock;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Sniffer;
@ -1355,7 +1356,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (isFullscreen() && Utils.isMenuKey(event)) onToggle();
if (isFullscreen() && KeyUtil.isMenuKey(event)) onToggle();
if (isVisible(mBinding.control.getRoot())) setR1Callback();
if (isVisible(mBinding.control.getRoot())) mFocus2 = getCurrentFocus();
if (isFullscreen() && isGone(mBinding.control.getRoot()) && mKeyDown.hasEvent(event)) return mKeyDown.onKeyDown(event);

@ -28,8 +28,8 @@ import com.fongmi.android.tv.databinding.ActivityVodBinding;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.fragment.VodFragment;
import com.fongmi.android.tv.ui.presenter.TypePresenter;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.utils.Prefers;
import com.github.catvod.utils.Trans;
@ -161,7 +161,7 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (Utils.isMenuKey(event)) updateFilter((Class) mAdapter.get(mBinding.pager.getCurrentItem()));
if (KeyUtil.isMenuKey(event)) updateFilter((Class) mAdapter.get(mBinding.pager.getCurrentItem()));
return super.dispatchKeyEvent(event);
}

@ -10,8 +10,8 @@ import androidx.annotation.NonNull;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
@ -46,7 +46,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
}
public boolean hasEvent(KeyEvent event) {
return Utils.isEnterKey(event) || Utils.isUpKey(event) || Utils.isDownKey(event) || Utils.isLeftKey(event) || Utils.isRightKey(event) || Utils.isDigitKey(event) || Utils.isMenuKey(event) || event.isLongPress();
return KeyUtil.isEnterKey(event) || KeyUtil.isUpKey(event) || KeyUtil.isDownKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || KeyUtil.isDigitKey(event) || KeyUtil.isMenuKey(event) || event.isLongPress();
}
public void onKeyDown(KeyEvent event) {
@ -54,25 +54,25 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
}
private void check(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isLeftKey(event)) {
if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) {
listener.onSeeking(subTime());
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isRightKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
listener.onSeeking(addTime());
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isUpKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event)) {
if (Setting.isInvert()) listener.onKeyDown();
else listener.onKeyUp();
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isDownKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isDownKey(event)) {
if (Setting.isInvert()) listener.onKeyUp();
else listener.onKeyDown();
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isLeftKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isLeftKey(event)) {
listener.onKeyLeft(holdTime);
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isRightKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isRightKey(event)) {
listener.onKeyRight(holdTime);
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isDigitKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isDigitKey(event)) {
onKeyDown(event.getKeyCode());
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isEnterKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) {
listener.onKeyCenter();
} else if (Utils.isMenuKey(event) || event.isLongPress() && Utils.isEnterKey(event)) {
} else if (KeyUtil.isMenuKey(event) || event.isLongPress() && KeyUtil.isEnterKey(event)) {
listener.onMenu();
}
}

@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
@ -56,7 +57,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
}
public boolean hasEvent(KeyEvent event) {
return Utils.isEnterKey(event) || Utils.isUpKey(event) || Utils.isDownKey(event) || Utils.isLeftKey(event) || Utils.isRightKey(event);
return KeyUtil.isEnterKey(event) || KeyUtil.isUpKey(event) || KeyUtil.isDownKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event);
}
public boolean onKeyDown(KeyEvent event) {
@ -65,21 +66,21 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
}
private void check(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isLeftKey(event)) {
if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) {
listener.onSeeking(subTime());
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isRightKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
listener.onSeeking(addTime());
} else if (event.getAction() == KeyEvent.ACTION_UP && (Utils.isLeftKey(event) || Utils.isRightKey(event))) {
} else if (event.getAction() == KeyEvent.ACTION_UP && (KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event))) {
App.post(() -> listener.onSeekTo(holdTime), 250);
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isUpKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isUpKey(event)) {
if (changeSpeed) listener.onSpeedEnd();
else listener.onKeyUp();
changeSpeed = false;
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isDownKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isDownKey(event)) {
listener.onKeyDown();
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isEnterKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) {
listener.onKeyCenter();
} else if (event.isLongPress() && Utils.isUpKey(event)) {
} else if (event.isLongPress() && KeyUtil.isUpKey(event)) {
listener.onSpeedUp();
changeSpeed = true;
}

@ -10,7 +10,7 @@ import androidx.annotation.Nullable;
import androidx.leanback.widget.VerticalGridView;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.Utils;
import com.fongmi.android.tv.utils.KeyUtil;
public class CustomLiveListView extends VerticalGridView {
@ -50,8 +50,8 @@ public class CustomLiveListView extends VerticalGridView {
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
if (getVisibility() == View.GONE || event.getAction() != KeyEvent.ACTION_DOWN) return super.dispatchKeyEvent(event);
if (getVisibility() == View.VISIBLE) listener.setUITimer();
if (Utils.isDownKey(event)) return onKeyDown();
if (Utils.isUpKey(event)) return onKeyUp();
if (KeyUtil.isDownKey(event)) return onKeyDown();
if (KeyUtil.isUpKey(event)) return onKeyUp();
return super.dispatchKeyEvent(event);
}

@ -17,8 +17,8 @@ import androidx.appcompat.widget.AppCompatImageView;
import androidx.fragment.app.FragmentActivity;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.bassaer.library.MDColor;
import com.permissionx.guolindev.PermissionX;
@ -96,7 +96,7 @@ public class CustomMic extends AppCompatImageView {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (isListen() && Utils.isBackKey(event)) return stop();
if (isListen() && KeyUtil.isBackKey(event)) return stop();
else return super.dispatchKeyEvent(event);
}
}

@ -14,8 +14,8 @@ import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import java.util.List;
@ -39,7 +39,7 @@ public class CustomTitleView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return Utils.isEnterKey(event) || Utils.isLeftKey(event) || Utils.isRightKey(event);
return KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event);
}
@Override
@ -57,11 +57,11 @@ public class CustomTitleView extends AppCompatTextView {
}
private boolean onKeyDown(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && Utils.isEnterKey(event)) {
if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) {
listener.showDialog();
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isLeftKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) {
listener.setSite(getSite(true));
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isRightKey(event)) {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
listener.setSite(getSite(false));
}
return true;

@ -10,7 +10,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.utils.Utils;
import com.fongmi.android.tv.utils.KeyUtil;
public class CustomTypeView extends AppCompatTextView {
@ -30,7 +30,7 @@ public class CustomTypeView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return !coolDown && event.getAction() == KeyEvent.ACTION_DOWN && Utils.isUpKey(event);
return !coolDown && event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event);
}
@Override

@ -8,7 +8,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import com.fongmi.android.tv.utils.Utils;
import com.fongmi.android.tv.utils.KeyUtil;
public class CustomUpDownView extends AppCompatTextView {
@ -32,7 +32,7 @@ public class CustomUpDownView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return event.getAction() == KeyEvent.ACTION_DOWN && (Utils.isUpKey(event) || Utils.isDownKey(event));
return event.getAction() == KeyEvent.ACTION_DOWN && (KeyUtil.isUpKey(event) || KeyUtil.isDownKey(event));
}
@Override
@ -42,8 +42,8 @@ public class CustomUpDownView extends AppCompatTextView {
}
private boolean onKeyDown(KeyEvent event) {
if (Utils.isUpKey(event)) addListener.onAdd();
if (Utils.isDownKey(event)) subListener.onSud();
if (KeyUtil.isUpKey(event)) addListener.onAdd();
if (KeyUtil.isDownKey(event)) subListener.onSud();
return true;
}

@ -8,7 +8,7 @@ import androidx.fragment.app.FragmentActivity;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.databinding.DialogBufferBinding;
import com.fongmi.android.tv.impl.BufferCallback;
import com.fongmi.android.tv.utils.Utils;
import com.fongmi.android.tv.utils.KeyUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class BufferDialog {
@ -45,7 +45,7 @@ public class BufferDialog {
private void initEvent() {
binding.slider.addOnChangeListener((slider, value, fromUser) -> callback.setBuffer((int) value));
binding.slider.setOnKeyListener((view, keyCode, event) -> {
boolean enter = Utils.isEnterKey(event);
boolean enter = KeyUtil.isEnterKey(event);
if (enter) dialog.dismiss();
return enter;
});

@ -0,0 +1,38 @@
package com.fongmi.android.tv.utils;
import android.view.KeyEvent;
public class KeyUtil {
public static boolean isEnterKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER || event.getKeyCode() == KeyEvent.KEYCODE_ENTER || event.getKeyCode() == KeyEvent.KEYCODE_SPACE || event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_ENTER;
}
public static boolean isUpKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP || event.getKeyCode() == KeyEvent.KEYCODE_CHANNEL_UP || event.getKeyCode() == KeyEvent.KEYCODE_PAGE_UP || event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_PREVIOUS;
}
public static boolean isDownKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_CHANNEL_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_PAGE_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_NEXT;
}
public static boolean isLeftKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT;
}
public static boolean isRightKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT;
}
public static boolean isBackKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_BACK;
}
public static boolean isDigitKey(KeyEvent event) {
return event.getKeyCode() >= KeyEvent.KEYCODE_0 && event.getKeyCode() <= KeyEvent.KEYCODE_9 || event.getKeyCode() >= KeyEvent.KEYCODE_NUMPAD_0 && event.getKeyCode() <= KeyEvent.KEYCODE_NUMPAD_9;
}
public static boolean isMenuKey(KeyEvent event) {
return event.getAction() == KeyEvent.ACTION_UP && event.getKeyCode() == KeyEvent.KEYCODE_MENU;
}
}

@ -1,7 +1,5 @@
package com.fongmi.android.tv.utils;
import android.text.TextUtils;
import androidx.media3.common.util.UriUtil;
import com.fongmi.android.tv.server.Server;
@ -16,9 +14,8 @@ public class UrlUtil {
}
public static String convert(String baseUrl, String path) {
if (TextUtils.isEmpty(path)) return "";
if (path.startsWith("clan")) return checkClan(path);
return UriUtil.resolve(baseUrl, path);
return path.isEmpty() ? "" : UriUtil.resolve(baseUrl, path);
}
public static String convert(String url) {

@ -8,7 +8,6 @@ import android.content.Context;
import android.os.Build;
import android.os.IBinder;
import android.provider.Settings;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@ -21,38 +20,6 @@ import com.permissionx.guolindev.PermissionX;
public class Utils {
public static boolean isEnterKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER || event.getKeyCode() == KeyEvent.KEYCODE_ENTER || event.getKeyCode() == KeyEvent.KEYCODE_SPACE || event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_ENTER;
}
public static boolean isUpKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP || event.getKeyCode() == KeyEvent.KEYCODE_CHANNEL_UP || event.getKeyCode() == KeyEvent.KEYCODE_PAGE_UP || event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_PREVIOUS;
}
public static boolean isDownKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_CHANNEL_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_PAGE_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_NEXT;
}
public static boolean isLeftKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT;
}
public static boolean isRightKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT;
}
public static boolean isBackKey(KeyEvent event) {
return event.getKeyCode() == KeyEvent.KEYCODE_BACK;
}
public static boolean isDigitKey(KeyEvent event) {
return event.getKeyCode() >= KeyEvent.KEYCODE_0 && event.getKeyCode() <= KeyEvent.KEYCODE_9 || event.getKeyCode() >= KeyEvent.KEYCODE_NUMPAD_0 && event.getKeyCode() <= KeyEvent.KEYCODE_NUMPAD_9;
}
public static boolean isMenuKey(KeyEvent event) {
return event.getAction() == KeyEvent.ACTION_UP && event.getKeyCode() == KeyEvent.KEYCODE_MENU;
}
public static void toggleFullscreen(Activity activity, boolean fullscreen) {
if (fullscreen) hideSystemUI(activity);
else showSystemUI(activity);

Loading…
Cancel
Save