From b58d4cc83501bc0da277ac79ffd510d133aa6759 Mon Sep 17 00:00:00 2001 From: IndusAryan Date: Thu, 7 Mar 2024 13:02:48 +0530 Subject: [PATCH] adapt, improvise and overcome --- .../ui/result/ResultViewModel2.kt | 3 +- .../ui/settings/SettingsUpdates.kt | 11 ++----- .../ui/settings/extensions/RepoAdapter.kt | 3 +- .../lagradost/cloudstream3/utils/UIHelper.kt | 32 +++++++++++++------ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 30 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt index d9e73371..205f57ab 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt @@ -1693,8 +1693,7 @@ class ResultViewModel2 : ViewModel() { txt(R.string.episode_action_copy_link) ) { (result, index) -> val link = result.links[index] - val linkCopyLabel = UiText.DynamicString(link.name) - clipboardHelper(linkCopyLabel, link.url) + clipboardHelper(txt(link.name), link.url) } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt index 53c42b1c..e0ec7601 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt @@ -18,6 +18,7 @@ import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.network.initClient import com.lagradost.cloudstream3.services.BackupWorkManager import com.lagradost.cloudstream3.ui.result.UiText +import com.lagradost.cloudstream3.ui.result.txt import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setPaddingBottom import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setToolBarScrollFlags @@ -116,14 +117,8 @@ class SettingsUpdates : PreferenceFragmentCompat() { binding.text1.text = text binding.copyBtt.setOnClickListener { - // Can crash on too much text - try { - val logcat = UiText.DynamicString("Logcat") - clipboardHelper(logcat, text) - dialog.dismissSafe(activity) - } catch (e: TransactionTooLargeException) { - showToast(R.string.clipboard_too_large) - } + clipboardHelper(txt("Logcat"), text) + dialog.dismissSafe(activity) } binding.clearBtt.setOnClickListener { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/RepoAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/RepoAdapter.kt index af9572ce..ee78886e 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/RepoAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/RepoAdapter.kt @@ -117,8 +117,7 @@ class RepoAdapter( repositoryItemRoot.setOnLongClickListener { val shareableRepoData = "${repositoryData.name} : \n ${repositoryData.url}" - val repoCopyLabel = txt(R.string.repo_copy_label) - clipboardHelper(repoCopyLabel, shareableRepoData) + clipboardHelper(txt(R.string.repo_copy_label), shareableRepoData) true } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/UIHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/UIHelper.kt index a6e753d1..60773a0d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/UIHelper.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/UIHelper.kt @@ -16,6 +16,7 @@ import android.graphics.Color import android.graphics.drawable.Drawable import android.os.Build import android.os.Bundle +import android.os.TransactionTooLargeException import android.util.Log import android.view.* import android.view.ViewGroup.MarginLayoutParams @@ -23,7 +24,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.ImageView import android.widget.ListAdapter import android.widget.ListView -import android.widget.Toast +import android.widget.Toast.LENGTH_LONG import androidx.annotation.AttrRes import androidx.annotation.ColorInt import androidx.annotation.DrawableRes @@ -63,7 +64,6 @@ import com.google.android.material.chip.ChipGroup import com.lagradost.cloudstream3.AcraApplication.Companion.context import com.lagradost.cloudstream3.CommonActivity.activity import com.lagradost.cloudstream3.CommonActivity.showToast -import com.lagradost.cloudstream3.MainActivity import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.ui.result.UiImage @@ -74,7 +74,6 @@ import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSet import jp.wasabeef.glide.transformations.BlurTransformation import kotlin.math.roundToInt - object UIHelper { val Int.toPx: Int get() = (this * Resources.getSystem().displayMetrics.density).toInt() val Float.toPx: Float get() = (this * Resources.getSystem().displayMetrics.density) @@ -130,17 +129,32 @@ object UIHelper { } fun clipboardHelper(label: UiText, text: CharSequence) { + val ctx = context ?: return try { - val clip = ClipData.newPlainText(label.asString(context!!), text) - val labelSuffix = txt(R.string.toast_copied) - context?.getSystemService()!!.setPrimaryClip(clip) + ctx.let { + val clip = ClipData.newPlainText(label.asString(ctx), text) + val labelSuffix = txt(R.string.toast_copied).asString(ctx) + ctx.getSystemService()?.setPrimaryClip(clip) - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) { - showToast("${label.asString(context!!)} ${labelSuffix.asString(context!!)}") + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) { + showToast("$label $labelSuffix") + } } } catch (t: Throwable) { Log.e("ClipboardService", "$t") - showToast(R.string.clipboard_too_large) + when (t) { + is SecurityException -> { + showToast(R.string.clipboard_permission_error) + } + + is TransactionTooLargeException -> { + showToast(R.string.clipboard_too_large) + } + + else -> { + showToast(R.string.unexpected_error, LENGTH_LONG) + } + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f46688e9..8971061a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -645,6 +645,8 @@ History Show skip popups for opening/ending Too much text. Unable to save to clipboard. + Error accessing Clipboard, Please try again. + Error copying content, Please copy logcat and contact app support. Mark as watched Remove from watched Are you sure you want to exit\?