From 00ead3eb437894fcab67c0f2d0b3d86eab3cc77c Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 15 Jan 2023 00:10:13 +0800 Subject: [PATCH] Support live boot --- app/src/main/java/com/fongmi/android/tv/App.java | 14 +++++++------- .../java/com/fongmi/android/tv/api/LiveConfig.java | 2 ++ .../main/java/com/fongmi/android/tv/bean/Live.java | 6 ++++++ 3 files changed, 15 insertions(+), 7 deletions(-) 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 81be183e2..1a1f4c344 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -34,7 +34,7 @@ public class App extends Application { return instance; } - public static Activity getActivity() { + public static Activity activity() { return get().activity; } @@ -70,32 +70,32 @@ public class App extends Application { registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) { - if (activity != getActivity()) setActivity(activity); + if (activity != activity()) setActivity(activity); } @Override public void onActivityStarted(@NonNull Activity activity) { - if (activity != getActivity()) setActivity(activity); + if (activity != activity()) setActivity(activity); } @Override public void onActivityResumed(@NonNull Activity activity) { - if (activity != getActivity()) setActivity(activity); + if (activity != activity()) setActivity(activity); } @Override public void onActivityPaused(@NonNull Activity activity) { - if (activity == getActivity()) setActivity(null); + if (activity == activity()) setActivity(null); } @Override public void onActivityStopped(@NonNull Activity activity) { - if (activity == getActivity()) setActivity(null); + if (activity == activity()) setActivity(null); } @Override public void onActivityDestroyed(@NonNull Activity activity) { - if (activity == getActivity()) setActivity(null); + if (activity == activity()) setActivity(null); } @Override 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 95335cf92..8836060eb 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 @@ -9,6 +9,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.net.Callback; +import com.fongmi.android.tv.ui.activity.LiveActivity; import com.fongmi.android.tv.utils.Json; import com.fongmi.android.tv.utils.Prefers; import com.google.gson.JsonElement; @@ -103,6 +104,7 @@ 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(() -> LiveActivity.start(App.activity())); } private void parse(Live live) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index fff61227e..7cd202b94 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -14,6 +14,8 @@ public class Live { @SerializedName("type") private int type; + @SerializedName("boot") + private boolean boot; @SerializedName("name") private String name; @SerializedName("group") @@ -56,6 +58,10 @@ public class Live { return type; } + public boolean isBoot() { + return boot; + } + public String getName() { return TextUtils.isEmpty(name) ? "" : name; }