diff --git a/app/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt b/app/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt index fefb879642fc..40d17999f1f5 100644 --- a/app/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt +++ b/app/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt @@ -12,11 +12,11 @@ import android.view.Menu import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity import com.google.android.material.snackbar.Snackbar +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.SnackbarUtil import com.owncloud.android.R import com.owncloud.android.databinding.ActivityShowErrorBinding import com.owncloud.android.utils.ClipboardUtil -import com.owncloud.android.utils.DisplayUtils class ShowErrorActivity : AppCompatActivity() { private lateinit var binding: ActivityShowErrorBinding @@ -46,7 +46,7 @@ class ShowErrorActivity : AppCompatActivity() { private fun reportIssue() { ClipboardUtil.copyToClipboard(this, binding.textViewError.text.toString(), true) val issueLink = getString(R.string.report_issue_link) - DisplayUtils.startLinkIntent(this, issueLink) + IntentUtil.startLinkIntent(this, issueLink) } override fun onCreateOptionsMenu(menu: Menu): Boolean { diff --git a/app/src/main/java/com/nextcloud/client/onboarding/FirstRunActivity.kt b/app/src/main/java/com/nextcloud/client/onboarding/FirstRunActivity.kt index b836ce09c71e..27fb460bf679 100644 --- a/app/src/main/java/com/nextcloud/client/onboarding/FirstRunActivity.kt +++ b/app/src/main/java/com/nextcloud/client/onboarding/FirstRunActivity.kt @@ -24,6 +24,7 @@ import com.nextcloud.client.account.UserAccountManager import com.nextcloud.client.appinfo.AppInfo import com.nextcloud.client.di.Injectable import com.nextcloud.client.preferences.AppPreferences +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.SnackbarUtil import com.nextcloud.utils.mdm.MDMConfig import com.owncloud.android.BuildConfig @@ -157,7 +158,7 @@ class FirstRunActivity : binding.hostOwnServer.visibility = if (isProviderOrOwnInstallationVisible) View.VISIBLE else View.GONE if (isProviderOrOwnInstallationVisible) { binding.hostOwnServer.setOnClickListener { - DisplayUtils.startLinkIntent( + IntentUtil.startLinkIntent( this, R.string.url_server_install ) diff --git a/app/src/main/java/com/nextcloud/client/utils/IntentUtil.kt b/app/src/main/java/com/nextcloud/client/utils/IntentUtil.kt index 3ca69d68ad02..751b60947e98 100644 --- a/app/src/main/java/com/nextcloud/client/utils/IntentUtil.kt +++ b/app/src/main/java/com/nextcloud/client/utils/IntentUtil.kt @@ -1,6 +1,7 @@ /* * Nextcloud - Android Client * + * SPDX-FileCopyrightText: 2026 Alper Ozturk * SPDX-FileCopyrightText: 2026 TSI-mc * SPDX-FileCopyrightText: 2022 Álvaro Brey * SPDX-FileCopyrightText: 2022 Nextcloud GmbH @@ -8,10 +9,15 @@ */ package com.nextcloud.client.utils +import android.app.Activity import android.content.Context import android.content.Intent import android.net.Uri +import androidx.annotation.StringRes +import androidx.core.net.toUri import androidx.fragment.app.FragmentActivity +import com.nextcloud.utils.SnackbarUtil +import com.owncloud.android.R import com.owncloud.android.datamodel.OCFile import com.owncloud.android.ui.activity.FileDisplayActivity import com.owncloud.android.ui.dialog.ShareLinkToDialog @@ -44,6 +50,34 @@ object IntentUtil { private fun getExposedFileUris(context: Context, files: Array): ArrayList = ArrayList(files.map { it.getExposedFileUri(context) }) + @JvmStatic + fun startLinkIntent(activity: Activity, @StringRes link: Int) = startLinkIntent(activity, activity.getString(link)) + + @JvmStatic + fun startLinkIntent(activity: Activity, url: String?) { + if (url.isNullOrEmpty()) { + return + } + + startLinkIntent(activity, url.toUri()) + } + + @JvmStatic + fun startLinkIntent(activity: Activity, uri: Uri) { + val intent = Intent(Intent.ACTION_VIEW, uri) + startIntentIfAppAvailable(intent, activity, R.string.no_browser_available) + } + + @JvmStatic + fun startIntentIfAppAvailable(intent: Intent, activity: Activity, @StringRes error: Int) { + if (intent.resolveActivity(activity.packageManager) == null) { + SnackbarUtil.show(activity, error) + return + } + + activity.startActivity(intent) + } + fun showShareLinkDialog(activity: FragmentActivity, link: String?) { val intent = Intent(Intent.ACTION_SEND).apply { putExtra(Intent.EXTRA_TEXT, link) diff --git a/app/src/main/java/com/nextcloud/ui/ClientIntegrationScreen.kt b/app/src/main/java/com/nextcloud/ui/ClientIntegrationScreen.kt index 4f94026af605..10f1de547300 100644 --- a/app/src/main/java/com/nextcloud/ui/ClientIntegrationScreen.kt +++ b/app/src/main/java/com/nextcloud/ui/ClientIntegrationScreen.kt @@ -38,10 +38,10 @@ import com.nextcloud.android.lib.resources.clientintegration.LayoutOrientation import com.nextcloud.android.lib.resources.clientintegration.LayoutRow import com.nextcloud.android.lib.resources.clientintegration.LayoutText import com.nextcloud.android.lib.resources.clientintegration.LayoutURL +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.extensions.getActivity import com.owncloud.android.R import com.owncloud.android.lib.resources.status.OCCapability -import com.owncloud.android.utils.DisplayUtils @Composable fun ClientIntegrationScreen(clientIntegrationUI: ClientIntegrationUI, baseUrl: String) { @@ -103,7 +103,7 @@ private fun DisplayElement(element: Element, baseUrl: String, activity: Activity private fun openLink(activity: Activity?, baseUrl: String, relativeUrl: String) { activity?.let { - DisplayUtils.startLinkIntent(activity, baseUrl + relativeUrl) + IntentUtil.startLinkIntent(activity, baseUrl + relativeUrl) } } diff --git a/app/src/main/java/com/nextcloud/ui/fileInfo/ImageDetailInfo.kt b/app/src/main/java/com/nextcloud/ui/fileInfo/ImageDetailInfo.kt index 76f5511b93aa..b23bc1eb1a8f 100644 --- a/app/src/main/java/com/nextcloud/ui/fileInfo/ImageDetailInfo.kt +++ b/app/src/main/java/com/nextcloud/ui/fileInfo/ImageDetailInfo.kt @@ -18,6 +18,7 @@ import androidx.exifinterface.media.ExifInterface import androidx.lifecycle.lifecycleScope import com.nextcloud.android.common.ui.theme.utils.ColorRole import com.nextcloud.client.NominatimClient +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.ui.fileInfo.model.ImageMetadata import com.nextcloud.utils.extensions.getSmallThumbnail import com.owncloud.android.MainApp @@ -269,7 +270,7 @@ class ImageDetailInfo(private val fragment: FileInfoFragment, private val viewTh object : ItemizedIconOverlay.OnItemGestureListener { override fun onItemSingleTapUp(index: Int, item: OverlayItem): Boolean { val intent = Intent(Intent.ACTION_VIEW, "geo:0,0?q=$latitude,$longitude".toUri()) - DisplayUtils.startIntentIfAppAvailable(intent, fragment.activity, R.string.no_map_app_availble) + IntentUtil.startIntentIfAppAvailable(intent, fragment.requireActivity(), R.string.no_map_app_availble) return true } diff --git a/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java index fc9a204b83da..5430460c5000 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java @@ -59,6 +59,7 @@ import com.nextcloud.client.onboarding.FirstRunActivity; import com.nextcloud.client.player.media3.PlaybackModel; import com.nextcloud.client.preferences.AppPreferences; +import com.nextcloud.client.utils.IntentUtil; import com.nextcloud.common.NextcloudClient; import com.nextcloud.ui.ChooseAccountDialogFragment; import com.nextcloud.ui.composeActivity.ComposeActivity; @@ -829,7 +830,7 @@ private void externalLinkClicked(MenuItem menuItem) { } if (link.getRedirect()) { - DisplayUtils.startLinkIntent(DrawerActivity.this, link.getUrl()); + IntentUtil.startLinkIntent(DrawerActivity.this, link.getUrl()); } else { Intent externalWebViewIntent = new Intent(getApplicationContext(), ExternalSiteWebView.class); externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_TITLE, link.getName()); diff --git a/app/src/main/java/com/owncloud/android/ui/activity/ExternalSiteWebView.java b/app/src/main/java/com/owncloud/android/ui/activity/ExternalSiteWebView.java index 182d6f0272be..7b7c1ad023e0 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/ExternalSiteWebView.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/ExternalSiteWebView.java @@ -23,6 +23,7 @@ import android.webkit.WebView; import android.widget.ProgressBar; +import com.nextcloud.client.utils.IntentUtil; import com.nextcloud.utils.SnackbarUtil; import com.owncloud.android.MainApp; import com.owncloud.android.R; @@ -150,7 +151,7 @@ public void onReceivedError(WebView view, WebResourceRequest request, WebResourc @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { if (!request.isRedirect()) { - DisplayUtils.startLinkIntent(self, request.getUrl()); + IntentUtil.startLinkIntent(self, request.getUrl()); return true; } return false; diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java index 87851fea58b3..be00f4f53900 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java @@ -38,6 +38,7 @@ import com.nextcloud.client.network.ConnectivityService; import com.nextcloud.client.network.NetworkChangeListener; import com.nextcloud.client.player.ui.PlayerActivity; +import com.nextcloud.client.utils.IntentUtil; import com.nextcloud.utils.EditorUtils; import com.nextcloud.utils.SnackbarUtil; import com.nextcloud.utils.extensions.ActivityExtensionsKt; @@ -97,7 +98,6 @@ import com.owncloud.android.ui.helpers.FileOperationsHelper; import com.owncloud.android.ui.preview.PreviewImageActivity; import com.owncloud.android.utils.ClipboardUtil; -import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.ErrorMessageAdapter; import com.owncloud.android.utils.FilesSyncHelper; import com.owncloud.android.utils.theme.ViewThemeUtils; @@ -733,11 +733,11 @@ public static void showDevSnackbar(Activity activity, if (latestVersion > currentVersion) { String devApkLink = activity.getString(R.string.dev_link) + latestVersion + ".apk"; if (openDirectly) { - DisplayUtils.startLinkIntent(activity, devApkLink); + IntentUtil.startLinkIntent(activity, devApkLink); } else { Snackbar.make(activity.findViewById(android.R.id.content), R.string.dev_version_new_version_available, Snackbar.LENGTH_LONG) - .setAction(activity.getString(R.string.version_dev_download), v -> DisplayUtils.startLinkIntent(activity, devApkLink)).show(); + .setAction(activity.getString(R.string.version_dev_download), v -> IntentUtil.startLinkIntent(activity, devApkLink)).show(); } } else { if (!inBackground) { diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java index 0a8068054b1b..39e78f17c6b5 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java @@ -52,6 +52,7 @@ import com.nextcloud.client.preferences.AppPreferences; import com.nextcloud.client.preferences.AppPreferencesImpl; import com.nextcloud.client.preferences.DarkMode; +import com.nextcloud.client.utils.IntentUtil; import com.nextcloud.utils.SnackbarUtil; import com.nextcloud.utils.extensions.ContextExtensionsKt; import com.nextcloud.utils.mdm.MDMConfig; @@ -77,7 +78,6 @@ import com.owncloud.android.ui.model.ExtendedSettingsActivityDialog; import com.owncloud.android.utils.ClipboardUtil; import com.owncloud.android.utils.DeviceCredentialUtils; -import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.EncryptionUtils; import com.owncloud.android.utils.MimeTypeUtil; import com.owncloud.android.utils.PermissionUtil; @@ -251,7 +251,7 @@ private void setupDevCategory(PreferenceScreen preferenceScreen) { Preference pChangelogLink = findPreference("changelog_link"); if (pChangelogLink != null) { pChangelogLink.setOnPreferenceClickListener(preference -> { - DisplayUtils.startLinkIntent(this, R.string.dev_changelog); + IntentUtil.startLinkIntent(this, R.string.dev_changelog); return true; }); } @@ -296,7 +296,7 @@ private void setupAboutCategory(String appVersion) { if (licenseEnabled) { licensePreference.setSummary(R.string.prefs_gpl_v2); licensePreference.setOnPreferenceClickListener(preference -> { - DisplayUtils.startLinkIntent(this, R.string.license_url); + IntentUtil.startLinkIntent(this, R.string.license_url); return true; }); } else { @@ -317,7 +317,7 @@ private void setupAboutCategory(String appVersion) { Intent intent; if (MimeTypeUtil.isPDF(mimeType)) { intent = new Intent(Intent.ACTION_VIEW, privacyUrl); - DisplayUtils.startIntentIfAppAvailable(intent, this, R.string.no_pdf_app_available); + IntentUtil.startIntentIfAppAvailable(intent, this, R.string.no_pdf_app_available); } else { intent = new Intent(getApplicationContext(), ExternalSiteWebView.class); intent.putExtra(ExternalSiteWebView.EXTRA_TITLE, @@ -344,7 +344,7 @@ private void setupAboutCategory(String appVersion) { if (sourcecodePreference != null) { if (sourcecodeEnabled) { sourcecodePreference.setOnPreferenceClickListener(preference -> { - DisplayUtils.startLinkIntent(this, R.string.sourcecode_url); + IntentUtil.startLinkIntent(this, R.string.sourcecode_url); return true; }); } else { @@ -402,7 +402,7 @@ private void setupImprintPreference(PreferenceCategory preferenceCategoryMore) { String imprintWeb = getString(R.string.url_imprint); if (!imprintWeb.isEmpty()) { - DisplayUtils.startLinkIntent(this, imprintWeb); + IntentUtil.startLinkIntent(this, imprintWeb); } //ImprintDialog.newInstance(true).show(preference.get, "IMPRINT_DIALOG"); return true; @@ -666,7 +666,7 @@ private void setupHelpPreference(PreferenceCategory preferenceCategoryMore) { if (pHelp != null) { if (helpEnabled) { pHelp.setOnPreferenceClickListener(preference -> { - DisplayUtils.startLinkIntent(this, R.string.url_help); + IntentUtil.startLinkIntent(this, R.string.url_help); return true; }); } else { @@ -1055,7 +1055,7 @@ private void launchDavDroidLogin() { startActivity(installIntent); } else { // no f-droid market app or Play store installed --> launch browser for f-droid url - DisplayUtils.startLinkIntent(this, "https://f-droid.org/packages/at.bitfire.davdroid/"); + IntentUtil.startLinkIntent(this, "https://f-droid.org/packages/at.bitfire.davdroid/"); SnackbarUtil.show(this, R.string.prefs_calendar_contacts_no_store_error); } diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.kt b/app/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.kt index 5f15760ee025..5891a85bf115 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.kt @@ -28,6 +28,7 @@ import androidx.recyclerview.widget.RecyclerView import com.google.android.material.button.MaterialButton import com.nextcloud.android.common.ui.theme.utils.ColorRole import com.nextcloud.client.account.CurrentAccountProvider +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.extensions.setVisibleIf import com.nextcloud.utils.text.RichSubjectFormatter import com.nextcloud.utils.text.RichSubjectParam @@ -96,7 +97,7 @@ class NotificationListAdapter( setTypeface(typeface, Typeface.BOLD) text = subject setOnClickListener { - DisplayUtils.startLinkIntent(fragment.requireActivity(), notification.getLink()) + IntentUtil.startLinkIntent(fragment.requireActivity(), notification.getLink()) } } } else { diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt index 4a9063545718..c32eb25359ee 100644 --- a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt @@ -20,6 +20,7 @@ import com.nextcloud.client.account.UserAccountManager import com.nextcloud.client.di.Injectable import com.nextcloud.client.jobs.BackgroundJobManager import com.nextcloud.client.player.media3.PlaybackModel +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.extensions.getParcelableArgument import com.owncloud.android.R import com.owncloud.android.databinding.AccountRemovalDialogBinding @@ -131,7 +132,7 @@ class AccountRemovalDialog : user?.let { user -> stopMediaPlayerAndHidePip() if (binding.radioRequestDeletion.isChecked) { - DisplayUtils.startLinkIntent(activity, user.server.uri.toString() + DROP_ACCOUNT_URI) + IntentUtil.startLinkIntent(requireActivity(), user.server.uri.toString() + DROP_ACCOUNT_URI) } else { backgroundJobManager.startAccountRemovalJob(user.accountName, false) } diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/ProfileBottomSheetDialog.kt b/app/src/main/java/com/owncloud/android/ui/fragment/ProfileBottomSheetDialog.kt index 746ec89cded1..4ae462113eff 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/ProfileBottomSheetDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/ProfileBottomSheetDialog.kt @@ -29,6 +29,7 @@ import com.google.android.material.button.MaterialButton import com.nextcloud.android.lib.resources.profile.Action import com.nextcloud.android.lib.resources.profile.HoverCard import com.nextcloud.client.account.User +import com.nextcloud.client.utils.IntentUtil import com.owncloud.android.R import com.owncloud.android.databinding.ProfileBottomSheetFragmentBinding import com.owncloud.android.utils.DisplayUtils @@ -146,7 +147,7 @@ class ProfileBottomSheetDialog( } private fun openWebsite(url: String) { - DisplayUtils.startLinkIntent(fileActivity, url) + IntentUtil.startLinkIntent(fileActivity, url) } private fun sendEmail(email: String) { @@ -155,7 +156,7 @@ class ProfileBottomSheetDialog( putExtra(Intent.EXTRA_EMAIL, arrayOf(email)) } - DisplayUtils.startIntentIfAppAvailable(intent, fileActivity, R.string.no_email_app_available) + IntentUtil.startIntentIfAppAvailable(intent, fileActivity, R.string.no_email_app_available) } private fun openTalk(userId: String, hyperlink: String) { diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/community/CommunityFragment.kt b/app/src/main/java/com/owncloud/android/ui/fragment/community/CommunityFragment.kt index 4c087213533e..b5bf9dba39f1 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/community/CommunityFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/community/CommunityFragment.kt @@ -13,11 +13,11 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.BuildHelper import com.nextcloud.utils.extensions.setHtmlContent import com.owncloud.android.R import com.owncloud.android.databinding.FragmentCommunityBinding -import com.owncloud.android.utils.DisplayUtils import com.owncloud.android.utils.theme.ViewThemeUtils import javax.inject.Inject @@ -85,7 +85,7 @@ class CommunityFragment : Fragment() { binding?.communityTestingReport?.let { viewThemeUtils.material.colorMaterialButtonPrimaryFilled(it) } binding?.communityTestingReport?.setOnClickListener { - DisplayUtils.startLinkIntent(requireActivity(), R.string.report_issue_empty_link) + IntentUtil.startLinkIntent(requireActivity(), R.string.report_issue_empty_link) } } @@ -99,7 +99,7 @@ class CommunityFragment : Fragment() { binding?.communityBetaApk to R.string.beta_apk_link ).forEach { (view, linkRes) -> view?.setOnClickListener { - DisplayUtils.startLinkIntent(activity, linkRes) + IntentUtil.startLinkIntent(activity, linkRes) } } } diff --git a/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt b/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt index b744b7528b34..fc2aaf199874 100644 --- a/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt @@ -28,6 +28,7 @@ import com.nextcloud.android.common.ui.theme.utils.ColorRole import com.nextcloud.client.account.UserAccountManager import com.nextcloud.client.device.DeviceInfo import com.nextcloud.client.di.Injectable +import com.nextcloud.client.utils.IntentUtil import com.nextcloud.utils.LinkHelper import com.nextcloud.utils.SnackbarUtil import com.nextcloud.utils.extensions.setHtmlContent @@ -38,7 +39,6 @@ import com.owncloud.android.datamodel.OCFile import com.owncloud.android.lib.common.utils.Log_OC import com.owncloud.android.ui.activity.FileDisplayActivity import com.owncloud.android.ui.fragment.FileFragment -import com.owncloud.android.utils.DisplayUtils import com.owncloud.android.utils.MimeTypeUtil import com.owncloud.android.utils.StringUtils import com.owncloud.android.utils.theme.ViewThemeUtils @@ -200,7 +200,7 @@ abstract class PreviewTextFragment : override fun configureConfiguration(builder: MarkwonConfiguration.Builder) { builder.linkResolver { _, link -> if (LinkHelper.isHttpOrHttpsLink(link)) { - DisplayUtils.startLinkIntent(activity, link) + IntentUtil.startLinkIntent(activity, link) } else { SnackbarUtil.show( activity, diff --git a/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java b/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java index 13f6c936a67f..43dc3b796afd 100644 --- a/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java +++ b/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java @@ -25,11 +25,9 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; -import android.content.Intent; import android.content.res.Resources; import android.graphics.Point; import android.graphics.drawable.Drawable; -import android.net.Uri; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; @@ -39,7 +37,6 @@ import android.view.View; import com.nextcloud.client.account.User; -import com.nextcloud.utils.SnackbarUtil; import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.datamodel.ThumbnailsCacheManager; @@ -532,29 +529,6 @@ public static boolean isRTL() { return TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL; } - static public void startLinkIntent(Activity activity, @StringRes int link) { - startLinkIntent(activity, activity.getString(link)); - } - - static public void startLinkIntent(Activity activity, String url) { - if (!TextUtils.isEmpty(url)) { - startLinkIntent(activity, Uri.parse(url)); - } - } - - static public void startLinkIntent(Activity activity, Uri uri) { - Intent intent = new Intent(Intent.ACTION_VIEW, uri); - DisplayUtils.startIntentIfAppAvailable(intent, activity, R.string.no_browser_available); - } - - static public void startIntentIfAppAvailable(Intent intent, Activity activity, @StringRes int error) { - if (intent.resolveActivity(activity.getPackageManager()) != null) { - activity.startActivity(intent); - } else { - SnackbarUtil.show(activity, error); - } - } - static public void openSortingOrderDialogFragment(FragmentManager supportFragmentManager, FileSortOrder sortOrder) { FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); fragmentTransaction.addToBackStack(null);