diff --git a/app/build.gradle b/app/build.gradle index 6be3f7439..3da01422a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,13 +20,13 @@ android { productFlavors { leanback { dimension "mode" - versionCode 203 - versionName "20230809#1" + versionCode 204 + versionName "2.0.4" } mobile { dimension "mode" - versionCode 203 - versionName "20230809#1" + versionCode 204 + versionName "2.0.4" } java { dimension "api" diff --git a/app/src/leanback/java/com/fongmi/android/tv/Product.java b/app/src/leanback/java/com/fongmi/android/tv/Product.java index bc622e4ab..be6f5ecaf 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/Product.java +++ b/app/src/leanback/java/com/fongmi/android/tv/Product.java @@ -20,10 +20,6 @@ public class Product { return getColumn(); } - public static void bootLive() { - LiveActivity.start(App.activity()); - } - public static int[] getSpec(Vod.Style style) { int column = getColumn(style); int space = ResUtil.dp2px(48) + ResUtil.dp2px(16 * (column - 1)); diff --git a/app/src/leanback/res/layout/adapter_vod_full.xml b/app/src/leanback/res/layout/adapter_vod_full.xml index 27f8e525c..6f4acbb8a 100644 --- a/app/src/leanback/res/layout/adapter_vod_full.xml +++ b/app/src/leanback/res/layout/adapter_vod_full.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/App.java b/app/src/main/java/com/fongmi/android/tv/App.java index ffdd6f434..d66821beb 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -78,12 +78,21 @@ public class App extends Application { for (Runnable r : runnable) get().handler.removeCallbacks(r); } + public void setHook(boolean hook) { + this.hook = hook; + } + private void setActivity(Activity activity) { this.activity = activity; } - public void setHook(boolean hook) { - this.hook = hook; + private LogAdapter getLogAdapter() { + return new AndroidLogAdapter(PrettyFormatStrategy.newBuilder().showThreadInfo(false).tag("").build()) { + @Override + public boolean isLoggable(int priority, String tag) { + return true; + } + }; } @Override @@ -147,13 +156,4 @@ public class App extends Application { if (!hook) return getBaseContext().getPackageName(); return LiveConfig.get().getHome().getCore().getPkg(); } - - private LogAdapter getLogAdapter() { - return new AndroidLogAdapter(PrettyFormatStrategy.newBuilder().showThreadInfo(false).tag("").build()) { - @Override - public boolean isLoggable(int priority, String tag) { - return true; - } - }; - } } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/Setting.java b/app/src/main/java/com/fongmi/android/tv/Setting.java index f1eb210ed..49a4e9897 100644 --- a/app/src/main/java/com/fongmi/android/tv/Setting.java +++ b/app/src/main/java/com/fongmi/android/tv/Setting.java @@ -126,6 +126,14 @@ public class Setting { Prefers.put("scale_live", scale); } + public static boolean isBootLive() { + return Prefers.getBoolean("boot_live"); + } + + public static void putBootLive(boolean boot) { + Prefers.put("boot_live", boot); + } + public static boolean isInvert() { return Prefers.getBoolean("invert"); } 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 d6c37bb94..5098b05b4 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 @@ -3,7 +3,6 @@ package com.fongmi.android.tv.api; import android.text.TextUtils; import com.fongmi.android.tv.App; -import com.fongmi.android.tv.Product; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.bean.Channel; @@ -14,6 +13,7 @@ import com.fongmi.android.tv.bean.Keep; import com.fongmi.android.tv.bean.Live; import com.fongmi.android.tv.db.AppDatabase; import com.fongmi.android.tv.impl.Callback; +import com.fongmi.android.tv.ui.activity.LiveActivity; import com.fongmi.android.tv.utils.Notify; import com.github.catvod.utils.Json; import com.google.gson.JsonElement; @@ -141,10 +141,15 @@ public class LiveConfig { if (!object.has("lives")) return; for (JsonElement element : Json.safeListElement(object, "lives")) parse(Live.objectFrom(element).check()); if (home == null) setHome(lives.isEmpty() ? new Live() : lives.get(0)); - if (home.isBoot()) App.post(Product::bootLive); + if (home.isBoot() || Setting.isBootLive()) App.post(this::bootLive); if (callback != null) App.post(callback::success); } + private void bootLive() { + LiveActivity.start(App.activity()); + Setting.putBootLive(false); + } + public void parse(JsonObject object) { parseConfig(object, null); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Core.java b/app/src/main/java/com/fongmi/android/tv/bean/Core.java index 092c29ff5..7ae8e2b97 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Core.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Core.java @@ -5,6 +5,7 @@ import android.text.TextUtils; import androidx.annotation.Nullable; +import com.fongmi.android.tv.App; import com.fongmi.android.tv.utils.Utils; import com.google.gson.annotations.SerializedName; @@ -60,7 +61,7 @@ public class Core { } public PackageManager getPackageManager() { - return null; + return App.get().getPackageManager(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/player/Source.java b/app/src/main/java/com/fongmi/android/tv/player/Source.java index edd8ff90c..c930660d6 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Source.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Source.java @@ -38,7 +38,7 @@ public class Source { public String fetch(String url) throws Exception { String host = Util.host(url); String scheme = Util.scheme(url); - for (Extractor extractor : extractors) if (extractor.match(scheme, host)) return extractor.fetch(url); + for (Extractor extractor : extractors) if (extractor.match(scheme, host)) return extractor.fetch(url.trim()); return url; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java index ef6186b3b..987497b1a 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java @@ -1,10 +1,10 @@ package com.fongmi.android.tv.player.extractor; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.api.LiveConfig; import com.fongmi.android.tv.bean.Core; import com.fongmi.android.tv.player.Source; -import com.fongmi.android.tv.utils.Notify; import com.google.gson.JsonObject; import com.tvbus.engine.Listener; import com.tvbus.engine.TVCore; @@ -51,8 +51,8 @@ public class TVBus implements Source.Extractor, Listener { } private void change() { - App.post(() -> Notify.show("內核已切換,正在重新啟動。")); - App.post(() -> System.exit(0), 1000); + App.post(() -> System.exit(0), 250); + Setting.putBootLive(true); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/Product.java b/app/src/mobile/java/com/fongmi/android/tv/Product.java index db6c975f3..cbe207918 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -19,9 +19,6 @@ public class Product { return style.isLand() ? getColumn() - 1 : getColumn(); } - public static void bootLive() { - } - public static int[] getSpec(Context context) { return getSpec(context, Vod.Style.rect()); } diff --git a/app/src/mobile/res/layout/adapter_vod_full.xml b/app/src/mobile/res/layout/adapter_vod_full.xml index f26bbb121..bbda210f3 100644 --- a/app/src/mobile/res/layout/adapter_vod_full.xml +++ b/app/src/mobile/res/layout/adapter_vod_full.xml @@ -1,10 +1,10 @@ - + android:layout_marginStart="-8dp" + android:layout_marginEnd="-8dp"> - \ No newline at end of file + \ No newline at end of file