Loading packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt +48 −0 Original line number Diff line number Diff line Loading @@ -18,7 +18,9 @@ package com.android.settingslib.widget import android.content.Context import android.os.Build import android.text.TextUtils import android.util.AttributeSet import android.view.View import androidx.annotation.RequiresApi import androidx.preference.Preference import androidx.preference.PreferenceViewHolder Loading @@ -33,6 +35,9 @@ class IntroPreference @JvmOverloads constructor( private var isCollapsable: Boolean = false private var minLines: Int = 2 private var hyperlinkListener: View.OnClickListener? = null private var learnMoreListener: View.OnClickListener? = null private var learnMoreText: CharSequence? = null init { layoutResource = R.layout.settingslib_expressive_preference_intro Loading Loading @@ -64,6 +69,13 @@ class IntroPreference @JvmOverloads constructor( setCollapsable(isCollapsable) setMinLines(minLines) setText(summary.toString()) if (hyperlinkListener != null) { setHyperlinkListener(hyperlinkListener) } if (learnMoreListener != null) { setLearnMoreText(learnMoreText) setLearnMoreAction(learnMoreListener) } } } Loading @@ -88,6 +100,42 @@ class IntroPreference @JvmOverloads constructor( notifyChanged() } /** * Sets the action when clicking on the hyperlink in the text. * @param listener The click listener for hyperlink. */ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) fun setHyperlinkListener(listener: View.OnClickListener) { if (hyperlinkListener != listener) { hyperlinkListener = listener notifyChanged() } } /** * Sets the action when clicking on the learn more view. * @param listener The click listener for learn more. */ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) fun setLearnMoreAction(listener: View.OnClickListener) { if (learnMoreListener != listener) { learnMoreListener = listener notifyChanged() } } /** * Sets the text of learn more view. * @param text The text of learn more. */ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) fun setLearnMoreText(text: CharSequence) { if (!TextUtils.equals(learnMoreText, text)) { learnMoreText = text notifyChanged() } } companion object { private const val DEFAULT_MAX_LINES = 10 private const val DEFAULT_MIN_LINES = 2 Loading Loading
packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt +48 −0 Original line number Diff line number Diff line Loading @@ -18,7 +18,9 @@ package com.android.settingslib.widget import android.content.Context import android.os.Build import android.text.TextUtils import android.util.AttributeSet import android.view.View import androidx.annotation.RequiresApi import androidx.preference.Preference import androidx.preference.PreferenceViewHolder Loading @@ -33,6 +35,9 @@ class IntroPreference @JvmOverloads constructor( private var isCollapsable: Boolean = false private var minLines: Int = 2 private var hyperlinkListener: View.OnClickListener? = null private var learnMoreListener: View.OnClickListener? = null private var learnMoreText: CharSequence? = null init { layoutResource = R.layout.settingslib_expressive_preference_intro Loading Loading @@ -64,6 +69,13 @@ class IntroPreference @JvmOverloads constructor( setCollapsable(isCollapsable) setMinLines(minLines) setText(summary.toString()) if (hyperlinkListener != null) { setHyperlinkListener(hyperlinkListener) } if (learnMoreListener != null) { setLearnMoreText(learnMoreText) setLearnMoreAction(learnMoreListener) } } } Loading @@ -88,6 +100,42 @@ class IntroPreference @JvmOverloads constructor( notifyChanged() } /** * Sets the action when clicking on the hyperlink in the text. * @param listener The click listener for hyperlink. */ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) fun setHyperlinkListener(listener: View.OnClickListener) { if (hyperlinkListener != listener) { hyperlinkListener = listener notifyChanged() } } /** * Sets the action when clicking on the learn more view. * @param listener The click listener for learn more. */ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) fun setLearnMoreAction(listener: View.OnClickListener) { if (learnMoreListener != listener) { learnMoreListener = listener notifyChanged() } } /** * Sets the text of learn more view. * @param text The text of learn more. */ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) fun setLearnMoreText(text: CharSequence) { if (!TextUtils.equals(learnMoreText, text)) { learnMoreText = text notifyChanged() } } companion object { private const val DEFAULT_MAX_LINES = 10 private const val DEFAULT_MIN_LINES = 2 Loading