From d4acbd70ee893189463da4dba03ad54b9c2f2849 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 2 Nov 2022 16:50:06 +0800 Subject: [PATCH 01/10] Clean code --- .../java/com/fongmi/android/tv/ui/activity/HomeActivity.java | 2 +- app/src/main/java/com/fongmi/android/tv/player/Players.java | 2 +- 2 files 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 464d26126..36d7bf992 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 @@ -131,7 +131,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen int index = getRecommendIndex(); mViewModel.getResult().setValue(Result.empty()); if (mAdapter.size() > index) mAdapter.removeItems(index, mAdapter.size() - index); - if (ApiConfig.get().getHome().getName().isEmpty()) mBinding.title.setText(R.string.app_name); + if (ApiConfig.getHomeName().isEmpty()) mBinding.title.setText(R.string.app_name); else mBinding.title.setText(ApiConfig.getHomeName()); if (ApiConfig.get().getHome().getKey().isEmpty()) return; mViewModel.homeContent(); diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 8d473e85a..c4bae6ef2 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -192,8 +192,8 @@ public class Players implements Player.Listener, ParseTask.Callback { @Override public void onPlayerError(@NonNull PlaybackException error) { - setErrorCode(error.errorCode); PlayerEvent.error(R.string.error_play_format, true); + setErrorCode(error.errorCode); } @Override From 4667aab82a4e172da26b794bc63b9b28feb05555 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 2 Nov 2022 17:19:01 +0800 Subject: [PATCH 02/10] Fix wallpaper bug --- .../java/com/fongmi/android/tv/ui/activity/BaseActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java b/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java index 981185108..76072ecac 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java @@ -10,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.viewbinding.ViewBinding; +import com.fongmi.android.tv.R; import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Prefers; @@ -52,7 +53,8 @@ public abstract class BaseActivity extends AppCompatActivity { private void setWall() { File file = FileUtil.getWall(Prefers.getWall()); if (file.exists() && file.length() > 0) getWindow().setBackgroundDrawable(Drawable.createFromPath(file.getPath())); - else getWindow().setBackgroundDrawableResource(ResUtil.getDrawable(file.getName())); + else if (Prefers.getWall() > 0) getWindow().setBackgroundDrawableResource(ResUtil.getDrawable(file.getName())); + else getWindow().setBackgroundDrawableResource(R.drawable.wallpaper_1); } private void hackResources() { From ba6022e85e24485b07491b96263040285ac3a1e8 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 3 Nov 2022 00:30:20 +0800 Subject: [PATCH 03/10] Fix crash --- app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java | 2 +- app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java index 7f359dd25..bbd68ccd1 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java @@ -223,7 +223,7 @@ public class ApiConfig { } public Config getConfig() { - return config; + return config == null ? Config.vod() : config; } public Parse getParse() { diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java index 4402ca0b5..2885523ab 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java @@ -174,7 +174,7 @@ public class LiveConfig { } public Config getConfig() { - return config; + return config == null ? Config.live() : config; } public Live getHome() { From 2932f08e0c3944d1df7ad22e042b312e8e10e491 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 3 Nov 2022 14:46:43 +0800 Subject: [PATCH 05/10] Update decode --- .../java/com/fongmi/android/tv/api/Decoder.java | 17 ++++++++++++++--- .../java/com/fongmi/android/tv/net/OKHttp.java | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java index e027493a8..c1f0b2ad8 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java +++ b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java @@ -9,6 +9,8 @@ import com.google.common.io.BaseEncoding; import java.io.File; import java.nio.charset.StandardCharsets; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; @@ -40,8 +42,8 @@ public class Decoder { try { File file = FileUtil.getJar(jar); if (md5.length() > 0 && FileUtil.equals(jar, md5)) return file; - String data = getData(jar.substring(4)); - data = data.substring(data.indexOf("**") + 2); + String data = extract(getData(jar.substring(4))); + if (data.isEmpty()) return FileUtil.getJar(jar); return FileUtil.write(file, Base64.decode(data, Base64.DEFAULT)); } catch (Exception ignored) { return FileUtil.getJar(jar); @@ -79,7 +81,16 @@ public class Decoder { } private static String base64(String data) { - return new String(Base64.decode(data.substring(data.indexOf("**") + 2), Base64.DEFAULT)); + String extract = extract(data); + if (extract.isEmpty()) return data; + return new String(Base64.decode(extract, Base64.DEFAULT)); + } + + private static String extract(String data) { + Matcher matcher = Pattern.compile("[A-Za-z0-9]{8}\\*\\*").matcher(data); + if (!matcher.find()) return ""; + String key = matcher.group(); + return data.substring(data.indexOf(key) + key.length()); } private static byte[] padEnd(String key) { diff --git a/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java b/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java index 56c32be5a..e6caf119c 100644 --- a/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java +++ b/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java @@ -29,7 +29,7 @@ public class OKHttp { } private OkHttpClient.Builder getBuilder() { - return new OkHttpClient.Builder().readTimeout(15, TimeUnit.SECONDS).writeTimeout(15, TimeUnit.SECONDS).connectTimeout(5, TimeUnit.SECONDS).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); + return new OkHttpClient.Builder().callTimeout(10, TimeUnit.SECONDS).readTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS).connectTimeout(10, TimeUnit.SECONDS).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); } private OkHttpClient client() { From fd8013156cb0b3feb3544f27e4d5bdc02e30e6db Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 3 Nov 2022 14:53:21 +0800 Subject: [PATCH 06/10] Update activity_setting.xml --- app/src/leanback/res/layout/activity_setting.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/leanback/res/layout/activity_setting.xml b/app/src/leanback/res/layout/activity_setting.xml index a202ab8c1..5ed3b3f66 100644 --- a/app/src/leanback/res/layout/activity_setting.xml +++ b/app/src/leanback/res/layout/activity_setting.xml @@ -26,6 +26,7 @@ @@ -34,6 +35,7 @@ android:id="@+id/vodUrl" android:layout_width="match_parent" android:layout_height="wrap_content" + android:ellipsize="middle" android:gravity="end" android:singleLine="true" android:textColor="@color/white" @@ -88,6 +90,7 @@ @@ -96,6 +99,7 @@ android:id="@+id/liveUrl" android:layout_width="match_parent" android:layout_height="wrap_content" + android:ellipsize="middle" android:gravity="end" android:singleLine="true" android:textColor="@color/white" @@ -151,6 +155,7 @@ @@ -159,6 +164,7 @@ android:id="@+id/wallUrl" android:layout_width="match_parent" android:layout_height="wrap_content" + android:ellipsize="middle" android:gravity="end" android:singleLine="true" android:textColor="@color/white" From 74af3e2eaa6df9d70f5b756027831c66bb13df40 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 3 Nov 2022 15:23:08 +0800 Subject: [PATCH 08/10] Fix special ext --- app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java | 1 + app/src/main/java/com/fongmi/android/tv/api/Decoder.java | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java index bbd68ccd1..eca557c92 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java @@ -168,6 +168,7 @@ public class ApiConfig { if (ext.startsWith("http")) return ext; else if (ext.startsWith("file")) return FileUtil.read(ext); else if (ext.startsWith("img+")) return Decoder.getExt(ext); + else if (ext.contains("http") || ext.contains("file")) return ext; else if (ext.endsWith(".json") || ext.endsWith(".py")) return parseExt(Utils.convert(ext)); return ext; } diff --git a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java index c1f0b2ad8..de27a4459 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java +++ b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java @@ -88,9 +88,7 @@ public class Decoder { private static String extract(String data) { Matcher matcher = Pattern.compile("[A-Za-z0-9]{8}\\*\\*").matcher(data); - if (!matcher.find()) return ""; - String key = matcher.group(); - return data.substring(data.indexOf(key) + key.length()); + return matcher.find() ? data.substring(data.indexOf(matcher.group()) + 10) : ""; } private static byte[] padEnd(String key) { From c2c03a3acc705727b4c9f656dfdc71cca998b654 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 3 Nov 2022 16:09:06 +0800 Subject: [PATCH 10/10] Fix bug --- app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java | 2 ++ app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java index eca557c92..e5ca0c3d0 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java @@ -73,6 +73,8 @@ public class ApiConfig { } public ApiConfig init() { + this.home = null; + this.wall = null; this.config = Config.vod(); this.ads = new ArrayList<>(); this.sites = new ArrayList<>(); diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java index 2885523ab..010c26643 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java @@ -49,6 +49,7 @@ public class LiveConfig { } public LiveConfig init() { + this.home = null; this.config = Config.live(); this.lives = new ArrayList<>(); this.handler = new Handler(Looper.getMainLooper()); @@ -61,6 +62,7 @@ public class LiveConfig { } public LiveConfig clear() { + this.home = null; this.lives.clear(); this.lives.addAll(ApiConfig.get().getLives()); return this;