From 68d701db9716ac2cd4a58314af4c56ac27a9eeaa Mon Sep 17 00:00:00 2001 From: Peter_Liang Date: Tue, 4 Feb 2020 19:03:50 +0800 Subject: [PATCH] Update the rich content UI to meet the UX design version 2. 1. Using the footerPreference component for the interface android:desription. 2. Remove the redundant and unused codes. 3. Remove the ripple effect for AnimatedImagePreference. Bug: 142532186 Test: manual test Change-Id: I547ed7611b40d8b7bee4c4350b00bd4987768950 --- res/layout/preference_static_text.xml | 9 +-- res/values/strings.xml | 2 +- .../AnimatedImagePreference.java | 14 ----- .../accessibility/HtmlTextPreference.java | 14 ----- .../ToggleFeaturePreferenceFragment.java | 56 +++++++++---------- 5 files changed, 32 insertions(+), 63 deletions(-) diff --git a/res/layout/preference_static_text.xml b/res/layout/preference_static_text.xml index b36fd58b1f3..41968a2ae7a 100644 --- a/res/layout/preference_static_text.xml +++ b/res/layout/preference_static_text.xml @@ -34,7 +34,7 @@ android:paddingTop="16dp" android:paddingBottom="4dp"> @@ -45,11 +45,11 @@ android:paddingBottom="16dp" android:paddingTop="16dp"> - - - + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index e8cff1f1008..dfe4b003965 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4806,7 +4806,7 @@ Magnify with shortcut & triple-tap - About %1$s + About %1$s Options diff --git a/src/com/android/settings/accessibility/AnimatedImagePreference.java b/src/com/android/settings/accessibility/AnimatedImagePreference.java index ea9e1f825f7..1609a3c6c46 100644 --- a/src/com/android/settings/accessibility/AnimatedImagePreference.java +++ b/src/com/android/settings/accessibility/AnimatedImagePreference.java @@ -33,7 +33,6 @@ import com.android.settings.R; */ public class AnimatedImagePreference extends Preference { - private boolean mDividerAllowedAbove = false; private Uri mImageUri; AnimatedImagePreference(Context context) { @@ -44,7 +43,6 @@ public class AnimatedImagePreference extends Preference { @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); - holder.setDividerAllowedAbove(mDividerAllowedAbove); final ImageView imageView = holder.itemView.findViewById(R.id.animated_img); if (imageView != null && mImageUri != null) { @@ -59,18 +57,6 @@ public class AnimatedImagePreference extends Preference { } } - /** - * Sets divider whether to show in preference above. - * - * @param allowed true will be drawn on above this item - */ - public void setDividerAllowedAbove(boolean allowed) { - if (allowed != mDividerAllowedAbove) { - mDividerAllowedAbove = allowed; - notifyChanged(); - } - } - /** * Set image uri to display image in {@link ImageView} * diff --git a/src/com/android/settings/accessibility/HtmlTextPreference.java b/src/com/android/settings/accessibility/HtmlTextPreference.java index 0c295e37a51..fcf4725599c 100644 --- a/src/com/android/settings/accessibility/HtmlTextPreference.java +++ b/src/com/android/settings/accessibility/HtmlTextPreference.java @@ -32,7 +32,6 @@ import java.util.regex.Pattern; */ public final class HtmlTextPreference extends StaticTextPreference { - private boolean mDividerAllowedAbove = false; private int mFlag = Html.FROM_HTML_MODE_COMPACT; private Html.ImageGetter mImageGetter; private Html.TagHandler mTagHandler; @@ -45,7 +44,6 @@ public final class HtmlTextPreference extends StaticTextPreference { @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); - holder.setDividerAllowedAbove(mDividerAllowedAbove); final TextView summaryView = holder.itemView.findViewById(android.R.id.summary); if (summaryView != null && !TextUtils.isEmpty(getSummary())) { @@ -54,18 +52,6 @@ public final class HtmlTextPreference extends StaticTextPreference { } } - /** - * Sets divider whether to show in preference above. - * - * @param allowed true will be drawn on above this item - */ - public void setDividerAllowedAbove(boolean allowed) { - if (allowed != mDividerAllowedAbove) { - mDividerAllowedAbove = allowed; - notifyChanged(); - } - } - /** * Sets the flag to which text format to be applied. * diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 3521aa58fa7..5571591e41a 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -47,6 +47,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; import com.android.settings.widget.SwitchBar; +import com.android.settingslib.widget.FooterPreference; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -75,7 +76,6 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference protected ComponentName mComponentName; protected CharSequence mPackageName; protected Uri mImageUri; - protected CharSequence mStaticDescription; protected CharSequence mHtmlDescription; private static final String ANCHOR_TAG = "a"; private static final String DRAWABLE_FOLDER = "drawable"; @@ -141,7 +141,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference final AnimatedImagePreference animatedImagePreference = new AnimatedImagePreference( getPrefContext()); animatedImagePreference.setImageUri(mImageUri); - animatedImagePreference.setDividerAllowedAbove(true); + animatedImagePreference.setSelectable(false); preferenceScreen.addPreference(animatedImagePreference); } @@ -172,34 +172,24 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference groupCategory.addPreference(mSettingsPreference); } - if (mStaticDescription != null || mHtmlDescription != null) { - final PreferenceCategory footerCategory = new PreferenceCategory(getPrefContext()); - final CharSequence title = getString(R.string.accessibility_footer_title, mPackageName); - footerCategory.setTitle(title); - preferenceScreen.addPreference(footerCategory); + if (mHtmlDescription != null) { + final PreferenceCategory introductionCategory = new PreferenceCategory( + getPrefContext()); + final CharSequence title = getString(R.string.accessibility_introduction_title, + mPackageName); + introductionCategory.setTitle(title); + preferenceScreen.addPreference(introductionCategory); - if (mStaticDescription != null) { - final StaticTextPreference staticTextPreference = new StaticTextPreference( - getPrefContext()); - staticTextPreference.setSummary(mStaticDescription); - staticTextPreference.setSelectable(/* selectable= */ false); - footerCategory.addPreference(staticTextPreference); - } + // For accessibility service, avoid malicious links made by third party developer. + final List unsupportedTagList = new ArrayList<>(); + unsupportedTagList.add(ANCHOR_TAG); - if (mHtmlDescription != null) { - // For accessibility service, avoid malicious links made by third party developer. - final List unsupportedTagList = new ArrayList<>(); - unsupportedTagList.add(ANCHOR_TAG); - - final HtmlTextPreference htmlTextPreference = new HtmlTextPreference( - getPrefContext()); - htmlTextPreference.setSummary(mHtmlDescription); - htmlTextPreference.setImageGetter(mImageGetter); - htmlTextPreference.setUnsupportedTagList(unsupportedTagList); - htmlTextPreference.setDividerAllowedAbove(true); - htmlTextPreference.setSelectable(/* selectable= */ false); - footerCategory.addPreference(htmlTextPreference); - } + final HtmlTextPreference htmlTextPreference = new HtmlTextPreference(getPrefContext()); + htmlTextPreference.setSummary(mHtmlDescription); + htmlTextPreference.setImageGetter(mImageGetter); + htmlTextPreference.setUnsupportedTagList(unsupportedTagList); + htmlTextPreference.setSelectable(false); + introductionCategory.addPreference(htmlTextPreference); } } @@ -362,11 +352,11 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference // Summary. if (arguments.containsKey(AccessibilitySettings.EXTRA_SUMMARY_RES)) { final int summary = arguments.getInt(AccessibilitySettings.EXTRA_SUMMARY_RES); - mStaticDescription = getText(summary); + createFooterPreference(getText(summary)); } else if (arguments.containsKey(AccessibilitySettings.EXTRA_SUMMARY)) { final CharSequence summary = arguments.getCharSequence( AccessibilitySettings.EXTRA_SUMMARY); - mStaticDescription = summary; + createFooterPreference(summary); } } @@ -635,4 +625,10 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference public void onSettingsClicked(ShortcutPreference preference) { mUserShortcutTypeCache = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE); } + + private void createFooterPreference(CharSequence title) { + final PreferenceScreen preferenceScreen = getPreferenceScreen(); + preferenceScreen.addPreference(new FooterPreference.Builder(getActivity()).setTitle( + title).build()); + } }