diff --git a/app/src/main/java/fr/free/nrw/commons/AboutActivity.kt b/app/src/main/java/fr/free/nrw/commons/AboutActivity.kt index 3748ac264..e24522c33 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.kt @@ -19,7 +19,7 @@ import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.utils.ConfigUtils.getVersionNameWithSha import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog import fr.free.nrw.commons.utils.Utils -import fr.free.nrw.commons.utils.Utils.handleWebUrl +import fr.free.nrw.commons.utils.UrlUtils.handleWebUrl import java.util.Collections import androidx.core.net.toUri @@ -116,7 +116,7 @@ class AboutActivity : BaseActivity() { intent.setPackage(Urls.FACEBOOK_PACKAGE_NAME) startActivity(intent) } catch (e: Exception) { - Utils.handleWebUrl(this, Uri.parse(Urls.FACEBOOK_WEB_URL)) + handleWebUrl(this, parse(Urls.FACEBOOK_WEB_URL)) } } @@ -127,12 +127,12 @@ class AboutActivity : BaseActivity() { intent.setPackage(Urls.GITHUB_PACKAGE_NAME) startActivity(intent) } catch (e: Exception) { - Utils.handleWebUrl(this, Uri.parse(Urls.GITHUB_REPO_URL)) + handleWebUrl(this, parse(Urls.GITHUB_REPO_URL)) } } fun launchWebsite(view: View?) { - Utils.handleWebUrl(this, Uri.parse(Urls.WEBSITE_URL)) + handleWebUrl(this, parse(Urls.WEBSITE_URL)) } fun launchRatings(view: View?) { @@ -149,19 +149,19 @@ class AboutActivity : BaseActivity() { } fun launchCredits(view: View?) { - Utils.handleWebUrl(this, Uri.parse(Urls.CREDITS_URL)) + handleWebUrl(this, parse(Urls.CREDITS_URL)) } fun launchUserGuide(view: View?) { - Utils.handleWebUrl(this, Uri.parse(Urls.USER_GUIDE_URL)) + handleWebUrl(this, parse(Urls.USER_GUIDE_URL)) } fun launchPrivacyPolicy(view: View?) { - Utils.handleWebUrl(this, Uri.parse(BuildConfig.PRIVACY_POLICY_URL)) + handleWebUrl(this, parse(BuildConfig.PRIVACY_POLICY_URL)) } fun launchFrequentlyAskedQuesions(view: View?) { - Utils.handleWebUrl(this, Uri.parse(Urls.FAQ_URL)) + handleWebUrl(this, parse(Urls.FAQ_URL)) } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -208,7 +208,7 @@ class AboutActivity : BaseActivity() { val positiveButtonRunnable = Runnable { val langCode = instance.languageLookUpTable!!.getCodes()[spinner.selectedItemPosition] - Utils.handleWebUrl(this@AboutActivity, Uri.parse(Urls.TRANSLATE_WIKI_URL + langCode)) + handleWebUrl(this@AboutActivity, parse(Urls.TRANSLATE_WIKI_URL + langCode)) } showAlertDialog( this, diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java index cb422b2f5..c5eac863e 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -7,6 +7,7 @@ import android.view.ViewGroup; import android.widget.TextView; import androidx.viewpager.widget.PagerAdapter; +import fr.free.nrw.commons.utils.UrlUtils; import fr.free.nrw.commons.utils.Utils; public class WelcomePagerAdapter extends PagerAdapter { @@ -48,7 +49,7 @@ public class WelcomePagerAdapter extends PagerAdapter { // Add link to more information TextView moreInfo = layout.findViewById(R.id.welcomeInfo); Utils.setUnderlinedText(moreInfo, R.string.welcome_help_button_text, container.getContext()); - moreInfo.setOnClickListener(view -> Utils.handleWebUrl( + moreInfo.setOnClickListener(view -> UrlUtils.handleWebUrl( container.getContext(), Uri.parse("https://commons.wikimedia.org/wiki/Help:Contents") )); diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt index b4a965941..b950efca8 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt @@ -25,7 +25,6 @@ import androidx.core.content.ContextCompat import fr.free.nrw.commons.BuildConfig import fr.free.nrw.commons.CommonsApplication import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.auth.login.LoginCallback import fr.free.nrw.commons.auth.login.LoginClient import fr.free.nrw.commons.auth.login.LoginResult @@ -37,6 +36,7 @@ import fr.free.nrw.commons.utils.AbstractTextWatcher import fr.free.nrw.commons.utils.ActivityUtils.startActivityWithFlags import fr.free.nrw.commons.utils.ConfigUtils.isBetaFlavour import fr.free.nrw.commons.utils.SystemThemeUtils +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil.hideKeyboard import io.reactivex.disposables.CompositeDisposable import timber.log.Timber @@ -254,10 +254,10 @@ class LoginActivity : AccountAuthenticatorActivity() { } private fun forgotPassword() = - Utils.handleWebUrl(this, Uri.parse(BuildConfig.FORGOT_PASSWORD_URL)) + UrlUtils.handleWebUrl(this, Uri.parse(BuildConfig.FORGOT_PASSWORD_URL)) private fun onPrivacyPolicyClicked() = - Utils.handleWebUrl(this, Uri.parse(BuildConfig.PRIVACY_POLICY_URL)) + UrlUtils.handleWebUrl(this, Uri.parse(BuildConfig.PRIVACY_POLICY_URL)) private fun signUp() = startActivity(Intent(this, SignupActivity::class.java)) diff --git a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.kt b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.kt index c24909bfc..70750be80 100644 --- a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.kt +++ b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.kt @@ -7,7 +7,6 @@ import android.view.LayoutInflater import android.view.View import androidx.core.content.ContextCompat import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.campaigns.models.Campaign import fr.free.nrw.commons.contributions.MainActivity import fr.free.nrw.commons.databinding.LayoutCampaginBinding @@ -15,6 +14,7 @@ import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.utils.CommonsDateUtil.getIso8601DateFormatShort import fr.free.nrw.commons.utils.DateUtil.getExtraShortDateString import fr.free.nrw.commons.utils.SwipableCardView +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil.showLongToast import timber.log.Timber import java.text.ParseException @@ -74,7 +74,7 @@ class CampaignView : SwipableCardView { if (it.isWLMCampaign) { ((context) as MainActivity).showNearby() } else { - Utils.handleWebUrl(context, Uri.parse(it.link)) + UrlUtils.handleWebUrl(context, Uri.parse(it.link)) } } } diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt index c806e79e1..63e5fa117 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt @@ -16,7 +16,6 @@ import androidx.lifecycle.repeatOnLifecycle import fr.free.nrw.commons.BuildConfig.COMMONS_URL import fr.free.nrw.commons.Media import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.ViewPagerAdapter import fr.free.nrw.commons.databinding.ActivityCategoryDetailsBinding import fr.free.nrw.commons.explore.categories.media.CategoriesMediaFragment @@ -24,6 +23,7 @@ import fr.free.nrw.commons.explore.categories.parent.ParentCategoriesFragment import fr.free.nrw.commons.explore.categories.sub.SubCategoriesFragment import fr.free.nrw.commons.media.MediaDetailPagerFragment import fr.free.nrw.commons.theme.BaseActivity +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.wikidata.model.WikiSite import fr.free.nrw.commons.wikidata.model.page.PageTitle import kotlinx.coroutines.launch @@ -204,7 +204,7 @@ class CategoryDetailsActivity : BaseActivity(), R.id.menu_browser_current_category -> { val title = PageTitle(CATEGORY_PREFIX + categoryName, WikiSite(COMMONS_URL)) - Utils.handleWebUrl(this, Uri.parse(title.canonicalUri)) + UrlUtils.handleWebUrl(this, Uri.parse(title.canonicalUri)) true } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.kt index 50ba32f52..f42cf37d8 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.kt @@ -40,6 +40,7 @@ import fr.free.nrw.commons.media.MediaClient import fr.free.nrw.commons.profile.ProfileActivity import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog import fr.free.nrw.commons.utils.SystemThemeUtils +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil.showShortToast import fr.free.nrw.commons.wikidata.model.WikiSite import org.apache.commons.lang3.StringUtils @@ -534,7 +535,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL val url = languageWikipediaSite!!.mobileUrl() + "/wiki/" + (contribution!!.wikidataPlace ?.getWikipediaPageTitle()) - Utils.handleWebUrl(context, Uri.parse(url)) + UrlUtils.handleWebUrl(context, Uri.parse(url)) } fun getContributionStateAt(position: Int): Int { diff --git a/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java index 6c4ff0dab..4c71feb1b 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java @@ -13,7 +13,7 @@ import androidx.fragment.app.FragmentManager; import com.google.android.material.snackbar.Snackbar; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.utils.Utils; +import fr.free.nrw.commons.utils.UrlUtils; import fr.free.nrw.commons.ViewPagerAdapter; import fr.free.nrw.commons.bookmarks.items.BookmarkItemsDao; import fr.free.nrw.commons.category.CategoryImagesCallback; @@ -245,7 +245,7 @@ public class WikidataItemDetailsActivity extends BaseActivity implements MediaDe case R.id.browser_actions_menu_items: String entityId=getIntent().getStringExtra("entityId"); Uri uri = Uri.parse("https://www.wikidata.org/wiki/" + entityId); - Utils.handleWebUrl(this, uri); + UrlUtils.handleWebUrl(this, uri); return true; case R.id.menu_bookmark_current_item: diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index 45b7f091a..0791066c4 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -37,7 +37,7 @@ import fr.free.nrw.commons.MapController; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; import fr.free.nrw.commons.utils.GeoCoordinates; -import fr.free.nrw.commons.utils.Utils; +import fr.free.nrw.commons.utils.UrlUtils; import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao; import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.databinding.FragmentExploreMapBinding; @@ -646,7 +646,7 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment binding.bottomSheetDetailsBinding.commonsButton.setVisibility( place.hasCommonsLink() ? View.VISIBLE : View.GONE); binding.bottomSheetDetailsBinding.commonsButton.setOnClickListener( - view -> Utils.handleWebUrl(getContext(), place.siteLinks.getCommonsLink())); + view -> UrlUtils.handleWebUrl(getContext(), place.siteLinks.getCommonsLink())); int index = 0; for (Media media : mediaList) { diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt index 58f22f177..8203388cb 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt @@ -117,6 +117,7 @@ import fr.free.nrw.commons.utils.LangCodeUtils.getLocalizedResources import fr.free.nrw.commons.utils.PermissionUtils.PERMISSIONS_STORAGE import fr.free.nrw.commons.utils.PermissionUtils.checkPermissionsAndPerformAction import fr.free.nrw.commons.utils.PermissionUtils.hasPermission +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil import fr.free.nrw.commons.utils.ViewUtil.showShortToast import fr.free.nrw.commons.utils.ViewUtilWrapper @@ -910,7 +911,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C private fun onMediaDetailLicenceClicked() { val url: String? = media!!.licenseUrl if (!StringUtils.isBlank(url) && activity != null) { - Utils.handleWebUrl(activity, Uri.parse(url)) + UrlUtils.handleWebUrl(activity, Uri.parse(url)) } else { viewUtil.showShortToast(requireActivity(), getString(R.string.null_url)) } @@ -1766,7 +1767,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C private fun onSeeMoreClicked() { if (binding.nominatedDeletionBanner.visibility == View.VISIBLE && activity != null) { - Utils.handleWebUrl(activity, Uri.parse(media!!.pageTitle.mobileUri)) + UrlUtils.handleWebUrl(activity, Uri.parse(media!!.pageTitle.mobileUri)) } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index b728fc994..45e1cd9cb 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -1,6 +1,6 @@ package fr.free.nrw.commons.media; -import static fr.free.nrw.commons.utils.Utils.handleWebUrl; +import static fr.free.nrw.commons.utils.UrlUtils.handleWebUrl; import android.os.Handler; import android.os.Looper; diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt index 62e58ba9e..f0ae7f8e0 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt @@ -10,13 +10,13 @@ import androidx.activity.result.ActivityResultLauncher import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.PopupMenu import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.auth.LoginActivity import fr.free.nrw.commons.contributions.ContributionController import fr.free.nrw.commons.kvstore.JsonKvStore import fr.free.nrw.commons.nearby.Place import fr.free.nrw.commons.utils.ActivityUtils import fr.free.nrw.commons.utils.GeoCoordinates +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.wikidata.WikidataConstants import timber.log.Timber import javax.inject.Inject @@ -114,7 +114,7 @@ class CommonPlaceClickActions } private fun openWebView(link: Uri): Boolean { - Utils.handleWebUrl(activity, link) + UrlUtils.handleWebUrl(activity, link) return true } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt index 9ad9f3080..ccd5f5763 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt @@ -104,6 +104,7 @@ import fr.free.nrw.commons.utils.NearbyFABUtils.addAnchorToSmallFABs import fr.free.nrw.commons.utils.NearbyFABUtils.removeAnchorFromFAB import fr.free.nrw.commons.utils.NetworkUtils.isInternetConnectionEstablished import fr.free.nrw.commons.utils.SystemThemeUtils +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil.showLongToast import fr.free.nrw.commons.wikidata.WikidataConstants import fr.free.nrw.commons.wikidata.WikidataEditListener @@ -2860,7 +2861,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), R.drawable.ic_wikidata_logo_24dp -> { selectedPlace?.siteLinks?.wikidataLink?.let { - Utils.handleWebUrl(this.context, it) + UrlUtils.handleWebUrl(this.context, it) } } @@ -2878,13 +2879,13 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), R.drawable.ic_wikipedia_logo_24dp -> { selectedPlace?.siteLinks?.wikipediaLink?.let { - Utils.handleWebUrl(this.context, it) + UrlUtils.handleWebUrl(this.context, it) } } R.drawable.ic_commons_icon_vector -> { selectedPlace?.siteLinks?.commonsLink?.let { - Utils.handleWebUrl(this.context, it) + UrlUtils.handleWebUrl(this.context, it) } } diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.kt b/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.kt index 5253d30e9..5f54957df 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.kt @@ -13,7 +13,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.snackbar.Snackbar import fr.free.nrw.commons.CommonsApplication import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.auth.csrf.InvalidLoginTokenException import fr.free.nrw.commons.databinding.ActivityNotificationBinding @@ -21,6 +20,7 @@ import fr.free.nrw.commons.notification.models.Notification import fr.free.nrw.commons.notification.models.NotificationType import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.utils.NetworkUtils +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -197,7 +197,7 @@ class NotificationActivity : BaseActivity() { private fun handleUrl(url: String?) { if (url.isNullOrEmpty()) return - Utils.handleWebUrl(this, Uri.parse(url)) + UrlUtils.handleWebUrl(this, Uri.parse(url)) } private fun setItems(notificationList: List?) { diff --git a/app/src/main/java/fr/free/nrw/commons/profile/achievements/AchievementsFragment.kt b/app/src/main/java/fr/free/nrw/commons/profile/achievements/AchievementsFragment.kt index 52afdf1a5..19b1b0a2c 100644 --- a/app/src/main/java/fr/free/nrw/commons/profile/achievements/AchievementsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/profile/achievements/AchievementsFragment.kt @@ -15,7 +15,6 @@ import com.google.android.material.badge.BadgeDrawable import com.google.android.material.badge.BadgeUtils import com.google.android.material.badge.ExperimentalBadgeUtils import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.databinding.FragmentAchievementsBinding import fr.free.nrw.commons.di.CommonsDaggerSupportFragment @@ -25,6 +24,7 @@ import fr.free.nrw.commons.profile.ProfileActivity import fr.free.nrw.commons.profile.achievements.LevelController.LevelInfo.Companion.from import fr.free.nrw.commons.utils.ConfigUtils.isBetaFlavour import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil.showDismissibleSnackBar import fr.free.nrw.commons.utils.ViewUtil.showLongToast import io.reactivex.android.schedulers.AndroidSchedulers @@ -524,7 +524,7 @@ class AchievementsFragment : CommonsDaggerSupportFragment(){ getString(R.string.ok), getString(R.string.read_help_link), {}, - { Utils.handleWebUrl(requireContext(), Uri.parse(helpLinkUrl)) }, + { UrlUtils.handleWebUrl(requireContext(), Uri.parse(helpLinkUrl)) }, null ) } diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.kt b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.kt index 8e3fa412e..6f4d6a281 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.kt @@ -34,7 +34,6 @@ import com.karumi.dexter.PermissionToken import com.karumi.dexter.listener.PermissionRequest import com.karumi.dexter.listener.multi.MultiplePermissionsListener import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.activity.SingleWebViewActivity import fr.free.nrw.commons.campaigns.CampaignView import fr.free.nrw.commons.contributions.ContributionController @@ -51,6 +50,7 @@ import fr.free.nrw.commons.upload.LanguagesAdapter import fr.free.nrw.commons.utils.DialogUtil import fr.free.nrw.commons.utils.PermissionUtils import fr.free.nrw.commons.utils.StringUtil +import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.ViewUtil import java.util.Locale import javax.inject.Inject @@ -238,7 +238,10 @@ class SettingsFragment : PreferenceFragmentCompat() { val betaTesterPreference: Preference? = findPreference("becomeBetaTester") betaTesterPreference?.setOnPreferenceClickListener { - Utils.handleWebUrl(requireActivity(), Uri.parse(getString(R.string.beta_opt_in_link))) + UrlUtils.handleWebUrl( + requireActivity(), + Uri.parse(getString(R.string.beta_opt_in_link)) + ) true } @@ -295,7 +298,7 @@ class SettingsFragment : PreferenceFragmentCompat() { getString(R.string.ok), getString(R.string.read_help_link), { }, - { Utils.handleWebUrl(requireContext(), Uri.parse(GET_CONTENT_PICKER_HELP_URL)) }, + { UrlUtils.handleWebUrl(requireContext(), Uri.parse(GET_CONTENT_PICKER_HELP_URL)) }, null ) } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt index e8ae5b4d3..d6cb5a0c1 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt @@ -16,12 +16,12 @@ import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.TextView import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.databinding.FragmentMediaLicenseBinding import fr.free.nrw.commons.upload.UploadActivity import fr.free.nrw.commons.upload.UploadBaseFragment import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog import fr.free.nrw.commons.utils.Licenses +import fr.free.nrw.commons.utils.UrlUtils import timber.log.Timber import javax.inject.Inject @@ -185,7 +185,7 @@ class MediaLicenseFragment : UploadBaseFragment(), MediaLicenseContract.View { } private fun launchBrowser(hyperLink: String) = - Utils.handleWebUrl(context, Uri.parse(hyperLink)) + UrlUtils.handleWebUrl(context, Uri.parse(hyperLink)) override fun onDestroyView() { presenter.onDetachView() diff --git a/app/src/main/java/fr/free/nrw/commons/utils/UrlUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/UrlUtils.java new file mode 100644 index 000000000..0225ba677 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/utils/UrlUtils.java @@ -0,0 +1,36 @@ +package fr.free.nrw.commons.utils; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import androidx.browser.customtabs.CustomTabColorSchemeParams; +import androidx.browser.customtabs.CustomTabsIntent; +import androidx.core.content.ContextCompat; +import fr.free.nrw.commons.R; +import timber.log.Timber; + +public final class UrlUtils { + + /** + * Opens Custom Tab Activity with in-app browser for the specified URL. + * Launches intent for web URL + * @param context + * @param url + */ + public static void handleWebUrl(Context context, Uri url) { + Timber.d("Launching web url %s", url.toString()); + + final CustomTabColorSchemeParams color = new CustomTabColorSchemeParams.Builder() + .setToolbarColor(ContextCompat.getColor(context, R.color.primaryColor)) + .setSecondaryToolbarColor(ContextCompat.getColor(context, R.color.primaryDarkColor)) + .build(); + + CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); + builder.setDefaultColorSchemeParams(color); + builder.setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right); + CustomTabsIntent customTabsIntent = builder.build(); + // Clear previous browser tasks, so that back/exit buttons work as intended. + customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + customTabsIntent.launchUrl(context, url); + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/utils/Utils.java b/app/src/main/java/fr/free/nrw/commons/utils/Utils.java index a13281c56..e3bdbb2a8 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/Utils.java @@ -3,23 +3,13 @@ package fr.free.nrw.commons.utils; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; -import android.content.Intent; -import android.net.Uri; import android.text.SpannableString; import android.text.style.UnderlineSpan; import android.widget.TextView; -import androidx.browser.customtabs.CustomTabColorSchemeParams; -import androidx.browser.customtabs.CustomTabsIntent; -import androidx.core.content.ContextCompat; - -import fr.free.nrw.commons.R; - import java.util.Locale; import java.util.regex.Pattern; -import timber.log.Timber; - public class Utils { /** @@ -51,29 +41,6 @@ public class Utils { return title; } - /** - * Opens Custom Tab Activity with in-app browser for the specified URL. - * Launches intent for web URL - * @param context - * @param url - */ - public static void handleWebUrl(Context context, Uri url) { - Timber.d("Launching web url %s", url.toString()); - - final CustomTabColorSchemeParams color = new CustomTabColorSchemeParams.Builder() - .setToolbarColor(ContextCompat.getColor(context, R.color.primaryColor)) - .setSecondaryToolbarColor(ContextCompat.getColor(context, R.color.primaryDarkColor)) - .build(); - - CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); - builder.setDefaultColorSchemeParams(color); - builder.setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right); - CustomTabsIntent customTabsIntent = builder.build(); - // Clear previous browser tasks, so that back/exit buttons work as intended. - customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - customTabsIntent.launchUrl(context, url); - } - /* *Copies the content to the clipboard *