diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 43f44b174..4bed54e4b 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -138,7 +138,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private List mBroken; private History mHistory; private Players mPlayers; - private EpisodeDialog mEpisodeDialog; private boolean background; private boolean fullscreen; private boolean initTrack; @@ -844,18 +843,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List else mBinding.danmaku.hide(); } - public void setEpisodeDialog(EpisodeDialog dialog) { - mEpisodeDialog = dialog; - } - private void onEpisodes() { - if (mEpisodeDialog != null) { - mEpisodeDialog.dismiss(); - mEpisodeDialog = null; - } else { - EpisodeDialog.create().episodes(getFlag().getEpisodes()).show(this); - hideControl(); - } + EpisodeDialog.create().episodes(getFlag().getEpisodes()).show(this); + hideControl(); } private void checkNext() { diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/EpisodeDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/EpisodeDialog.java index 1774b910a..1a6027109 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/EpisodeDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/EpisodeDialog.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.ui.dialog; import android.app.Dialog; +import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -18,11 +19,13 @@ import androidx.leanback.widget.OnChildViewHolderSelectedListener; import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.R; +import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.bean.Episode; import com.fongmi.android.tv.databinding.DialogEpisodeBinding; import com.fongmi.android.tv.ui.activity.VideoActivity; import com.fongmi.android.tv.ui.presenter.ArrayPresenter; import com.fongmi.android.tv.ui.presenter.EpisodePresenter; +import com.fongmi.android.tv.utils.KeyUtil; import com.fongmi.android.tv.utils.ResUtil; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -47,6 +50,13 @@ public class EpisodeDialog extends BaseDialog implements ArrayPresenter.OnClickL public Dialog onCreateDialog(Bundle savedInstanceState) { setStyle(STYLE_NORMAL, R.style.TransBottomSheetDialog); BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState); + dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { + @Override + public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { + if (activity.isFullscreen() && KeyUtil.isMenuKey(event) && Setting.getFullscreenMenuKey() == 1) dismiss(); + return false; + } + }); return dialog; } @@ -72,7 +82,6 @@ public class EpisodeDialog extends BaseDialog implements ArrayPresenter.OnClickL for (Fragment f : activity.getSupportFragmentManager().getFragments()) if (f instanceof BottomSheetDialogFragment) return; show(activity.getSupportFragmentManager(), null); this.activity = (VideoActivity) activity; - this.activity.setEpisodeDialog(this); } @Override