From 51b557a5bd0ecfd54aa968ee835aa78e3daa92e4 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 7 May 2024 17:42:27 +0800 Subject: [PATCH 1/9] fix bug --- .../java/com/fongmi/android/tv/ui/activity/HomeActivity.java | 1 + 1 file changed, 1 insertion(+) 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 bd6870aa9..c68f2171b 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 @@ -304,6 +304,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen } private void setConfig(Config config, String success) { + if (TextUtils.isEmpty(config.getUrl())) return; if (config.getUrl().startsWith("file") && !PermissionX.isGranted(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) { PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config, success)); } else { From e6ecbf25e87dcc7eeab4cede1b27aaa9e1d2afb2 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 7 May 2024 17:50:30 +0800 Subject: [PATCH 2/9] fix bug --- .../java/com/fongmi/android/tv/ui/activity/HomeActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c68f2171b..00e6753f4 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 @@ -304,7 +304,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen } private void setConfig(Config config, String success) { - if (TextUtils.isEmpty(config.getUrl())) return; if (config.getUrl().startsWith("file") && !PermissionX.isGranted(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) { PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config, success)); } else { @@ -393,7 +392,8 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen FileUtil.clearCache(new Callback() { @Override public void success() { - setConfig(VodConfig.get().getConfig().json("").save(), ResUtil.getString(R.string.config_refreshed)); + Config config = VodConfig.get().getConfig().json("").save(); + if (!config.isEmpty()) setConfig(config, ResUtil.getString(R.string.config_refreshed)); } }); } From 189b8023bc2472644f9903c726d4c97bd2164ec3 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 7 May 2024 17:51:59 +0800 Subject: [PATCH 3/9] fix bug --- .../java/com/fongmi/android/tv/ui/fragment/VodFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 358674750..36be17359 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 @@ -239,7 +239,8 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal FileUtil.clearCache(new Callback() { @Override public void success() { - setConfig(VodConfig.get().getConfig().json("").save(), ResUtil.getString(R.string.config_refreshed)); + Config config = VodConfig.get().getConfig().json("").save(); + if (!config.isEmpty()) setConfig(config, ResUtil.getString(R.string.config_refreshed)); } }); return true; From 5559b3732a0eab34e2a90a5856fb5f50a28cd5d4 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 9 May 2024 12:28:40 +0800 Subject: [PATCH 4/9] exo concat --- .../com/fongmi/android/tv/player/ExoUtil.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 00f7008fe..1937efb4e 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -27,6 +27,7 @@ import androidx.media3.exoplayer.DefaultRenderersFactory; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.LoadControl; import androidx.media3.exoplayer.RenderersFactory; +import androidx.media3.exoplayer.source.ConcatenatingMediaSource2; import androidx.media3.exoplayer.source.DefaultMediaSourceFactory; import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.trackselection.DefaultTrackSelector; @@ -121,7 +122,25 @@ public class ExoUtil { return null; } + private static MediaSource getConcatSource(Result result, Sub sub, int errorCode) { + String url = result.getRealUrl(); + String[] urls = url.split("\\*\\*\\*"); + ConcatenatingMediaSource2.Builder concatenatingMediaSource = new ConcatenatingMediaSource2.Builder(); + for(String one : urls) { + if (TextUtils.isEmpty(one)) continue; + String[] oneInfo = one.split("\\|\\|\\|"); + if (oneInfo.length < 2) continue; + String oneUrl = oneInfo[0]; + String oneDuration = oneInfo[1]; + long duration = Long.parseLong(oneDuration); + concatenatingMediaSource.add(getSource(result.getHeaders(), oneUrl, result.getFormat(), result.getSubs(), sub, null, errorCode), duration); + } + return concatenatingMediaSource.build(); + } + public static MediaSource getSource(Result result, Sub sub, int errorCode) { + String url = result.getRealUrl(); + if (url.contains("***")) return getConcatSource(result, sub, errorCode); return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), sub, null, errorCode); } From de19532c34b3ca9588557186e7cbe261f5fa0a00 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 9 May 2024 15:23:49 +0800 Subject: [PATCH 5/9] exo concat --- app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 1937efb4e..7de843246 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -140,7 +140,7 @@ public class ExoUtil { public static MediaSource getSource(Result result, Sub sub, int errorCode) { String url = result.getRealUrl(); - if (url.contains("***")) return getConcatSource(result, sub, errorCode); + if (url.contains("***") && url.contains("|||")) return getConcatSource(result, sub, errorCode); return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), sub, null, errorCode); } From be2a8b55e0de527ede23a0ed909e2333c8158ac6 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 9 May 2024 16:24:38 +0800 Subject: [PATCH 6/9] about --- app/src/main/res/values-zh-rCN/strings.xml | 3 +- app/src/main/res/values-zh-rTW/strings.xml | 3 +- app/src/main/res/values/strings.xml | 1 + .../tv/ui/fragment/SettingCustomFragment.java | 23 ++++++- .../tv/ui/fragment/SettingFragment.java | 24 +------ .../mobile/res/layout/fragment_setting.xml | 65 +++++++------------ .../res/layout/fragment_setting_custom.xml | 46 +++++++++++++ 7 files changed, 98 insertions(+), 67 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ad0c89ac0..1b7f7cb31 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -87,7 +87,7 @@ 首页源锁定 无痕模式 小窗返回键 - 首页显示站源名 + 首页显示站源 首页UI 首页按钮 DoH @@ -96,6 +96,7 @@ 备份 自动 版本 + 关于 权限 关闭 开启 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 42b64179e..4897a7e3f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -87,7 +87,7 @@ 首頁源鎖定 無痕模式 小窗返回鍵 - 首頁显示站源名 + 首頁显示站源 首頁UI 首頁按鈕 DoH @@ -96,6 +96,7 @@ 備份 自動 版本 + 關於 權限 關閉 開啟 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 87dc0f09a..5f71105a9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -96,6 +96,7 @@ Backup Auto Version + About Permission Off On diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java index 600e42cf0..2a6ec3a66 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.viewbinding.ViewBinding; +import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.databinding.FragmentSettingCustomBinding; @@ -15,6 +16,7 @@ import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.ui.base.BaseFragment; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Util; +import com.github.catvod.utils.Shell; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Locale; @@ -23,8 +25,8 @@ public class SettingCustomFragment extends BaseFragment { private FragmentSettingCustomBinding mBinding; private String[] size; - private String[] lang; + private String[] configCache; public static SettingCustomFragment newInstance() { return new SettingCustomFragment(); @@ -48,6 +50,7 @@ public class SettingCustomFragment extends BaseFragment { mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch())); mBinding.homeDisplayNameText.setText(getSwitch(Setting.isHomeDisplayName())); mBinding.languageText.setText((lang = ResUtil.getStringArray(R.array.select_language))[Setting.getLanguage()]); + mBinding.configCacheText.setText((configCache = ResUtil.getStringArray(R.array.select_config_cache))[Setting.getConfigCache()]); } @Override @@ -61,6 +64,8 @@ public class SettingCustomFragment extends BaseFragment { mBinding.aggregatedSearch.setOnClickListener(this::setAggregatedSearch); mBinding.homeDisplayName.setOnClickListener(this::setHomeDisplayName); mBinding.language.setOnClickListener(this::setLanguage); + mBinding.configCache.setOnClickListener(this::setConfigCache); + mBinding.reset.setOnClickListener(this::onReset); } @@ -126,4 +131,20 @@ public class SettingCustomFragment extends BaseFragment { }).show(); } + private void setConfigCache(View view) { + int index = Setting.getConfigCache(); + Setting.putConfigCache(index = index == configCache.length - 1 ? 0 : ++index); + mBinding.configCacheText.setText(configCache[index]); + } + + private void onReset(View view) { + new MaterialAlertDialogBuilder(getActivity()).setTitle(R.string.dialog_reset_app).setMessage(R.string.dialog_reset_app_data).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> reset()).show(); + } + + private void reset() { + new Thread(() -> { + Shell.exec("pm clear " + App.get().getPackageName()); + }).start(); + } + } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index ec2e86708..a42d4d6f1 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -11,7 +11,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.viewbinding.ViewBinding; -import com.fongmi.android.tv.App; import com.fongmi.android.tv.BuildConfig; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; @@ -41,12 +40,10 @@ import com.fongmi.android.tv.ui.dialog.SiteDialog; import com.fongmi.android.tv.utils.FileChooser; import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Notify; -import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.bean.Doh; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; -import com.github.catvod.utils.Shell; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.permissionx.guolindev.PermissionX; @@ -57,7 +54,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit private FragmentSettingBinding mBinding; private int type; - private String[] configCache; public static SettingFragment newInstance() { return new SettingFragment(); @@ -90,8 +86,8 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit mBinding.backupText.setText(AppDatabase.getDate()); mBinding.dohText.setText(getDohList()[getDohIndex()]); mBinding.versionText.setText(BuildConfig.VERSION_NAME); + mBinding.aboutText.setText(BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_api + "-" + BuildConfig.FLAVOR_abi); mBinding.proxyText.setText(UrlUtil.scheme(Setting.getProxy())); - mBinding.configCacheText.setText((configCache = ResUtil.getStringArray(R.array.select_config_cache))[Setting.getConfigCache()]); setCacheText(); } @@ -128,8 +124,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit mBinding.wallRefresh.setOnClickListener(this::setWallRefresh); mBinding.doh.setOnClickListener(this::setDoh); mBinding.custom.setOnClickListener(this::onCustom); - mBinding.configCache.setOnClickListener(this::setConfigCache); - mBinding.reset.setOnClickListener(this::onReset); } @Override @@ -267,22 +261,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit getRoot().change(3); } - private void setConfigCache(View view) { - int index = Setting.getConfigCache(); - Setting.putConfigCache(index = index == configCache.length - 1 ? 0 : ++index); - mBinding.configCacheText.setText(configCache[index]); - } - - private void onReset(View view) { - new MaterialAlertDialogBuilder(getActivity()).setTitle(R.string.dialog_reset_app).setMessage(R.string.dialog_reset_app_data).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> reset()).show(); - } - - private void reset() { - new Thread(() -> { - Shell.exec("pm clear " + App.get().getPackageName()); - }).start(); - } - private void onVersion(View view) { Updater.get().force().release().start(getActivity()); } diff --git a/app/src/mobile/res/layout/fragment_setting.xml b/app/src/mobile/res/layout/fragment_setting.xml index 4c3098df4..d046b8dca 100644 --- a/app/src/mobile/res/layout/fragment_setting.xml +++ b/app/src/mobile/res/layout/fragment_setting.xml @@ -248,7 +248,7 @@ - - - - - - + tools:text="Google" /> + tools:text="http" /> + tools:text="1.0 MB" /> + tools:text="20231103" /> + tools:text="1.2.1" /> + tools:text="about" /> diff --git a/app/src/mobile/res/layout/fragment_setting_custom.xml b/app/src/mobile/res/layout/fragment_setting_custom.xml index 957008371..5c3d90d21 100644 --- a/app/src/mobile/res/layout/fragment_setting_custom.xml +++ b/app/src/mobile/res/layout/fragment_setting_custom.xml @@ -231,6 +231,52 @@ tools:text="中文" /> + + + + + + + + + + + + + + + + \ No newline at end of file From 5c2ddc8cb693162f3ef0fce7181b468066aed04e Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 9 May 2024 16:29:18 +0800 Subject: [PATCH 7/9] about --- .../tv/ui/activity/SettingActivity.java | 1 + .../leanback/res/layout/activity_setting.xml | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index 2900fcd03..72903ea5c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -83,6 +83,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit mBinding.dohText.setText(getDohList()[getDohIndex()]); mBinding.versionText.setText(BuildConfig.VERSION_NAME); mBinding.proxyText.setText(UrlUtil.scheme(Setting.getProxy())); + mBinding.aboutText.setText(BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_api + "-" + BuildConfig.FLAVOR_abi); mBinding.configCacheText.setText((configCache = ResUtil.getStringArray(R.array.select_config_cache))[Setting.getConfigCache()]); setCacheText(); } diff --git a/app/src/leanback/res/layout/activity_setting.xml b/app/src/leanback/res/layout/activity_setting.xml index a684e2c82..297e495c7 100644 --- a/app/src/leanback/res/layout/activity_setting.xml +++ b/app/src/leanback/res/layout/activity_setting.xml @@ -508,5 +508,41 @@ + + + + + + + + + + + \ No newline at end of file From cdb2d38fe9c64b650d3815065f4816895f891ec8 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 9 May 2024 16:39:36 +0800 Subject: [PATCH 8/9] about --- .../com/fongmi/android/tv/ui/fragment/SettingFragment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index a42d4d6f1..99dcb8ae9 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -124,6 +124,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit mBinding.wallRefresh.setOnClickListener(this::setWallRefresh); mBinding.doh.setOnClickListener(this::setDoh); mBinding.custom.setOnClickListener(this::onCustom); + mBinding.about.setOnClickListener(this::onAbout); } @Override @@ -261,6 +262,10 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit getRoot().change(3); } + private void onAbout(View view) { + mBinding.aboutText.setText(BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_api + "-" + BuildConfig.FLAVOR_abi); + } + private void onVersion(View view) { Updater.get().force().release().start(getActivity()); } From cf0603f47c796602ca7fd4c1b3e1309c43474a51 Mon Sep 17 00:00:00 2001 From: okjack Date: Fri, 10 May 2024 13:07:52 +0800 Subject: [PATCH 9/9] build.gradle --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 4d7be74be..41cccdc65 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 233 - versionName "0507" + versionName "0510" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]