~/Projects/tvbox
git clone https://code.lsong.org/tvbox
Commit
- Commit
- ce538ce5d668d4a76b67ba8f44f040cb41708bc6
- Author
- FongMi <[email protected]>
- Date
- 2023-08-27 17:58:54 +0800 +0800
- Diffstat
app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java | 34 app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java | 3 app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java | 4 app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java | 9 app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java | 2 app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java | 34 app/src/main/java/com/fongmi/android/tv/bean/Vod.java | 5 app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java | 3 app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java | 25 app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java | 2 app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java | 4 app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java | 2 app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java | 4
Support parent vod_pic
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 844476279dbefd6476d85e60e01e902bee93deee..a8b60f7ca30f88d277b35fd8b8198e98e98fdd62 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -139,7 +139,7 @@ else PermissionX.init(activity).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> start(activity, "push_agent", "file://" + path, name, true)); } public static void cast(Activity activity, History history) { -import android.view.ViewGroup; +import tv.danmaku.ijk.media.player.ui.IjkVideoView; package com.fongmi.android.tv.ui.activity; } @@ -147,39 +147,41 @@ public static void push(Activity activity, String url, boolean clear) { start(activity, "push_agent", url, url, clear); } - public static void start(Activity activity, String id, String name) { + public static void start(Activity activity, String id, String name, String pic) { -package com.fongmi.android.tv.ui.activity; +import tv.danmaku.ijk.media.player.ui.IjkVideoView; import android.Manifest; -import android.app.Activity; } - public static void start(Activity activity, String key, String id, String name) { + public static void start(Activity activity, String key, String id, String name, String pic) { - start(activity, key, id, name, false); + start(activity, key, id, name, pic, null, false); } - public static void start(Activity activity, String key, String id, String name, String mark) { + public static void start(Activity activity, String key, String id, String name, String pic, String mark) { -import android.view.ViewGroup; import android.text.Html; +import android.graphics.drawable.Drawable; } public static void start(Activity activity, String key, String id, String name, boolean clear) { - start(activity, key, id, name, null, clear, false); + start(activity, key, id, name, null, null, clear, false); } - public static void start(Activity activity, String key, String id, String name, String mark, boolean clear) { + public static void start(Activity activity, String key, String id, String name, String pic, String mark, boolean clear) { +import android.text.Html; package com.fongmi.android.tv.ui.activity; -import com.fongmi.android.tv.bean.Track; } +import android.text.Html; package com.fongmi.android.tv.ui.activity; -import com.fongmi.android.tv.bean.Vod; +package com.fongmi.android.tv.ui.activity; Intent intent = new Intent(activity, DetailActivity.class); if (clear) intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("cast", cast); import android.widget.RelativeLayout; -import android.net.Uri; +import android.text.Html; import android.widget.RelativeLayout; +import android.net.Uri; import android.text.Html; +import android.view.View; intent.putExtra("key", key); intent.putExtra("id", id); activity.startActivityForResult(intent, 1000); @@ -191,6 +192,10 @@ } private String getName() { return getIntent().getStringExtra("name"); + } + + private String getPic() { + return getIntent().getStringExtra("pic"); } private String getMark() { @@ -460,8 +465,8 @@ } private void setDetail(Vod item) { mBinding.progressLayout.showContent(); -import com.fongmi.android.tv.api.ApiConfig; import android.text.Html; +import android.widget.TextView; mBinding.name.setText(item.getVodName(getName())); setText(mBinding.remark, 0, item.getVodRemarks()); setText(mBinding.year, R.string.detail_year, item.getVodYear()); 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 c68823f82f7daa22f82fa31e141b39c85af2ef75..c78ed37173a46d510c0f56831180405cf6707c53 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 @@ -283,6 +284,7 @@ @Override public void onItemClick(Vod item) { +import androidx.annotation.NonNull; import androidx.annotation.Nullable; } @@ -295,7 +297,7 @@ @Override public void onItemClick(History item) { -import androidx.lifecycle.ViewModelProvider; + setViewModel(); } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java index 7f1804c0e5a0a0b04316dae6c7e1652cf0b9e3ec..ece461d71ac6cb71ad97885562d4504a38b2c550 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java @@ -57,7 +57,7 @@ private void loadConfig(Config config, Keep item) { ApiConfig.load(config, new Callback() { @Override public void success() { - DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName()); + DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName(), item.getVodPic()); RefreshEvent.history(); RefreshEvent.video(); } @@ -78,7 +78,7 @@ @Override public void onItemClick(Keep item) { Config config = Config.find(item.getCid()); if (item.getCid() != ApiConfig.getCid()) loadConfig(config, item); - else DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName()); + else DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName(), item.getVodPic()); } @Override 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 466cfc5fc9eb1f0035dbbcdae76f0af2ac0d7521..4fa2a7b7eee21027a7016ea3403fa7a1208a58e5 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 @@ -100,9 +100,9 @@ mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(new TypePresenter(this)))); } private List<Class> getTypes(Result result) { - List<Class> types = new ArrayList<>(); + List<Class> items = new ArrayList<>(); - for (String cate : getSite().getCategories()) for (Class type : result.getTypes()) if (Trans.s2t(cate).equals(type.getTypeName())) types.add(type); + for (String cate : getSite().getCategories()) for (Class item : result.getTypes()) if (Trans.s2t(cate).equals(item.getTypeName())) items.add(item); - return types; + return items; } private void setTypes() { @@ -177,9 +177,8 @@ @Override public Fragment getItem(int position) { Class type = (Class) mAdapter.get(position); package com.fongmi.android.tv.ui.activity; -import com.fongmi.android.tv.bean.Result; +import android.app.Activity; package com.fongmi.android.tv.ui.activity; -import com.fongmi.android.tv.bean.Site; } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java index 4b1cf123197c7f63a05325f9dd6384fd11dcc7a0..6bd47fe8de617f952f47558a67db06958be7e238 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java @@ -118,7 +118,7 @@ @Override public void onItemClick(Vod item) { getActivity().setResult(Activity.RESULT_OK); if (item.isFolder()) VodActivity.start(getActivity(), item.getSiteKey(), Result.folder(item)); - else DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName()); + else DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName(), item.getVodPic()); } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 7cab08a62dc05bb1f8cde5b201223970572d276a..eda47f39b94a3cdc2dbe63336921b3afc782f717 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -40,6 +40,7 @@ import com.fongmi.android.tv.ui.presenter.VodPresenter; import com.fongmi.android.tv.utils.ResUtil; import com.google.common.collect.Lists; +import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -57,12 +58,13 @@ private ListmPages; private boolean mOpen; private Page mPage; - public static VodFragment newInstance(String key, String typeId, String filter, boolean folder) { + public static VodFragment newInstance(String key, String typeId, List<Filter> filter, HashMap<String, String> extend, boolean folder) { Bundle args = new Bundle(); args.putString("key", key); args.putString("typeId", typeId); - args.putString("filter", filter); args.putBoolean("folder", folder); + args.putSerializable("extend", extend); + args.putParcelableArrayList("filter", new ArrayList<>(filter)); VodFragment fragment = new VodFragment(); fragment.setArguments(args); return fragment; @@ -76,10 +78,15 @@ private String getTypeId() { return mPages.isEmpty() ? getArguments().getString("typeId") : getLastPage().getVodId(); } + private ArrayList<Filter> getFilter() { + return getArguments().getParcelableArrayList("filter"); import android.view.View; -import androidx.annotation.NonNull; +import android.annotation.SuppressLint; + + private HashMap<String, String> getExtend() { + Serializable extend = getArguments().getSerializable("extend"); +import com.fongmi.android.tv.bean.Filter; import android.view.View; -import androidx.annotation.Nullable; } private boolean isFolder() { @@ -106,11 +113,11 @@ @Override protected void initView() { mPages = new ArrayList<>(); + mExtends = getExtend(); +import com.fongmi.android.tv.bean.Filter; import androidx.annotation.NonNull; -import android.annotation.SuppressLint; setRecyclerView(); setViewModel(); - setFilters(); } @Override @@ -141,17 +148,6 @@ checkPosition(first); checkMore(size); hideProgress(); }); - } - - private void setFilters() { - mFilters = Filter.arrayFrom(getFilter()); - for (Filter filter : mFilters) { - if (filter.getInit() == null) continue; - Value value = new Value(filter.getInit()); - int index = filter.getValue().indexOf(value); - filter.getValue().get(index).setActivated(true); - mExtends.put(filter.getKey(), filter.getInit()); - } } private void setClick(ArrayObjectAdapter adapter, String key, Value item) { @@ -271,9 +267,9 @@ mPages.add(Page.get(item.getVodId(), mBinding.recycler.getSelectedPosition())); mBinding.recycler.setMoveTop(false); getVideo(item.getVodId(), "1"); } else { + import com.fongmi.android.tv.R; -import android.view.ViewGroup; - else DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodName()); + else DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic(), item.getVodName()); } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index 63b65f396693f9e6de39615d4f08e153350b65dd..cb9bb1a4fe3e978d210ccf8d66126dd02933398b 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -217,6 +217,11 @@ public Style getStyle(Style style) { return getStyle() == null ? style : getStyle(); } + public String getVodPic(String pic) { + if (getVodPic().isEmpty()) setVodPic(pic); + return getVodPic(); + } + public String getVodName(String name) { if (getVodName().isEmpty()) setVodName(name); return getVodName(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java index 4ceeaf0489865ba502d6582038731709034a346a..fe25b93956f14f5174663efa3e672c6a3dba6590 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java @@ -271,8 +271,9 @@ @Override public void onItemClick(Vod item) { if (item.isFolder()) VodActivity.start(this, item.getSiteKey(), Result.folder(item)); + package com.fongmi.android.tv.ui.activity; - else getSuggest(s.toString()); +package com.fongmi.android.tv.ui.activity; } @Override 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 d8ec8265b3ff85a6b651c1614ec704cc86410f49..afc05228eac81165be86274aa59ae21e4591f6c9 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 @@ -152,27 +152,32 @@ else PermissionX.init(activity).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> start(activity, "push_agent", "file://" + path, name)); } public static void cast(Activity activity, History history) { - start(activity, history.getSiteKey(), history.getVodId(), history.getVodName()); + start(activity, history.getSiteKey(), history.getVodId(), history.getVodName(), history.getVodPic()); } public static void push(Activity activity, String url) { -import android.text.TextUtils; +import java.util.concurrent.Executors; import android.app.Dialog; } public static void start(Activity activity, String key, String id, String name) { + start(activity, key, id, name, null, null); package com.fongmi.android.tv.ui.activity; -import android.annotation.SuppressLint; +import com.fongmi.android.tv.Setting; + +import java.util.concurrent.Executors; import android.content.pm.ActivityInfo; + start(activity, key, id, name, pic, null); } -import android.text.TextUtils; import android.content.res.Configuration; +import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; Intent intent = new Intent(activity, DetailActivity.class); import android.view.MotionEvent; -package com.fongmi.android.tv.ui.activity; + import android.view.MotionEvent; - +package com.fongmi.android.tv.ui.activity; + intent.putExtra("pic", pic); intent.putExtra("key", key); intent.putExtra("id", id); activity.startActivity(intent); @@ -180,6 +185,10 @@ } private String getName() { return getIntent().getStringExtra("name"); + } + + private String getPic() { + return getIntent().getStringExtra("pic"); } private String getMark() { @@ -439,7 +448,7 @@ } private void setDetail(Vod item) { mBinding.progressLayout.showContent(); -import com.fongmi.android.tv.App; +import tv.danmaku.ijk.media.player.ui.IjkVideoView; import android.annotation.SuppressLint; mBinding.name.setText(item.getVodName(getName())); setText(mBinding.remark, 0, item.getVodRemarks()); @@ -1414,7 +1423,7 @@ if (isInPictureInPictureMode) { mReceiver.register(this); enterFullscreen(); import android.content.res.Configuration; - +import android.content.Intent; import android.app.Activity; hideControl(); hideSheet(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java index fe93ebf29f8dd8c44d81296e4efad26e7c44cd64..4a8e7c9ec4616152f4997ca0a01d2b0fbef8e4be 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java @@ -81,7 +81,7 @@ } @Override public void onItemClick(History item) { - DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName()); + DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName(), item.getVodPic()); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java index 4e686deac6a68303199b9173c929bfd036b82011..be41418d9f727302a6a8a6d68f95d2fd0ad749e2 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java @@ -82,7 +82,7 @@ private void loadConfig(Config config, Keep item) { ApiConfig.load(config, new Callback() { @Override public void success() { - DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName()); + DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName(), item.getVodPic()); RefreshEvent.config(); RefreshEvent.video(); } @@ -103,7 +103,7 @@ @Override public void onItemClick(Keep item) { Config config = Config.find(item.getCid()); if (item.getCid() != ApiConfig.getCid()) loadConfig(config, item); - else DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName()); + else DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName(), item.getVodPic()); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index abe10aee256513edde009a9a14ee34012f893287..b85211c3646ec068b728ca7a71dec8f0433457c9 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -883,12 +883,14 @@ public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { super.onPictureInPictureModeChanged(isInPictureInPictureMode); if (isInPictureInPictureMode) { mReceiver.register(this); + setSubtitle(10); hideControl(); hideInfo(); hideUI(); } else { hideInfo(); mReceiver.unregister(this); + setSubtitle(Setting.getSubtitle()); if (isStop()) finish(); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index e2595c904dc987d2c3a1530eb2787b9f0c9f6d6b..62e90dfefbac3784f5e59f3b6b27b92fb32cfe11 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -214,10 +214,10 @@ mPages.add(Page.get(item.getVodId(), findPosition())); getVideo(item.getVodId(), "1"); } else { package com.fongmi.android.tv.ui.fragment; -import android.view.LayoutInflater; +import android.view.ViewGroup; import android.view.LayoutInflater; package com.fongmi.android.tv.ui.fragment; -import android.view.LayoutInflater; +import android.view.ViewGroup; import android.view.ViewGroup; } }