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