From b0a69fd7420f96e8e79b1c573ade3190276b59d4 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 14 Dec 2023 14:23:04 +0800 Subject: [PATCH 1/9] Update glide --- app/build.gradle | 8 ++++---- .../main/java/com/fongmi/android/tv/utils/ImgUtil.java | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a0d8e2bc9..f04c03596 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -107,9 +107,9 @@ dependencies { implementation 'androidx.media:media:1.6.0' implementation 'cat.ereza:customactivityoncrash:2.4.0' implementation 'com.github.bassaer:materialdesigncolors:1.0.0' - implementation 'com.github.bumptech.glide:glide:4.15.1' - implementation 'com.github.bumptech.glide:annotations:4.15.1' - implementation 'com.github.bumptech.glide:okhttp3-integration:4.15.1' + implementation 'com.github.bumptech.glide:glide:4.16.0' + implementation 'com.github.bumptech.glide:annotations:4.16.0' + implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0' implementation 'com.github.jahirfiquitiva:TextDrawable:1.0.3' implementation 'com.github.TeamNewPipe:NewPipeExtractor:289db1178ab66694c23893e6a487d4708343c47b' implementation('com.github.thegrizzlylabs:sardine-android:0.8') { exclude group: 'com.squareup.okhttp3', module: 'okhttp' } @@ -139,5 +139,5 @@ dependencies { //mobileImplementation 'com.google.android.gms:play-services-cast-framework:21.3.0' mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } annotationProcessor 'androidx.room:room-compiler:2.6.1' - annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1' + annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index 6ae8eb26c..96bdb58d1 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -9,6 +9,7 @@ import android.text.TextUtils; import android.view.View; import android.widget.ImageView; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.bumptech.glide.Glide; @@ -124,14 +125,14 @@ public class ImgUtil { private static RequestListener getListener(ImageView view, ImageView.ScaleType scaleType) { return new RequestListener<>() { @Override - public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target target, boolean isFirstResource) { view.setScaleType(scaleType); view.setImageResource(R.drawable.ic_img_error); return true; } @Override - public boolean onResourceReady(Bitmap resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { + public boolean onResourceReady(@NonNull Bitmap resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { view.setScaleType(ImageView.ScaleType.CENTER_CROP); return false; } From bed87e9e4c0161add7bceda768acccbb7c86dc43 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 15 Dec 2023 00:01:38 +0800 Subject: [PATCH 2/9] Fix proxy --- .../java/com/github/catvod/net/OkHttp.java | 19 +++++++++++++------ ...roxySelector.java => OkProxySelector.java} | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) rename catvod/src/main/java/com/github/catvod/net/{ProxySelector.java => OkProxySelector.java} (97%) diff --git a/catvod/src/main/java/com/github/catvod/net/OkHttp.java b/catvod/src/main/java/com/github/catvod/net/OkHttp.java index 1db7bbdbd..18042d6fa 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkHttp.java +++ b/catvod/src/main/java/com/github/catvod/net/OkHttp.java @@ -1,6 +1,7 @@ package com.github.catvod.net; import android.net.Uri; +import android.text.TextUtils; import androidx.collection.ArrayMap; @@ -9,6 +10,7 @@ import com.github.catvod.utils.Path; import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; +import java.net.ProxySelector; import java.util.Map; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -28,10 +30,15 @@ public class OkHttp { private static final int TIMEOUT = 30 * 1000; private static final int CACHE = 100 * 1024 * 1024; + private static final ProxySelector defaultSelector; private DnsOverHttps dns; private OkHttpClient client; - private ProxySelector selector; + private OkProxySelector selector; + + static { + defaultSelector = ProxySelector.getDefault(); + } private static class Loader { static volatile OkHttp INSTANCE = new OkHttp(); @@ -52,14 +59,14 @@ public class OkHttp { } public void setProxy(String proxy) { - ProxySelector.setDefault(selector()); - selector().setProxy(proxy); + ProxySelector.setDefault(TextUtils.isEmpty(proxy) ? defaultSelector : selector()); + if (!TextUtils.isEmpty(proxy)) selector().setProxy(proxy); client = null; } - public static ProxySelector selector() { + public static OkProxySelector selector() { if (get().selector != null) return get().selector; - return get().selector = new ProxySelector(); + return get().selector = new OkProxySelector(); } public static OkHttpClient client() { @@ -133,7 +140,7 @@ public class OkHttp { private static OkHttpClient.Builder getBuilder() { OkHttpClient.Builder builder = new OkHttpClient.Builder().addInterceptor(new OkhttpInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier((hostname, session) -> true).sslSocketFactory(new SSLCompat(), SSLCompat.TM); - builder.proxySelector(selector()); + builder.proxySelector(ProxySelector.getDefault()); return builder; } } diff --git a/catvod/src/main/java/com/github/catvod/net/ProxySelector.java b/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java similarity index 97% rename from catvod/src/main/java/com/github/catvod/net/ProxySelector.java rename to catvod/src/main/java/com/github/catvod/net/OkProxySelector.java index ea8027235..2269ae1e6 100644 --- a/catvod/src/main/java/com/github/catvod/net/ProxySelector.java +++ b/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java @@ -14,7 +14,7 @@ import java.net.URI; import java.util.Collections; import java.util.List; -public class ProxySelector extends java.net.ProxySelector { +public class OkProxySelector extends java.net.ProxySelector { private List hosts; private Proxy proxy; From 6f454c07619930a15c63af5afaf01a7fbe6aba1c Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 15 Dec 2023 00:02:45 +0800 Subject: [PATCH 3/9] Update build.gradle --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index f04c03596..2c7ed2c32 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 210 - versionName "20231214" + versionName "20231215" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] From dbe4b28e57422182b2759de72c92170378f2537b Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 15 Dec 2023 14:03:20 +0800 Subject: [PATCH 5/9] Update build.gradle --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 2c7ed2c32..5ff6c0cbc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 210 - versionName "20231215" + versionName "20231215#2" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] From 054aeb6ae1aac50f5b223679d5ca5276bd71b38b Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 15 Dec 2023 14:55:06 +0800 Subject: [PATCH 6/9] Fix bug --- app/src/main/java/com/fongmi/android/tv/bean/Channel.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index 2b6861c62..fc999f6fe 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -293,10 +293,16 @@ public class Channel { } public Channel copy(Channel item) { + setPlayerType(item.getPlayerType()); + setReferer(item.getReferer()); + setHeader(item.getHeader()); setNumber(item.getNumber()); + setParse(item.getParse()); setLogo(item.getLogo()); setName(item.getName()); setUrls(item.getUrls()); + setDrm(item.getDrm()); + setEpg(item.getEpg()); setUa(item.getUa()); return this; } From 0aae97406ee67fcb91334fbb04a9d1b77761f7a7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 15 Dec 2023 15:16:03 +0800 Subject: [PATCH 7/9] [leanback] add video size for live --- .../android/tv/ui/activity/LiveActivity.java | 10 +++-- .../leanback/res/layout/view_widget_live.xml | 43 ++++++++++++++++++- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 332c1ed83..85ea3901d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -433,6 +433,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void showControl(View view) { mBinding.control.getRoot().setVisibility(View.VISIBLE); + mBinding.widget.top.setVisibility(View.VISIBLE); view.requestFocus(); setR2Callback(); hideInfo(); @@ -440,6 +441,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void hideControl() { mBinding.control.getRoot().setVisibility(View.GONE); + mBinding.widget.top.setVisibility(View.GONE); App.removeCallbacks(mR1); } @@ -449,13 +451,13 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void showInfo() { - mBinding.widget.info.setVisibility(View.VISIBLE); + mBinding.widget.bottom.setVisibility(View.VISIBLE); setR1Callback(); setInfo(); } private void hideInfo() { - mBinding.widget.info.setVisibility(View.GONE); + mBinding.widget.bottom.setVisibility(View.GONE); App.removeCallbacks(mR3); } @@ -572,6 +574,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mViewModel.getEpg(mChannel); mChannel.loadLogo(mBinding.widget.logo); mBinding.widget.name.setText(mChannel.getName()); + mBinding.widget.title.setText(mChannel.getName()); mBinding.widget.line.setText(mChannel.getLineText()); mBinding.widget.number.setText(mChannel.getNumber()); mBinding.control.line.setText(mChannel.getLineText()); @@ -666,6 +669,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mPlayers.reset(); setSpeedVisible(); setTrackVisible(true); + mBinding.widget.size.setText(mPlayers.getSizeText()); break; case Player.STATE_ENDED: nextChannel(); @@ -923,7 +927,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick public void onBackPressed() { if (isVisible(mBinding.control.getRoot())) { hideControl(); - } else if (isVisible(mBinding.widget.info)) { + } else if (isVisible(mBinding.widget.bottom)) { hideInfo(); } else if (isVisible(mBinding.recycler)) { hideUI(); diff --git a/app/src/leanback/res/layout/view_widget_live.xml b/app/src/leanback/res/layout/view_widget_live.xml index ac25eff01..c032ced21 100644 --- a/app/src/leanback/res/layout/view_widget_live.xml +++ b/app/src/leanback/res/layout/view_widget_live.xml @@ -4,6 +4,47 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + + + + + + Date: Fri, 15 Dec 2023 15:18:40 +0800 Subject: [PATCH 8/9] Clean code --- .../fongmi/android/tv/ui/activity/LiveActivity.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 85ea3901d..6e55678d9 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -435,7 +435,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.control.getRoot().setVisibility(View.VISIBLE); mBinding.widget.top.setVisibility(View.VISIBLE); view.requestFocus(); - setR2Callback(); + setR1Callback(); hideInfo(); } @@ -452,7 +452,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void showInfo() { mBinding.widget.bottom.setVisibility(View.VISIBLE); - setR1Callback(); + setR3Callback(); setInfo(); } @@ -478,11 +478,11 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void setR1Callback() { - App.post(mR3, Constant.INTERVAL_HIDE); + App.post(mR1, Constant.INTERVAL_HIDE); } - private void setR2Callback() { - App.post(mR1, Constant.INTERVAL_HIDE); + private void setR3Callback() { + App.post(mR3, Constant.INTERVAL_HIDE); } private void onToggle() { @@ -791,7 +791,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public boolean dispatchKeyEvent(KeyEvent event) { - if (isVisible(mBinding.control.getRoot())) setR2Callback(); + if (isVisible(mBinding.control.getRoot())) setR1Callback(); if (mKeyDown.hasEvent(event)) mKeyDown.onKeyDown(event); return super.dispatchKeyEvent(event); } From 43b65eca20e62a287f7f12223e188a906cb2db99 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 15 Dec 2023 15:20:15 +0800 Subject: [PATCH 9/9] Update build.gradle --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5ff6c0cbc..1239aae5e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.fongmi.android.tv" minSdk 21 targetSdk 28 - versionCode 210 - versionName "20231215#2" + versionCode 211 + versionName "2.1.1" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]