diff options
Diffstat (limited to 'chromium/components/browser_ui/settings/android')
5 files changed, 98 insertions, 7 deletions
diff --git a/chromium/components/browser_ui/settings/android/BUILD.gn b/chromium/components/browser_ui/settings/android/BUILD.gn index 806560d5d19..3f907927a63 100644 --- a/chromium/components/browser_ui/settings/android/BUILD.gn +++ b/chromium/components/browser_ui/settings/android/BUILD.gn @@ -16,6 +16,7 @@ android_library("java") { "widget/java/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreference.java", "widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java", "widget/java/src/org/chromium/components/browser_ui/settings/ExpandablePreferenceGroup.java", + "widget/java/src/org/chromium/components/browser_ui/settings/IconPreference.java", "widget/java/src/org/chromium/components/browser_ui/settings/LearnMorePreference.java", "widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java", "widget/java/src/org/chromium/components/browser_ui/settings/TextMessagePreference.java", @@ -25,6 +26,7 @@ android_library("java") { "//base:base_java", "//third_party/android_deps:android_support_v7_appcompat_java", "//third_party/android_deps:androidx_annotation_annotation_java", + "//third_party/android_deps:androidx_appcompat_appcompat_resources_java", "//third_party/android_deps:androidx_preference_preference_java", "//ui/android:ui_java", ] @@ -55,9 +57,11 @@ android_resources("java_resources") { "java/res/layout/preference_spinner.xml", "java/res/layout/preference_spinner_single_line.xml", "java/res/layout/preference_spinner_single_line_item.xml", + "java/res/layout/settings_action_bar_shadow.xml", "java/res/values/attrs.xml", "java/res/values/dimens.xml", "java/res/values/styles.xml", ] + custom_package = "org.chromium.components.browser_ui.settings" } diff --git a/chromium/components/browser_ui/settings/android/java/res/layout/settings_action_bar_shadow.xml b/chromium/components/browser_ui/settings/android/java/res/layout/settings_action_bar_shadow.xml new file mode 100644 index 00000000000..9b326a9178a --- /dev/null +++ b/chromium/components/browser_ui/settings/android/java/res/layout/settings_action_bar_shadow.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 2018 The Chromium Authors. All rights reserved. + Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. --> + +<!-- The shadow found below the action bar in settings.--> +<merge + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" > + + <ImageView + android:id="@+id/shadow" + android:layout_width="match_parent" + android:layout_height="@dimen/action_bar_shadow_height" + android:background="@drawable/modern_toolbar_shadow" + android:visibility="gone" + tools:ignore="ContentDescription" /> + +</merge>
\ No newline at end of file diff --git a/chromium/components/browser_ui/settings/android/java/res/values/styles.xml b/chromium/components/browser_ui/settings/android/java/res/values/styles.xml index dd02c6822a8..c0435c8a02a 100644 --- a/chromium/components/browser_ui/settings/android/java/res/values/styles.xml +++ b/chromium/components/browser_ui/settings/android/java/res/values/styles.xml @@ -29,12 +29,6 @@ <item name="android:textAppearance">@style/TextAppearance.TextMedium.Secondary</item> </style> - <!-- TODO(crbug.com/1077375): Consider removing this text style. --> - <style name="TextAppearance.PreferenceMediumText" tools:ignore="UnusedResources"> - <item name="android:textSize">18sp</item> - <item name="android:textColor">?android:attr/textColorPrimary</item> - </style> - <style name="PreferenceLayout"> <item name="android:background">?android:attr/activatedBackgroundIndicator</item> <item name="android:minHeight">?android:attr/listPreferredItemHeightSmall</item> @@ -50,4 +44,41 @@ <item name="android:layout_marginTop">2dp</item> <item name="android:background">@color/modern_grey_600</item> </style> + + <style name="PreferenceTheme"> + <item name="preferenceStyle">@style/PreferenceItem</item> + <item name="preferenceFragmentCompatStyle">@style/SettingsFragment</item> + <item name="preferenceFragmentListStyle">@style/SettingsFragmentList</item> + <item name="dialogPreferenceStyle">@style/DialogPreference</item> + <item name="checkBoxPreferenceStyle">@style/CheckBoxPreference</item> + <item name="switchPreferenceCompatStyle">@style/SwitchPreference</item> + </style> + + <style name="SettingsFragment"> + <item name="android:divider">?android:attr/listDivider</item> + </style> + + <style name="PreferenceItem"> + <item name="android:layout">@layout/preference_compat</item> + </style> + + <style name="SettingsFragmentList"> + <item name="android:paddingStart">0dp</item> + <item name="android:paddingEnd">0dp</item> + </style> + + <style name="DialogPreference"> + <item name="android:layout">@layout/preference_compat</item> + <item name="android:negativeButtonText">@android:string/cancel</item> + </style> + + <style name="CheckBoxPreference"> + <item name="android:layout">@layout/preference_compat</item> + <item name="android:widgetLayout">@layout/preference_widget_checkbox</item> + </style> + + <style name="SwitchPreference"> + <item name="android:layout">@layout/preference_compat</item> + <item name="android:widgetLayout">@layout/preference_widget_switch_compat</item> + </style> </resources> diff --git a/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java b/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java index 04837e74d81..6c5476db8ad 100644 --- a/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java +++ b/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java @@ -51,7 +51,6 @@ public class ChromeBasePreference extends Preference { public ChromeBasePreference(Context context, AttributeSet attrs) { super(context, attrs); - setLayoutResource(R.layout.preference_compat); setSingleLineTitle(false); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ChromeBasePreference); diff --git a/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/IconPreference.java b/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/IconPreference.java new file mode 100644 index 00000000000..919a222f44c --- /dev/null +++ b/chromium/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/IconPreference.java @@ -0,0 +1,38 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.components.browser_ui.settings; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.ImageView; + +import androidx.core.view.ViewCompat; +import androidx.preference.PreferenceViewHolder; + +/** + * A preference with a horizontally centered icon. + */ +public class IconPreference extends ChromeBasePreference { + /** + * Constructor for inflating from XML. + */ + public IconPreference(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + + // Horizontally center the preference icon. + + // TODO(crbug.com/1095981): move this logic to ChromeBasePreference and + // find a way to center it without a hard-coded padding. + int padding = getContext().getResources().getDimensionPixelSize(R.dimen.pref_icon_padding); + ImageView icon = (ImageView) holder.findViewById(android.R.id.icon); + ViewCompat.setPaddingRelative( + icon, padding, icon.getPaddingTop(), 0, icon.getPaddingBottom()); + } +} |