diff --git a/app/build.gradle b/app/build.gradle index ce2d0daf1..f09458b6e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,7 +22,7 @@ android { leanback { dimension "mode" versionCode 72 - versionName "20230409#2" + versionName "20230409#3" } mobile { dimension "mode" diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index d7579a558..38ee92a5f 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -104,6 +104,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private Runnable mR1; private Runnable mR2; + public static void cast(Activity activity, History history) { + start(activity, history.getSiteKey(), history.getVodId(), history.getVodName(), true, true); + } + + public static void push(Activity activity, String url, boolean clear) { + start(activity, "push_agent", url, url, clear); + } + public static void start(Activity activity, String id, String name) { start(activity, ApiConfig.get().getHome().getKey(), id, name); } @@ -113,14 +121,23 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } public static void start(Activity activity, String key, String id, String name, boolean clear) { + start(activity, key, id, name, clear, false); + } + + public static void start(Activity activity, String key, String id, String name, boolean clear, boolean cast) { Intent intent = new Intent(activity, DetailActivity.class); if (clear) intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); + intent.putExtra("cast", cast); intent.putExtra("name", name); intent.putExtra("key", key); intent.putExtra("id", id); activity.startActivityForResult(intent, 1000); } + private boolean isCast() { + return getIntent().getBooleanExtra("cast", false); + } + private String getName() { return getIntent().getStringExtra("name"); } @@ -201,6 +218,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis setVideoView(); setViewModel(); getDetail(); + checkCast(); } @Override @@ -311,6 +329,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } } + private void checkCast() { + if (isCast()) onVideo(); + } + private void getDetail() { mViewModel.detailContent(getKey(), getId()); } 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 c558db5aa..67078bfe4 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 @@ -306,19 +306,17 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen CollectActivity.start(this, event.getText(), true); break; case PUSH: - if (ApiConfig.get().getSite("push_agent") == null) return; - DetailActivity.start(this, "push_agent", event.getText(), "", true); + if (ApiConfig.hasPush()) DetailActivity.push(this, event.getText(), true); break; } } @Subscribe(threadMode = ThreadMode.MAIN) public void onCastEvent(CastEvent event) { - if (ApiConfig.getUrl().equals(event.getUrl())) { - History history = event.getHistory().cid(ApiConfig.getCid()); - DetailActivity.start(this, history.getSiteKey(), history.getVodId(), history.getVodName(), true); + if (ApiConfig.getUrl().equals(event.getConfig())) { + DetailActivity.cast(this, event.getHistory().cid(ApiConfig.getCid())); } else { - ApiConfig.get().clear().config(Config.find(event.getUrl(), 0)).load(getCallback(event)); + ApiConfig.get().clear().config(Config.find(event.getConfig(), 0)).load(getCallback(event)); } } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java index 13d087b04..052b6c905 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java @@ -8,6 +8,7 @@ import android.view.View; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.R; +import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.databinding.ActivityPushBinding; import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.ui.base.BaseActivity; @@ -37,6 +38,6 @@ public class PushActivity extends BaseActivity { private void onClip(View view) { CharSequence text = ((ClipboardManager) getSystemService(CLIPBOARD_SERVICE)).getText(); - if (text != null) DetailActivity.start(this, "push_agent", text.toString(), ""); + if (text != null && ApiConfig.hasPush()) DetailActivity.push(this, text.toString(), false); } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Device.java b/app/src/main/java/com/fongmi/android/tv/bean/Device.java index eaf1784c7..173df886f 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Device.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Device.java @@ -37,13 +37,6 @@ public class Device { return device; } - public static Device get(org.fourthline.cling.model.meta.Device item) { - Device device = new Device(); - device.setName(item.getDetails().getFriendlyName()); - device.setUuid(item.getIdentity().getUdn().getIdentifierString()); - return device; - } - public static Device objectFrom(String str) { return new Gson().fromJson(str, Device.class); }