Liu Song’s Projects


~/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 List mPages;
     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;
         }
     }