From f1a36ae0f60c2c70dd4a512f31222aa1ff14369c Mon Sep 17 00:00:00 2001 From: Andy Valdez Date: Fri, 13 Sep 2024 17:37:06 -0400 Subject: [PATCH] Change using spans directly and use html.toHtml instead. --- .../authentication/SignInFragment.kt | 21 ++++++++------ .../automattic/simplenote/utils/StrUtils.java | 28 ------------------- Simplenote/src/main/res/values/strings.xml | 2 +- 3 files changed, 14 insertions(+), 37 deletions(-) diff --git a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignInFragment.kt b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignInFragment.kt index 0cb73cb2a..d0072d96f 100644 --- a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignInFragment.kt +++ b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignInFragment.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.graphics.Color import android.net.Uri import android.os.Bundle +import android.text.Html import android.text.method.LinkMovementMethod import android.util.Log import android.view.LayoutInflater @@ -15,6 +16,7 @@ import android.widget.EditText import android.widget.TextView import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels import com.automattic.simplenote.R import com.automattic.simplenote.Simplenote @@ -105,16 +107,19 @@ class SignInFragment: MagicLinkableFragment() { ) } val manualLoginTextView = view.findViewById(R.id.sign_in_login_manually) - val message = getString(R.string.signin_login_with_email_manually); - val span = StrUtils.generateClickableSpannableString(LOGIN_MANUALLY_SUBSTRING, message - ) { + context?.let { + val colorLink = Integer.toHexString(ContextCompat.getColor(it, R.color.text_link) and 16777215) + manualLoginTextView.text = Html.fromHtml( + String.format( + getString(R.string.signin_login_with_email_manually), + "", "" + ) + ) + } + manualLoginTextView.setOnClickListener { val email = getEmailEditText() showLoginWithPassword(activity, email?.text?.toString()) } - - manualLoginTextView.text = span - manualLoginTextView.movementMethod = LinkMovementMethod.getInstance() - manualLoginTextView.highlightColor = Color.TRANSPARENT return view } @@ -169,7 +174,7 @@ class SignInFragment: MagicLinkableFragment() { companion object { const val LOGIN_MANUALLY_SUBSTRING = "log in manually" - + fun showLoginWithPassword(activity: Activity?, username: String?) { activity?.let { act -> val intent = Intent(act, NewCredentialsActivity::class.java) diff --git a/Simplenote/src/main/java/com/automattic/simplenote/utils/StrUtils.java b/Simplenote/src/main/java/com/automattic/simplenote/utils/StrUtils.java index 1da35f6b9..081ea7548 100644 --- a/Simplenote/src/main/java/com/automattic/simplenote/utils/StrUtils.java +++ b/Simplenote/src/main/java/com/automattic/simplenote/utils/StrUtils.java @@ -7,14 +7,8 @@ import static androidx.core.util.PatternsCompat.EMAIL_ADDRESS; -import android.text.SpannableString; import android.text.Spanned; -import android.text.TextPaint; import android.text.TextUtils; -import android.text.style.ClickableSpan; -import android.view.View; - -import androidx.annotation.NonNull; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -140,26 +134,4 @@ public static Spanned setTextToUpperCaseAndBold(String originalString) { return HtmlCompat.fromHtml("" + originalString.toUpperCase() + ""); } - - public static SpannableString generateClickableSpannableString(final String targetString, final String text, final View.OnClickListener onClickListener) { - final SpannableString spannableString = new SpannableString(text); - final int startIndex = text.indexOf(targetString); - if (startIndex == -1) { - return spannableString; - } - final int endIndex = startIndex + targetString.length(); - spannableString.setSpan(new ClickableSpan() { - @Override - public void onClick(@NonNull View widget) { - onClickListener.onClick(widget); - } - - @Override - public void updateDrawState(@NonNull TextPaint ds) { - super.updateDrawState(ds); - ds.setUnderlineText(false); - } - }, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - return spannableString; - } } diff --git a/Simplenote/src/main/res/values/strings.xml b/Simplenote/src/main/res/values/strings.xml index 5f78704bc..741878017 100644 --- a/Simplenote/src/main/res/values/strings.xml +++ b/Simplenote/src/main/res/values/strings.xml @@ -452,5 +452,5 @@ We\'ve sent a code to \n%1$s. The code will be valid for a few minutes. Enter the password for the account %1$s - We\'ll email you a code to log in, or you can log in manually. + We\'ll email you a code to log in, or you can %1$s%2$s%3$slog in manually%4$s.