From f860c2b19e711a947af0378df3468b4101130cca Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 21 Feb 2023 18:15:28 +0800 Subject: [PATCH] [mobile] add clip check --- .../com/fongmi/android/tv/utils/Utils.java | 12 ++++++ app/src/mobile/AndroidManifest.xml | 2 +- .../android/tv/ui/activity/MainActivity.java | 39 ++++++++++++++----- app/src/mobile/res/values-zh-rCN/strings.xml | 3 +- app/src/mobile/res/values-zh-rTW/strings.xml | 3 +- app/src/mobile/res/values/strings.xml | 3 +- 6 files changed, 48 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java index ab256b2e4..22741bd51 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java @@ -3,6 +3,8 @@ package com.fongmi.android.tv.utils; import android.Manifest; import android.app.Activity; import android.app.PictureInPictureParams; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.content.pm.PackageManager; import android.graphics.Rect; @@ -164,6 +166,16 @@ public class Utils { return text; } + public static CharSequence getClip() { + ClipboardManager cm = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); + return cm.getText(); + } + + public static void clearClip() { + ClipboardManager cm = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); + cm.setPrimaryClip(ClipData.newPlainText("", "")); + } + public static long format(SimpleDateFormat format, String src) { try { return format.parse(src).getTime(); diff --git a/app/src/mobile/AndroidManifest.xml b/app/src/mobile/AndroidManifest.xml index 590a40874..e35f514a6 100644 --- a/app/src/mobile/AndroidManifest.xml +++ b/app/src/mobile/AndroidManifest.xml @@ -8,7 +8,7 @@ android:name=".ui.activity.MainActivity" android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" android:exported="true" - android:launchMode="singleTask" + android:launchMode="singleTop" android:screenOrientation="fullUser" android:windowSoftInputMode="adjustPan"> diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index de6abfde4..dbbd002ee 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.ui.activity; import android.content.Intent; +import android.text.TextUtils; import android.view.MenuItem; import androidx.annotation.NonNull; @@ -20,6 +21,8 @@ import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.ui.fragment.SettingFragment; import com.fongmi.android.tv.ui.fragment.VodFragment; import com.fongmi.android.tv.utils.Notify; +import com.fongmi.android.tv.utils.Utils; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.navigation.NavigationBarView; import java.util.ArrayList; @@ -31,6 +34,14 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt private List mFragments; private boolean confirm; + private VodFragment getVodFragment() { + return (VodFragment) getSupportFragmentManager().findFragmentByTag("0"); + } + + private SettingFragment getSettingFragment() { + return (SettingFragment) getSupportFragmentManager().findFragmentByTag("1"); + } + @Override protected ViewBinding getBinding() { return mBinding = ActivityMainBinding.inflate(getLayoutInflater()); @@ -51,12 +62,6 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt initConfig(); } - private void checkAction(Intent intent) { - boolean hasPush = ApiConfig.get().getSite("push_agent") != null; - boolean hasAction = intent.getAction() != null && intent.getAction().equals(Intent.ACTION_SEND) && intent.getType().equals("text/plain"); - if (hasPush && hasAction) DetailActivity.start(this, "push_agent", intent.getStringExtra(Intent.EXTRA_TEXT), ""); - } - @Override protected void initEvent() { mBinding.navigation.setOnItemSelectedListener(this); @@ -93,12 +98,26 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt }; } - private VodFragment getVodFragment() { - return (VodFragment) getSupportFragmentManager().findFragmentByTag("0"); + private void checkAction(Intent intent) { + boolean hasPush = ApiConfig.get().getSite("push_agent") != null; + boolean hasAction = intent.getAction() != null && intent.getAction().equals(Intent.ACTION_SEND) && intent.getType().equals("text/plain"); + if (hasPush && hasAction) DetailActivity.start(this, "push_agent", intent.getStringExtra(Intent.EXTRA_TEXT), ""); + else checkClip(); } - private SettingFragment getSettingFragment() { - return (SettingFragment) getSupportFragmentManager().findFragmentByTag("1"); + private void checkClip() { + CharSequence text = Utils.getClip(); + if (TextUtils.isEmpty(text)) return; + showDialog(text.toString()); + } + + private void showDialog(String text) { + new MaterialAlertDialogBuilder(this).setMessage(getString(R.string.home_open_url, text)) + .setNegativeButton(R.string.dialog_negative, (dialog, which) -> Utils.clearClip()) + .setPositiveButton(R.string.dialog_positive, (dialog, which) -> { + DetailActivity.start(MainActivity.this, "push_agent", text, ""); + Utils.clearClip(); + }).show(); } private void setConfirm() { diff --git a/app/src/mobile/res/values-zh-rCN/strings.xml b/app/src/mobile/res/values-zh-rCN/strings.xml index 39d5d9941..8d0d3b162 100644 --- a/app/src/mobile/res/values-zh-rCN/strings.xml +++ b/app/src/mobile/res/values-zh-rCN/strings.xml @@ -1,4 +1,4 @@ - + 点播 @@ -8,6 +8,7 @@ 首页 最近观看 更新推荐 + 是否开启「%s」? 线路 diff --git a/app/src/mobile/res/values-zh-rTW/strings.xml b/app/src/mobile/res/values-zh-rTW/strings.xml index 5b8f837da..1de833167 100644 --- a/app/src/mobile/res/values-zh-rTW/strings.xml +++ b/app/src/mobile/res/values-zh-rTW/strings.xml @@ -1,4 +1,4 @@ - + 點播 @@ -8,6 +8,7 @@ 首頁 最近觀看 更新推薦 + 是否開啟「%s」? 線路 diff --git a/app/src/mobile/res/values/strings.xml b/app/src/mobile/res/values/strings.xml index f35642d16..ccdef2fa3 100644 --- a/app/src/mobile/res/values/strings.xml +++ b/app/src/mobile/res/values/strings.xml @@ -1,4 +1,4 @@ - + Vod @@ -8,6 +8,7 @@ Home History Recommend + Open %s ? Flag