From 7e45fc4a3ece0dbf747d1881fc78387aa81fa7e3 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 8 Sep 2022 13:01:59 -0300 Subject: [PATCH] Update URL formatting for username links. --- .../profiles/manage/ManageProfileFragment.java | 14 ++++++++++++++ .../profiles/manage/UsernameShareBottomSheet.kt | 6 ++++-- app/src/main/res/values/strings.xml | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/ManageProfileFragment.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/ManageProfileFragment.java index 3b646d2b90..46004d7701 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/ManageProfileFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/ManageProfileFragment.java @@ -22,6 +22,7 @@ import com.airbnb.lottie.SimpleColorFilter; import com.bumptech.glide.Glide; import com.google.android.material.snackbar.Snackbar; +import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.AvatarPreviewActivity; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.R; @@ -42,11 +43,16 @@ import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Optional; public class ManageProfileFragment extends LoggingFragment { + private static final String TAG = Log.tag(ManageProfileFragment.class); + private AlertDialog avatarProgress; private ManageProfileViewModel viewModel; private ManageProfileFragmentBinding binding; @@ -214,6 +220,14 @@ public class ManageProfileFragment extends LoggingFragment { binding.manageProfileUsernameShare.setVisibility(View.GONE); } else { binding.manageProfileUsername.setText(username); + + try { + binding.manageProfileUsernameSubtitle.setText(getString(R.string.signal_me_username_url_no_scheme, URLEncoder.encode(username, StandardCharsets.UTF_8.toString()))); + } catch (UnsupportedEncodingException e) { + Log.w(TAG, "Could not format username link", e); + binding.manageProfileUsernameSubtitle.setText(R.string.ManageProfileFragment_your_username); + } + binding.manageProfileUsernameShare.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt index 8ae579b1b9..5ef969ea80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt @@ -19,6 +19,8 @@ import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.FragmentResultContract import org.thoughtcrime.securesms.util.LifecycleDisposable import org.thoughtcrime.securesms.util.Util +import java.net.URLEncoder +import java.nio.charset.StandardCharsets /** * Allows the user to either share their username directly or to copy it to their clipboard. @@ -69,7 +71,7 @@ class UsernameShareBottomSheet : DSLSettingsBottomSheetFragment() { customPref( CopyButton.Model( - text = getString(R.string.signal_me_url, username), + text = getString(R.string.signal_me_username_url, URLEncoder.encode(username, StandardCharsets.UTF_8.toString())), onClick = { copyToClipboard(it) } @@ -80,7 +82,7 @@ class UsernameShareBottomSheet : DSLSettingsBottomSheetFragment() { customPref( ShareButton.Model( - text = getString(R.string.signal_me_url, username), + text = getString(R.string.signal_me_username_url, URLEncoder.encode(username, StandardCharsets.UTF_8.toString())), onClick = { openShareSheet(it.text) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 945906381a..87a31db1ba 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,7 +11,8 @@ https://support.signal.org/hc/articles/4408365318426 https://pay.google.com https://support.signal.org/hc/articles/4408365318426#errors - https://signal.me/%1$s + https://signal.me/#u/%1$s + signal.me/#u/%1$s Yes No