From d01497a5de29205ae7e6ce6ceb05cdc86dda24f6 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Mon, 28 Mar 2022 22:34:11 +0800 Subject: [PATCH] Fix "learn more" link is not clickable Use function setLearnMoreAction instead of ClickableSpan in NFC FooterPreference. Bug: 226299551 Test: maunal test Change-Id: I69c494b3e6fc92940d498d8be0c9ef5041b1bb3b --- .../settings/nfc/DefaultPaymentSettings.java | 35 ++++--------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/src/com/android/settings/nfc/DefaultPaymentSettings.java b/src/com/android/settings/nfc/DefaultPaymentSettings.java index 08b843d48f5..5224d92fb4e 100644 --- a/src/com/android/settings/nfc/DefaultPaymentSettings.java +++ b/src/com/android/settings/nfc/DefaultPaymentSettings.java @@ -29,13 +29,9 @@ import android.text.Spanned; import android.text.TextUtils; import android.text.style.AlignmentSpan; import android.text.style.BulletSpan; -import android.text.style.ClickableSpan; import android.text.style.RelativeSizeSpan; -import android.view.View; -import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; -import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; @@ -58,7 +54,7 @@ public class DefaultPaymentSettings extends DefaultAppPickerFragment { private PaymentBackend mPaymentBackend; private List mAppInfos; - private Preference mFooterPreference; + private FooterPreference mFooterPreference; @Override public int getMetricsCategory() { @@ -249,31 +245,12 @@ public class DefaultPaymentSettings extends DefaultAppPickerFragment { } private void setupFooterPreference() { - final String textNfcDefaultPaymentFooter = getResources().getString( - R.string.nfc_default_payment_footer); - final String textMoreDetails = getResources().getString(R.string.nfc_more_details); - - final SpannableString spannableString = new SpannableString( - textNfcDefaultPaymentFooter + System.lineSeparator() - + System.lineSeparator() + textMoreDetails); - final ClickableSpan clickableSpan = new ClickableSpan() { - @Override - public void onClick(@NonNull View widget) { - Intent howItWorksIntent = new Intent(getActivity(), HowItWorks.class); - startActivity(howItWorksIntent); - } - }; - - if (textNfcDefaultPaymentFooter != null && textMoreDetails != null) { - spannableString.setSpan(clickableSpan, textNfcDefaultPaymentFooter.length() + 1, - textNfcDefaultPaymentFooter.length() + textMoreDetails.length() + 2, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - mFooterPreference = new FooterPreference(getContext()); - mFooterPreference.setLayoutResource(R.layout.preference_footer); - mFooterPreference.setTitle(spannableString); - mFooterPreference.setSelectable(false); + mFooterPreference.setTitle(getResources().getString(R.string.nfc_default_payment_footer)); mFooterPreference.setIcon(R.drawable.ic_info_outline_24dp); + mFooterPreference.setLearnMoreAction(v -> { + final Intent howItWorksIntent = new Intent(getActivity(), HowItWorks.class); + getContext().startActivity(howItWorksIntent); + }); } }