diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index ea0cb3b07..5c297a65e 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -16,7 +16,6 @@ - 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 6b16b655e..ebbb4097a 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.kt @@ -5,7 +5,6 @@ import android.content.ActivityNotFoundException import android.content.Intent import android.content.Intent.ACTION_VIEW import android.net.Uri -import android.net.Uri.parse import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -18,10 +17,9 @@ import fr.free.nrw.commons.databinding.ActivityAboutBinding 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.UnderlineUtils -import fr.free.nrw.commons.utils.UrlUtils.handleWebUrl import java.util.Collections import androidx.core.net.toUri +import fr.free.nrw.commons.utils.handleWebUrl import fr.free.nrw.commons.utils.setUnderlinedText /** @@ -95,27 +93,27 @@ class AboutActivity : BaseActivity() { fun launchFacebook(view: View?) { val intent: Intent try { - intent = Intent(Intent.ACTION_VIEW, Uri.parse(Urls.FACEBOOK_APP_URL)) + intent = Intent(ACTION_VIEW, Urls.FACEBOOK_APP_URL.toUri()) intent.setPackage(Urls.FACEBOOK_PACKAGE_NAME) startActivity(intent) } catch (e: Exception) { - handleWebUrl(this, parse(Urls.FACEBOOK_WEB_URL)) + handleWebUrl(this, Urls.FACEBOOK_WEB_URL.toUri()) } } fun launchGithub(view: View?) { val intent: Intent try { - intent = Intent(Intent.ACTION_VIEW, Uri.parse(Urls.GITHUB_REPO_URL)) + intent = Intent(ACTION_VIEW, Urls.GITHUB_REPO_URL.toUri()) intent.setPackage(Urls.GITHUB_PACKAGE_NAME) startActivity(intent) } catch (e: Exception) { - handleWebUrl(this, parse(Urls.GITHUB_REPO_URL)) + handleWebUrl(this, Urls.GITHUB_REPO_URL.toUri()) } } fun launchWebsite(view: View?) { - handleWebUrl(this, parse(Urls.WEBSITE_URL)) + handleWebUrl(this, Urls.WEBSITE_URL.toUri()) } fun launchRatings(view: View?) { @@ -132,19 +130,19 @@ class AboutActivity : BaseActivity() { } fun launchCredits(view: View?) { - handleWebUrl(this, parse(Urls.CREDITS_URL)) + handleWebUrl(this, Urls.CREDITS_URL.toUri()) } fun launchUserGuide(view: View?) { - handleWebUrl(this, parse(Urls.USER_GUIDE_URL)) + handleWebUrl(this, Urls.USER_GUIDE_URL.toUri()) } fun launchPrivacyPolicy(view: View?) { - handleWebUrl(this, parse(BuildConfig.PRIVACY_POLICY_URL)) + handleWebUrl(this, BuildConfig.PRIVACY_POLICY_URL.toUri()) } fun launchFrequentlyAskedQuesions(view: View?) { - handleWebUrl(this, parse(Urls.FAQ_URL)) + handleWebUrl(this, Urls.FAQ_URL.toUri()) } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -191,7 +189,7 @@ class AboutActivity : BaseActivity() { val positiveButtonRunnable = Runnable { val langCode = instance.languageLookUpTable!!.getCodes()[spinner.selectedItemPosition] - handleWebUrl(this@AboutActivity, parse(Urls.TRANSLATE_WIKI_URL + langCode)) + handleWebUrl(this@AboutActivity, (Urls.TRANSLATE_WIKI_URL + langCode).toUri()) } 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 c553ba1a6..a9b7381df 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -1,5 +1,7 @@ package fr.free.nrw.commons; +import static fr.free.nrw.commons.utils.UrlUtilsKt.handleWebUrl; + import android.net.Uri; import android.view.LayoutInflater; import android.view.View; @@ -7,7 +9,6 @@ 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.UnderlineUtils; public class WelcomePagerAdapter extends PagerAdapter { @@ -49,7 +50,7 @@ public class WelcomePagerAdapter extends PagerAdapter { // Add link to more information TextView moreInfo = layout.findViewById(R.id.welcomeInfo); UnderlineUtils.setUnderlinedText(moreInfo, R.string.welcome_help_button_text); - moreInfo.setOnClickListener(view -> UrlUtils.handleWebUrl( + moreInfo.setOnClickListener(view -> 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 b950efca8..a606d639f 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 @@ -36,8 +36,8 @@ 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 fr.free.nrw.commons.utils.handleWebUrl import io.reactivex.disposables.CompositeDisposable import timber.log.Timber import java.util.Locale @@ -254,10 +254,10 @@ class LoginActivity : AccountAuthenticatorActivity() { } private fun forgotPassword() = - UrlUtils.handleWebUrl(this, Uri.parse(BuildConfig.FORGOT_PASSWORD_URL)) + handleWebUrl(this, Uri.parse(BuildConfig.FORGOT_PASSWORD_URL)) private fun onPrivacyPolicyClicked() = - UrlUtils.handleWebUrl(this, Uri.parse(BuildConfig.PRIVACY_POLICY_URL)) + 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 70750be80..7a30ff5c4 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 @@ -14,8 +14,8 @@ 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 fr.free.nrw.commons.utils.handleWebUrl import timber.log.Timber import java.text.ParseException @@ -74,7 +74,7 @@ class CampaignView : SwipableCardView { if (it.isWLMCampaign) { ((context) as MainActivity).showNearby() } else { - UrlUtils.handleWebUrl(context, Uri.parse(it.link)) + 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 63e5fa117..e15d9baf3 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 @@ -23,7 +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.utils.handleWebUrl 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)) - UrlUtils.handleWebUrl(this, Uri.parse(title.canonicalUri)) + 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 94f2d5d27..b86cd6dc9 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 @@ -39,9 +39,9 @@ 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.utils.copyToClipboard +import fr.free.nrw.commons.utils.handleWebUrl import fr.free.nrw.commons.wikidata.model.WikiSite import org.apache.commons.lang3.StringUtils import javax.inject.Inject @@ -534,7 +534,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL val url = languageWikipediaSite!!.mobileUrl() + "/wiki/" + (contribution!!.wikidataPlace ?.getWikipediaPageTitle()) - UrlUtils.handleWebUrl(requireContext(), Uri.parse(url)) + handleWebUrl(requireContext(), 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 4c71feb1b..89593d07e 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 @@ -1,5 +1,7 @@ package fr.free.nrw.commons.explore.depictions; +import static fr.free.nrw.commons.utils.UrlUtilsKt.handleWebUrl; + import android.content.Context; import android.content.Intent; import android.net.Uri; @@ -13,7 +15,6 @@ 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.UrlUtils; import fr.free.nrw.commons.ViewPagerAdapter; import fr.free.nrw.commons.bookmarks.items.BookmarkItemsDao; import fr.free.nrw.commons.category.CategoryImagesCallback; @@ -245,7 +246,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); - UrlUtils.handleWebUrl(this, uri); + 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 26d915f0f..364f4d53a 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 @@ -4,6 +4,7 @@ import static fr.free.nrw.commons.location.LocationServiceManager.LocationChange import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SLIGHTLY_CHANGED; import static fr.free.nrw.commons.utils.GeoCoordinatesKt.handleGeoCoordinates; import static fr.free.nrw.commons.utils.MapUtils.ZOOM_LEVEL; +import static fr.free.nrw.commons.utils.UrlUtilsKt.handleWebUrl; import android.Manifest.permission; import android.annotation.SuppressLint; @@ -37,7 +38,6 @@ import fr.free.nrw.commons.BaseMarker; import fr.free.nrw.commons.MapController; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -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 -> UrlUtils.handleWebUrl(getContext(), place.siteLinks.getCommonsLink())); + view -> 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 a7a25932c..5980e1fb5 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 @@ -116,12 +116,12 @@ 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 import fr.free.nrw.commons.utils.copyToClipboard import fr.free.nrw.commons.utils.handleGeoCoordinates +import fr.free.nrw.commons.utils.handleWebUrl import fr.free.nrw.commons.utils.setUnderlinedText import fr.free.nrw.commons.wikidata.mwapi.MwQueryPage.Revision import io.reactivex.Observable @@ -912,7 +912,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C private fun onMediaDetailLicenceClicked() { val url: String? = media!!.licenseUrl if (!StringUtils.isBlank(url) && activity != null) { - UrlUtils.handleWebUrl(activity, Uri.parse(url)) + handleWebUrl(requireContext(), Uri.parse(url)) } else { viewUtil.showShortToast(requireActivity(), getString(R.string.null_url)) } @@ -1768,7 +1768,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C private fun onSeeMoreClicked() { if (binding.nominatedDeletionBanner.visibility == View.VISIBLE && activity != null) { - UrlUtils.handleWebUrl(activity, Uri.parse(media!!.pageTitle.mobileUri)) + handleWebUrl(requireContext(), 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 cb43657e8..324d5867b 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.UrlUtils.handleWebUrl; +import static fr.free.nrw.commons.utils.UrlUtilsKt.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 613df8a98..5f4d0ab13 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 @@ -15,8 +15,8 @@ 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.UrlUtils import fr.free.nrw.commons.utils.handleGeoCoordinates +import fr.free.nrw.commons.utils.handleWebUrl 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 { - UrlUtils.handleWebUrl(activity, link) + 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 75ee15366..a0dcead07 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 @@ -101,10 +101,10 @@ 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.utils.copyToClipboard import fr.free.nrw.commons.utils.handleGeoCoordinates +import fr.free.nrw.commons.utils.handleWebUrl import fr.free.nrw.commons.utils.isMonumentsEnabled import fr.free.nrw.commons.wikidata.WikidataConstants import fr.free.nrw.commons.wikidata.WikidataEditListener @@ -2860,7 +2860,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), R.drawable.ic_wikidata_logo_24dp -> { selectedPlace?.siteLinks?.wikidataLink?.let { - UrlUtils.handleWebUrl(this.context, it) + handleWebUrl(requireContext(), it) } } @@ -2878,13 +2878,13 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), R.drawable.ic_wikipedia_logo_24dp -> { selectedPlace?.siteLinks?.wikipediaLink?.let { - UrlUtils.handleWebUrl(this.context, it) + handleWebUrl(requireContext(), it) } } R.drawable.ic_commons_icon_vector -> { selectedPlace?.siteLinks?.commonsLink?.let { - UrlUtils.handleWebUrl(this.context, it) + handleWebUrl(requireContext(), 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 5f54957df..76975964b 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 @@ -20,8 +20,8 @@ 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 fr.free.nrw.commons.utils.handleWebUrl import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers @@ -197,7 +197,7 @@ class NotificationActivity : BaseActivity() { private fun handleUrl(url: String?) { if (url.isNullOrEmpty()) return - UrlUtils.handleWebUrl(this, Uri.parse(url)) + 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 19b1b0a2c..8f23674ca 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 @@ -24,9 +24,9 @@ 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 fr.free.nrw.commons.utils.handleWebUrl import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import org.apache.commons.lang3.StringUtils @@ -524,7 +524,7 @@ class AchievementsFragment : CommonsDaggerSupportFragment(){ getString(R.string.ok), getString(R.string.read_help_link), {}, - { UrlUtils.handleWebUrl(requireContext(), Uri.parse(helpLinkUrl)) }, + { 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 6f4d6a281..387dd4672 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 @@ -50,8 +50,8 @@ 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 fr.free.nrw.commons.utils.handleWebUrl import java.util.Locale import javax.inject.Inject import javax.inject.Named @@ -238,7 +238,7 @@ class SettingsFragment : PreferenceFragmentCompat() { val betaTesterPreference: Preference? = findPreference("becomeBetaTester") betaTesterPreference?.setOnPreferenceClickListener { - UrlUtils.handleWebUrl( + handleWebUrl( requireActivity(), Uri.parse(getString(R.string.beta_opt_in_link)) ) @@ -298,7 +298,7 @@ class SettingsFragment : PreferenceFragmentCompat() { getString(R.string.ok), getString(R.string.read_help_link), { }, - { UrlUtils.handleWebUrl(requireContext(), Uri.parse(GET_CONTENT_PICKER_HELP_URL)) }, + { 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 528662be6..65826a505 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 @@ -20,7 +20,7 @@ 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.UrlUtils +import fr.free.nrw.commons.utils.handleWebUrl import fr.free.nrw.commons.utils.toLicenseName import fr.free.nrw.commons.utils.toLicenseUrl import timber.log.Timber @@ -186,7 +186,7 @@ class MediaLicenseFragment : UploadBaseFragment(), MediaLicenseContract.View { } private fun launchBrowser(hyperLink: String) = - UrlUtils.handleWebUrl(context, Uri.parse(hyperLink)) + handleWebUrl(requireContext(), 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 deleted file mode 100644 index 0225ba677..000000000 --- a/app/src/main/java/fr/free/nrw/commons/utils/UrlUtils.java +++ /dev/null @@ -1,36 +0,0 @@ -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/UrlUtils.kt b/app/src/main/java/fr/free/nrw/commons/utils/UrlUtils.kt new file mode 100644 index 000000000..4843cf0aa --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/utils/UrlUtils.kt @@ -0,0 +1,33 @@ +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 + +/** + * Opens Custom Tab Activity with in-app browser for the specified URL. + * Launches intent for web URL + */ +fun handleWebUrl(context: Context, url: Uri) { + Timber.d("Launching web url %s", url.toString()) + + val color = CustomTabColorSchemeParams.Builder() + .setToolbarColor(ContextCompat.getColor(context, R.color.primaryColor)) + .setSecondaryToolbarColor(ContextCompat.getColor(context, R.color.primaryDarkColor)) + .build() + + val customTabsIntent = CustomTabsIntent.Builder() + .setDefaultColorSchemeParams(color) + .setExitAnimations( + context, android.R.anim.slide_in_left, android.R.anim.slide_out_right + ).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) +}