diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index abb02eacc..df603918d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -40,12 +40,12 @@ import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.model.SiteViewModel; import com.fongmi.android.tv.player.ExoUtil; import com.fongmi.android.tv.player.Players; -import com.fongmi.android.tv.ui.custom.dialog.TrackDialog; import com.fongmi.android.tv.ui.adapter.EpisodeAdapter; import com.fongmi.android.tv.ui.adapter.FlagAdapter; import com.fongmi.android.tv.ui.adapter.ParseAdapter; import com.fongmi.android.tv.ui.custom.CustomKeyDownVod; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; +import com.fongmi.android.tv.ui.custom.dialog.TrackDialog; import com.fongmi.android.tv.utils.Clock; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Prefers; @@ -822,11 +822,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis @Override public void onDoubleTap() { - if (isFullscreen()) { - if (mPlayers.isPlaying()) onPause(true); - else onPlay(); - hideControl(); - } + if (mPlayers.isPlaying()) onPause(true); + else onPlay(); + hideControl(); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index ccc519a54..a14deea86 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -45,7 +45,6 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal private SiteViewModel mViewModel; private TypeAdapter mTypeAdapter; private PageAdapter mPageAdapter; - private boolean destroy; public static VodFragment newInstance() { return new VodFragment(); @@ -55,14 +54,6 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal return ApiConfig.get().getHome(); } - public boolean isDestroy() { - return destroy; - } - - public void setDestroy(boolean destroy) { - this.destroy = destroy; - } - @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return mBinding = FragmentVodBinding.inflate(inflater, container, false); @@ -91,17 +82,13 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal private void setRecyclerView() { mBinding.type.setHasFixedSize(true); mBinding.type.setItemAnimator(null); + mBinding.pager.setOffscreenPageLimit(-1); mBinding.type.setAdapter(mTypeAdapter = new TypeAdapter(this)); - mBinding.pager.setAdapter(mPageAdapter = new PageAdapter(getChildFragmentManager())); } private void setViewModel() { mViewModel = new ViewModelProvider(this).get(SiteViewModel.class); - mViewModel.result.observe(getViewLifecycleOwner(), result -> { - EventBus.getDefault().post(result); - setAdapter(result); - setDestroy(false); - }); + mViewModel.result.observe(getViewLifecycleOwner(), this::setAdapter); } private List getTypes(Result result) { @@ -116,7 +103,8 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal Boolean filter = getSite().isFilterable() ? false : null; for (Class item : mTypeAdapter.getTypes()) if (result.getFilters().containsKey(item.getTypeId())) item.setFilter(filter); for (Class item : mTypeAdapter.getTypes()) if (result.getFilters().containsKey(item.getTypeId())) item.setFilters(result.getFilters().get(item.getTypeId())); - mPageAdapter.notifyDataSetChanged(); + mBinding.pager.setAdapter(mPageAdapter = new PageAdapter(getChildFragmentManager())); + EventBus.getDefault().post(result); mBinding.pager.setCurrentItem(0); } @@ -166,10 +154,9 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal } private void homeContent() { - setDestroy(true); mTypeAdapter.clear(); - mPageAdapter.notifyDataSetChanged(); String home = getSite().getName(); + if (mPageAdapter != null) mPageAdapter.notifyDataSetChanged(); mBinding.title.setText(home.isEmpty() ? ResUtil.getString(R.string.app_name) : home); if (!getSite().getKey().isEmpty()) mViewModel.homeContent(); } @@ -206,14 +193,8 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal return mTypeAdapter.getItemCount(); } - @Override - public int getItemPosition(@NonNull Object object) { - return POSITION_NONE; - } - @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { - if (position != 0 && isDestroy()) super.destroyItem(container, position, object); } } }