From 536158b0ded56e02160e18792437f6e05ddd6c7c Mon Sep 17 00:00:00 2001 From: FongMi Date: Sat, 28 Oct 2023 13:39:35 +0800 Subject: [PATCH] [mobile] support share to player --- .../android/tv/ui/activity/LiveActivity.java | 29 ++++++++++++++++++- .../android/tv/ui/activity/VideoActivity.java | 13 +++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index eadab72b4..3cea33537 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -6,6 +6,7 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.v4.media.MediaMetadataCompat; @@ -103,6 +104,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List private Runnable mR3; private Clock mClock; private boolean foreground; + private boolean redirect; private boolean rotate; private boolean stop; private boolean lock; @@ -178,6 +180,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List mBinding.control.seek.setListener(mPlayers); mBinding.control.cast.setOnClickListener(view -> onCast()); mBinding.control.share.setOnClickListener(view -> onShare()); + mBinding.control.share.setOnLongClickListener(view -> onChoose()); mBinding.control.right.back.setOnClickListener(view -> onBack()); mBinding.control.right.lock.setOnClickListener(view -> onLock()); mBinding.control.right.rotate.setOnClickListener(view -> onRotate()); @@ -296,6 +299,18 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List builder.getIntent().putExtra("title", mBinding.control.title.getText()); builder.getIntent().putExtra("name", mBinding.control.title.getText()); builder.startChooser(); + checkPlayImg(false); + setRedirect(true); + } + + private boolean onChoose() { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); + startActivity(Intent.createChooser(intent, null)); + checkPlayImg(false); + setRedirect(true); + return true; } private void onBack() { @@ -829,6 +844,14 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List this.foreground = foreground; } + public boolean isRedirect() { + return redirect; + } + + public void setRedirect(boolean redirect) { + this.redirect = redirect; + } + public boolean isRotate() { return rotate; } @@ -938,6 +961,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Override protected void onUserLeaveHint() { super.onUserLeaveHint(); + if (isRedirect()) return; mPiP.enter(this, Setting.getLiveScale() == 2); if (isLock()) App.post(this::onLock, 500); } @@ -975,8 +999,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Override protected void onStart() { super.onStart(); - if (Setting.isBackgroundOff()) mPlayers.play(); mClock.stop().start(); + mPlayers.play(); setStop(false); } @@ -987,6 +1011,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List App.removeCallbacks(mR0); App.post(mR0, 1000); setForeground(true); + setRedirect(false); } @Override @@ -994,6 +1019,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List super.onPause(); setForeground(false); App.removeCallbacks(mR0); + if (isRedirect()) mPlayers.pause(); if (Setting.isBackgroundOn() && !isFinishing()) PlaybackService.start(mPlayers); } @@ -1021,6 +1047,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Override protected void onDestroy() { super.onDestroy(); + mClock.release(); mPlayers.release(); Source.get().stop(); PlaybackService.stop(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 35a00d86a..5206c7429 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -342,6 +342,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mBinding.control.next.setOnClickListener(view -> checkNext()); mBinding.control.prev.setOnClickListener(view -> checkPrev()); mBinding.control.setting.setOnClickListener(view -> onSetting()); + mBinding.control.share.setOnLongClickListener(view -> onChoose()); mBinding.control.title.setOnLongClickListener(view -> onChange()); mBinding.control.right.back.setOnClickListener(view -> onFull()); mBinding.control.right.lock.setOnClickListener(view -> onLock()); @@ -719,6 +720,18 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo builder.getIntent().putExtra("title", mBinding.control.title.getText()); builder.getIntent().putExtra("name", mBinding.control.title.getText()); builder.startChooser(); + checkPlayImg(false); + setRedirect(true); + } + + private boolean onChoose() { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); + startActivity(Intent.createChooser(intent, null)); + checkPlayImg(false); + setRedirect(true); + return true; } private void onDanmu() {