From 88b4a5244ca08bac96012b0420e7e5e8ffb71126 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 29 Oct 2023 20:41:26 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/activity/LiveActivity.java | 5 ++++- .../android/tv/ui/activity/VideoActivity.java | 4 +++- app/src/main/AndroidManifest.xml | 11 ++++++++++ .../com/fongmi/android/tv/utils/Util.java | 21 +++++++++++++++++++ .../android/tv/ui/activity/LiveActivity.java | 16 ++++++++------ .../android/tv/ui/activity/VideoActivity.java | 15 +++++++------ 6 files changed, 58 insertions(+), 14 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 2cbffb80d..1636dedf4 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -62,6 +62,7 @@ import com.fongmi.android.tv.utils.ImgUtil; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Traffic; +import com.fongmi.android.tv.utils.Util; import com.github.catvod.net.OkHttp; import org.greenrobot.eventbus.Subscribe; @@ -345,8 +346,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private boolean onChoose() { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra("headers", mPlayers.getHeaderArray()); + intent.putExtra("title", mBinding.widget.name.getText()); intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); - startActivity(Intent.createChooser(intent, null)); + startActivity(Util.getChooser(intent)); return true; } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 3999e48c1..4359bc266 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -81,6 +81,7 @@ import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Sniffer; import com.fongmi.android.tv.utils.Traffic; +import com.fongmi.android.tv.utils.Util; import com.github.bassaer.library.MDColor; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Trans; @@ -859,12 +860,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private boolean onChoose() { Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("return_result", true); intent.putExtra("headers", mPlayers.getHeaderArray()); intent.putExtra("position", (int) mPlayers.getPosition()); intent.putExtra("title", mBinding.widget.title.getText()); intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); - startActivityForResult(Intent.createChooser(intent, null), 1001); + startActivityForResult(Util.getChooser(intent), 1001); return true; } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1caf05409..a9d6e57ae 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,6 +11,17 @@ + + + + + + + + + + + components = new ArrayList<>(); + for (ResolveInfo resolveInfo : App.get().getPackageManager().queryIntentActivities(intent, 0)) { + String pkgName = resolveInfo.activityInfo.packageName; + if (pkgName.equals(App.get().getPackageName())) { + components.add(new ComponentName(pkgName, resolveInfo.activityInfo.name)); + } + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return Intent.createChooser(intent, null).putExtra(Intent.EXTRA_EXCLUDE_COMPONENTS, components.toArray(new Parcelable[]{})); + } else { + return Intent.createChooser(intent, null); + } + } } 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 b44539b81..ae62e58fb 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 @@ -15,7 +15,6 @@ import android.view.View; import androidx.annotation.Dimension; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.app.ShareCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import androidx.media3.common.C; @@ -295,18 +294,23 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List } private void onShare() { - ShareCompat.IntentBuilder builder = new ShareCompat.IntentBuilder(this).setType("text/plain").setText(mPlayers.getUrl()); - builder.getIntent().putExtra("title", mBinding.control.title.getText()); - builder.getIntent().putExtra("name", mBinding.control.title.getText()); - builder.startChooser(); + Intent intent = new Intent(Intent.ACTION_SEND); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, mPlayers.getUrl()); + intent.putExtra("name", mBinding.control.title.getText()); + intent.putExtra("title", mBinding.control.title.getText()); + startActivity(Util.getChooser(intent)); setRedirect(true); } private boolean onChoose() { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra("headers", mPlayers.getHeaderArray()); + intent.putExtra("title", mBinding.control.title.getText()); intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); - startActivity(Intent.createChooser(intent, null)); + startActivity(Util.getChooser(intent)); setRedirect(true); return true; } 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 788934b8a..5e0dec378 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 @@ -26,7 +26,6 @@ import android.widget.TextView; import androidx.annotation.Dimension; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.app.ShareCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.Observer; @@ -715,21 +714,25 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void onShare() { - ShareCompat.IntentBuilder builder = new ShareCompat.IntentBuilder(this).setType("text/plain").setText(mPlayers.getUrl()); - builder.getIntent().putExtra("title", mBinding.control.title.getText()); - builder.getIntent().putExtra("name", mBinding.control.title.getText()); - builder.startChooser(); + Intent intent = new Intent(Intent.ACTION_SEND); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, mPlayers.getUrl()); + intent.putExtra("name", mBinding.control.title.getText()); + intent.putExtra("title", mBinding.control.title.getText()); + startActivity(Util.getChooser(intent)); setRedirect(true); } private boolean onChoose() { Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("return_result", true); intent.putExtra("headers", mPlayers.getHeaderArray()); intent.putExtra("position", (int) mPlayers.getPosition()); intent.putExtra("title", mBinding.control.title.getText()); intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); - startActivityForResult(Intent.createChooser(intent, null), 1001); + startActivityForResult(Util.getChooser(intent), 1001); setRedirect(true); return true; }