diff options
author | tmfang <tmfang@google.com> | 2018-11-26 18:41:01 +0800 |
---|---|---|
committer | tmfang <tmfang@google.com> | 2018-11-27 13:12:53 +0800 |
commit | dce94bb23762aa8292cd1fc9a4ee69cde1fa886f (patch) | |
tree | 6cffb0b8254e0209be464ee0cfce4c381c6d7a5b | |
parent | 9dbb20cc23a71e6ed97b8242b53d9faa97cc4145 (diff) | |
download | packages_apps_Settings-dce94bb23762aa8292cd1fc9a4ee69cde1fa886f.tar.gz packages_apps_Settings-dce94bb23762aa8292cd1fc9a4ee69cde1fa886f.tar.bz2 packages_apps_Settings-dce94bb23762aa8292cd1fc9a4ee69cde1fa886f.zip |
Use SettingsLib's LayoutPreference
- Remove LayoutPreference in Settings source code.
- Remove unused style, layout
- Replace old imports to com.android.settingslib.widget.LayoutPreference
- Replace old XML tag to com.android.settingslib.widget.LayoutPreference
Test: robotest, manual test
Bug: 120005054
Change-Id: I9ae1ae14a16f443e11ac5d75b6038c7c5e253844
67 files changed, 76 insertions, 434 deletions
diff --git a/res/layout/layout_preference_frame.xml b/res/layout/layout_preference_frame.xml deleted file mode 100644 index eec3d7af34..0000000000 --- a/res/layout/layout_preference_frame.xml +++ /dev/null @@ -1,18 +0,0 @@ -<!-- - Copyright (C) 2015 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" /> diff --git a/res/layout/settings_entity_header.xml b/res/layout/settings_entity_header.xml deleted file mode 100644 index 5f5fe004a9..0000000000 --- a/res/layout/settings_entity_header.xml +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2017 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<!-- Entity header --> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/entity_header" - style="@style/EntityHeader" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> - - <LinearLayout - android:id="@+id/entity_header_content" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerHorizontal="true" - android:gravity="center_horizontal" - android:orientation="vertical"> - - <ImageView - android:id="@+id/entity_header_icon" - android:layout_width="48dp" - android:layout_height="48dp" - android:scaleType="fitXY" - android:antialias="true"/> - - <TextView - android:id="@+id/entity_header_title" - style="@style/TextAppearance.EntityHeaderTitle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="false" - android:ellipsize="marquee" - android:textDirection="locale" - android:layout_marginTop="8dp"/> - - <TextView - android:id="@+id/install_type" - style="@style/TextAppearance.EntityHeaderSummary" - android:visibility="gone" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="2dp"/> - - <TextView - android:id="@+id/entity_header_summary" - style="@style/TextAppearance.EntityHeaderSummary" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="2dp"/> - - <TextView - android:id="@+id/entity_header_second_summary" - style="@style/TextAppearance.EntityHeaderSummary" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> - - </LinearLayout> - - <LinearLayout - android:id="@+id/entity_header_links" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_centerVertical="true" - android:layout_alignParentEnd="true" - android:orientation="vertical"> - - <ImageButton - android:id="@android:id/button1" - style="?android:attr/actionOverflowButtonStyle" - android:layout_width="wrap_content" - android:layout_weight="1" - android:layout_height="0dp" - android:minWidth="@dimen/min_tap_target_size" - android:src="@null" - android:tint="?android:attr/colorAccent" /> - - <ImageButton - android:id="@android:id/button2" - style="?android:attr/actionOverflowButtonStyle" - android:layout_width="wrap_content" - android:layout_weight="1" - android:layout_height="0dp" - android:minWidth="@dimen/min_tap_target_size" - android:src="@null" - android:tint="?android:attr/colorAccent" /> - - </LinearLayout> - -</RelativeLayout> diff --git a/res/values/styles.xml b/res/values/styles.xml index 3ce11931eb..4be1bb3569 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -331,23 +331,6 @@ <item name="android:textColor">?android:attr/textColorSecondary</item> </style> - <style name="TextAppearance.EntityHeaderTitle" - parent="@android:style/TextAppearance.Material.Subhead"> - <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item> - <item name="android:textColor">?android:attr/textColorPrimary</item> - <item name="android:textSize">20sp</item> - </style> - - <style name="TextAppearance.EntityHeaderSummary" - parent="@android:style/TextAppearance.Material.Body1"> - <item name="android:textAlignment">viewStart</item> - <item name="android:textColor">?android:attr/textColorSecondary</item> - <item name="android:gravity">start</item> - <item name="android:singleLine">true</item> - <item name="android:ellipsize">marquee</item> - <item name="android:textSize">14sp</item> - </style> - <style name="TextAppearance.ZenOnboardingButton"> <item name="android:fontFamily">sans-serif-medium</item> <item name="android:textSize">14sp</item> @@ -418,13 +401,6 @@ <item name="android:progressDrawable">@drawable/ring_progress</item> </style> - <style name="EntityHeader"> - <item name="android:background">?android:attr/colorPrimaryDark</item> - <item name="android:paddingTop">24dp</item> - <item name="android:paddingBottom">16dp</item> - <item name="android:paddingEnd">16dp</item> - </style> - <style name="ActionPrimaryButton" parent="android:Widget.DeviceDefault.Button.Colored"/> <style name="ActionSecondaryButton" parent="android:Widget.DeviceDefault.Button"/> diff --git a/res/xml/account_type_settings.xml b/res/xml/account_type_settings.xml index 29f92ea230..98a5e8b67c 100644 --- a/res/xml/account_type_settings.xml +++ b/res/xml/account_type_settings.xml @@ -19,7 +19,7 @@ android:title="@string/account_settings_title" settings:keywords="@string/keywords_accounts"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="account_header" android:layout="@layout/settings_entity_header" android:selectable="false" @@ -35,7 +35,7 @@ android:icon="@drawable/ic_sync" android:order="200"/> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="remove_account" android:layout="@layout/remove_account_button" android:order="1000" diff --git a/res/xml/app_info_settings.xml b/res/xml/app_info_settings.xml index 1e320e4009..c13215a906 100644 --- a/res/xml/app_info_settings.xml +++ b/res/xml/app_info_settings.xml @@ -21,14 +21,14 @@ android:key="installed_app_detail_settings_screen" settings:initialExpandedChildrenCount="6"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="header_view" android:layout="@layout/settings_entity_header" android:selectable="false" android:order="-10000" settings:allowDividerBelow="true"/> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="instant_app_buttons" android:layout="@layout/instant_app_buttons" android:selectable="false" diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml index 0056ef2100..49d64a9731 100644 --- a/res/xml/app_notification_settings.xml +++ b/res/xml/app_notification_settings.xml @@ -18,11 +18,11 @@ xmlns:settings="http://schemas.android.com/apk/res-auto" android:key="app_notifications"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="pref_app_header" android:layout="@layout/settings_entity_header" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="block" android:layout="@layout/styled_switch_bar" /> diff --git a/res/xml/app_storage_settings.xml b/res/xml/app_storage_settings.xml index 14ad180a93..7036d2736d 100644 --- a/res/xml/app_storage_settings.xml +++ b/res/xml/app_storage_settings.xml @@ -34,7 +34,7 @@ android:selectable="false" android:layout="@layout/horizontal_preference" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="change_storage_button" android:selectable="false" android:layout="@layout/single_button_panel" /> @@ -78,7 +78,7 @@ android:layout="@layout/preference_category_no_label" settings:allowDividerAbove="false" settings:allowDividerBelow="false"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="clear_uri_button" android:layout="@layout/single_button_panel" android:selectable="false" /> diff --git a/res/xml/bluetooth_device_details_fragment.xml b/res/xml/bluetooth_device_details_fragment.xml index 01114b6c54..6449e4bc16 100644 --- a/res/xml/bluetooth_device_details_fragment.xml +++ b/res/xml/bluetooth_device_details_fragment.xml @@ -19,7 +19,7 @@ xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/device_details_title"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="bluetooth_device_header" android:layout="@layout/settings_entity_header" android:selectable="false" diff --git a/res/xml/channel_notification_settings.xml b/res/xml/channel_notification_settings.xml index 5afc70de7a..9e9e7a9678 100644 --- a/res/xml/channel_notification_settings.xml +++ b/res/xml/channel_notification_settings.xml @@ -20,12 +20,12 @@ android:key="channel_settings" android:title="@string/notification_channel_title" > - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="pref_app_header" android:order="1" android:layout="@layout/settings_entity_header" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="block" android:order="2" android:layout="@layout/styled_switch_bar" /> diff --git a/res/xml/dream_fragment_overview.xml b/res/xml/dream_fragment_overview.xml index a6214d18a1..e4c2eb5365 100644 --- a/res/xml/dream_fragment_overview.xml +++ b/res/xml/dream_fragment_overview.xml @@ -35,7 +35,7 @@ <!-- Layout preference doesn't obey allowDividerAbove, so put it in a PreferenceCategory --> <PreferenceCategory android:key="dream_start_now_category"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="dream_start_now_button_container" android:selectable="false" android:layout="@layout/dream_start_button" /> diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml index 7165218ecb..998a2f9879 100644 --- a/res/xml/my_device_info.xml +++ b/res/xml/my_device_info.xml @@ -21,7 +21,7 @@ android:key="my_device_info_pref_screen" android:title="@string/about_settings"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="my_device_info_header" android:order="0" android:layout="@layout/settings_entity_header" diff --git a/res/xml/night_display_settings.xml b/res/xml/night_display_settings.xml index 12c8bc7c2f..b6f625174f 100644 --- a/res/xml/night_display_settings.xml +++ b/res/xml/night_display_settings.xml @@ -43,7 +43,7 @@ settings:keywords="@string/keywords_display_night_display" settings:controller="com.android.settings.display.NightDisplayIntensityPreferenceController" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="night_display_activated" android:title="@string/night_display_title" android:selectable="false" diff --git a/res/xml/notification_group_settings.xml b/res/xml/notification_group_settings.xml index 0d4184def7..7192f90cdc 100644 --- a/res/xml/notification_group_settings.xml +++ b/res/xml/notification_group_settings.xml @@ -17,11 +17,11 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="pref_app_header" android:layout="@layout/settings_entity_header" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="block" android:layout="@layout/styled_switch_bar" /> diff --git a/res/xml/power_usage_detail.xml b/res/xml/power_usage_detail.xml index c854f777e3..12c7e214a3 100644 --- a/res/xml/power_usage_detail.xml +++ b/res/xml/power_usage_detail.xml @@ -19,7 +19,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="header_view" android:layout="@layout/settings_entity_header" android:selectable="false" diff --git a/res/xml/power_usage_details.xml b/res/xml/power_usage_details.xml index 85a2ce762c..8c79116f79 100644 --- a/res/xml/power_usage_details.xml +++ b/res/xml/power_usage_details.xml @@ -17,7 +17,7 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="two_buttons" android:layout="@layout/two_buttons_panel" android:selectable="false" /> diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml index 48e1276bc3..14d8edaaa9 100644 --- a/res/xml/power_usage_summary.xml +++ b/res/xml/power_usage_summary.xml @@ -21,7 +21,7 @@ android:title="@string/power_usage_summary_title" settings:keywords="@string/keywords_battery"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="battery_header" android:title="@string/summary_placeholder" android:selectable="false" diff --git a/res/xml/security_settings_face.xml b/res/xml/security_settings_face.xml index 2bdfdc80e2..c202a6cdf2 100644 --- a/res/xml/security_settings_face.xml +++ b/res/xml/security_settings_face.xml @@ -55,7 +55,7 @@ android:title="@string/security_settings_face_settings_improve_face"> </Preference> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="security_settings_face_delete_faces_container" android:selectable="false" android:layout="@layout/face_remove_button" /> diff --git a/res/xml/usb_details_fragment.xml b/res/xml/usb_details_fragment.xml index 5c1efcf19b..4a6cefa261 100644 --- a/res/xml/usb_details_fragment.xml +++ b/res/xml/usb_details_fragment.xml @@ -20,7 +20,7 @@ android:title="@string/usb_preference" android:key="usb_details_fragment"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="usb_device_header" android:layout="@layout/settings_entity_header" android:selectable="false"/> diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml index 4198b76fb2..45e7349011 100644 --- a/res/xml/wifi_network_details_fragment.xml +++ b/res/xml/wifi_network_details_fragment.xml @@ -19,7 +19,7 @@ xmlns:settings="http://schemas.android.com/apk/res-auto" settings:initialExpandedChildrenCount="5"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="connection_header" android:layout="@layout/settings_entity_header" android:selectable="false" diff --git a/res/xml/zen_mode_event_rule_settings.xml b/res/xml/zen_mode_event_rule_settings.xml index ea37855171..c871fe16dc 100644 --- a/res/xml/zen_mode_event_rule_settings.xml +++ b/res/xml/zen_mode_event_rule_settings.xml @@ -20,11 +20,11 @@ android:key="zen_mode_event_rule_settings" android:title="@string/zen_mode_automatic_rule_settings_page_title"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="pref_app_header" android:layout="@layout/settings_entity_header" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="zen_automatic_rule_switch" android:layout="@layout/styled_switch_bar" /> diff --git a/res/xml/zen_mode_schedule_rule_settings.xml b/res/xml/zen_mode_schedule_rule_settings.xml index e201b8722f..d05bbd2735 100644 --- a/res/xml/zen_mode_schedule_rule_settings.xml +++ b/res/xml/zen_mode_schedule_rule_settings.xml @@ -20,11 +20,11 @@ android:key="zen_mode_schedule_rule_settings" android:title="@string/zen_mode_automatic_rule_settings_page_title"> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="pref_app_header" android:layout="@layout/settings_entity_header" /> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="zen_automatic_rule_switch" android:layout="@layout/styled_switch_bar" /> diff --git a/res/xml/zen_mode_settings.xml b/res/xml/zen_mode_settings.xml index 20143080c4..832150a034 100644 --- a/res/xml/zen_mode_settings.xml +++ b/res/xml/zen_mode_settings.xml @@ -65,7 +65,7 @@ android:fragment="com.android.settings.notification.ZenModeAutomationSettings"/> <!-- Turn on DND button --> - <com.android.settings.applications.LayoutPreference + <com.android.settingslib.widget.LayoutPreference android:key="zen_mode_settings_button_container" android:selectable="false" android:layout="@layout/zen_mode_settings_button" diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 5cfe2188d2..6933cfd665 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -42,7 +42,6 @@ import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.search.Indexable; @@ -55,6 +54,7 @@ import com.android.settingslib.CustomDialogPreferenceCompat; import com.android.settingslib.CustomEditTextPreferenceCompat; import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.widget.FooterPreferenceMixinCompat; +import com.android.settingslib.widget.LayoutPreference; import java.util.UUID; diff --git a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java index 36a70218d9..d762095641 100644 --- a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java +++ b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java @@ -29,7 +29,6 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.accounts.AuthenticatorHelper; @@ -37,6 +36,7 @@ import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnResume; +import com.android.settingslib.widget.LayoutPreference; public class AccountHeaderPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnResume { diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java index 9770332e83..06eddd324e 100644 --- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java +++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java @@ -39,13 +39,13 @@ import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.widget.LayoutPreference; import java.io.IOException; diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java index 841fb5150f..61ce33d3dc 100644 --- a/src/com/android/settings/applications/AppStorageSettings.java +++ b/src/com/android/settings/applications/AppStorageSettings.java @@ -58,6 +58,7 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.applications.ApplicationsState.Callbacks; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource.AppStorageStats; +import com.android.settingslib.widget.LayoutPreference; import java.util.Collections; import java.util.List; diff --git a/src/com/android/settings/applications/LayoutPreference.java b/src/com/android/settings/applications/LayoutPreference.java deleted file mode 100644 index 68413e7a84..0000000000 --- a/src/com/android/settings/applications/LayoutPreference.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.applications; - -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; - -import androidx.core.content.res.TypedArrayUtils; -import androidx.preference.Preference; -import androidx.preference.PreferenceViewHolder; - -import com.android.settings.R; -import com.android.settings.Utils; - -public class LayoutPreference extends Preference { - - private final View.OnClickListener mClickListener = v -> performClick(v); - private boolean mAllowDividerAbove; - private boolean mAllowDividerBelow; - private View mRootView; - - public LayoutPreference(Context context, AttributeSet attrs) { - super(context, attrs); - init(context, attrs, 0 /* defStyleAttr */); - } - - public LayoutPreference(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context, attrs, defStyleAttr); - } - - public LayoutPreference(Context context, int resource) { - this(context, LayoutInflater.from(context).inflate(resource, null, false)); - } - - public LayoutPreference(Context context, View view) { - super(context); - setView(view); - } - - private void init(Context context, AttributeSet attrs, int defStyleAttr) { - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Preference); - mAllowDividerAbove = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerAbove, - R.styleable.Preference_allowDividerAbove, false); - mAllowDividerBelow = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerBelow, - R.styleable.Preference_allowDividerBelow, false); - a.recycle(); - - a = context.obtainStyledAttributes( - attrs, com.android.internal.R.styleable.Preference, defStyleAttr, 0); - int layoutResource = a.getResourceId(com.android.internal.R.styleable.Preference_layout, - 0); - if (layoutResource == 0) { - throw new IllegalArgumentException("LayoutPreference requires a layout to be defined"); - } - a.recycle(); - - // Need to create view now so that findViewById can be called immediately. - final View view = LayoutInflater.from(getContext()) - .inflate(layoutResource, null, false); - setView(view); - } - - private void setView(View view) { - setLayoutResource(R.layout.layout_preference_frame); - mRootView = view; - setShouldDisableView(false); - } - - @Override - public void onBindViewHolder(PreferenceViewHolder holder) { - holder.itemView.setOnClickListener(mClickListener); - - final boolean selectable = isSelectable(); - holder.itemView.setFocusable(selectable); - holder.itemView.setClickable(selectable); - holder.setDividerAllowedAbove(mAllowDividerAbove); - holder.setDividerAllowedBelow(mAllowDividerBelow); - - FrameLayout layout = (FrameLayout) holder.itemView; - layout.removeAllViews(); - ViewGroup parent = (ViewGroup) mRootView.getParent(); - if (parent != null) { - parent.removeView(mRootView); - } - layout.addView(mRootView); - } - - public <T extends View> T findViewById(int id) { - return mRootView.findViewById(id); - } - - public void setAllowDividerBelow(boolean allowed) { - mAllowDividerBelow = allowed; - } - - public boolean isAllowDividerBelow() { - return mAllowDividerBelow; - } -}
\ No newline at end of file diff --git a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java index 5f41ae0afe..f65bb9be5f 100644 --- a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java @@ -23,8 +23,6 @@ import android.content.pm.PackageInfo; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.Utils; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.BasePreferenceController; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.applications.AppUtils; @@ -32,6 +30,7 @@ import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; +import com.android.settingslib.widget.LayoutPreference; public class AppHeaderViewPreferenceController extends BasePreferenceController implements AppInfoDashboardFragment.Callback, LifecycleObserver, OnStart { diff --git a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java index f710f2e3b1..23c01216f9 100644 --- a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java @@ -34,7 +34,6 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.applications.AppStoreUtil; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -42,6 +41,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu; import com.android.settingslib.core.lifecycle.events.OnOptionsItemSelected; import com.android.settingslib.core.lifecycle.events.OnPrepareOptionsMenu; +import com.android.settingslib.widget.LayoutPreference; import java.util.List; diff --git a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java index d1fdc48f38..8e41eff37d 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java @@ -23,8 +23,8 @@ import android.widget.Button; import androidx.preference.Preference; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.widget.LayoutPreference; /** * Controller for the remove button. diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java index 1795c07a89..11bd1741ca 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java @@ -25,13 +25,13 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; /** * This class adds a header with device name and status (connected/disconnected, etc.). diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java index 0e1811d70e..26b21a1faf 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java @@ -21,8 +21,8 @@ import android.content.Context; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.widget.EntityHeaderController; +import com.android.settingslib.widget.LayoutPreference; /** * This class adds a header with device name. diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java index 8c6c5aea0c..8b21f0d963 100644 --- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java +++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java @@ -29,9 +29,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.accounts.EmergencyInfoPreferenceController; -import com.android.settings.applications.LayoutPreference; import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.dashboard.SummaryLoader; import com.android.settings.deviceinfo.BluetoothAddressPreferenceController; import com.android.settings.deviceinfo.BrandedAccountPreferenceController; import com.android.settings.deviceinfo.BuildNumberPreferenceController; @@ -53,6 +51,7 @@ import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.widget.LayoutPreference; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/com/android/settings/display/ColorModePreferenceFragment.java b/src/com/android/settings/display/ColorModePreferenceFragment.java index bf307b68b8..2a21379c4b 100644 --- a/src/com/android/settings/display/ColorModePreferenceFragment.java +++ b/src/com/android/settings/display/ColorModePreferenceFragment.java @@ -23,12 +23,12 @@ import androidx.preference.PreferenceScreen; import com.android.internal.app.ColorDisplayController; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.CandidateInfo; +import com.android.settingslib.widget.LayoutPreference; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java index 706ac8539c..35cb5edcf1 100644 --- a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java +++ b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java @@ -28,8 +28,8 @@ import androidx.preference.PreferenceScreen; import com.android.internal.app.ColorDisplayController; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.TogglePreferenceController; +import com.android.settingslib.widget.LayoutPreference; public class NightDisplayActivationPreferenceController extends TogglePreferenceController { diff --git a/src/com/android/settings/dream/StartNowPreferenceController.java b/src/com/android/settings/dream/StartNowPreferenceController.java index 5519a0efc4..9e45ea3737 100644 --- a/src/com/android/settings/dream/StartNowPreferenceController.java +++ b/src/com/android/settings/dream/StartNowPreferenceController.java @@ -23,10 +23,10 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.dream.DreamBackend; +import com.android.settingslib.widget.LayoutPreference; public class StartNowPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin { diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index ce9cabcf42..6ad50a981c 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -39,7 +39,6 @@ import com.android.internal.util.ArrayUtils; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.Utils; -import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.appinfo.AppButtonsPreferenceController; import com.android.settings.applications.appinfo.ButtonActionDialogFragment; import com.android.settings.core.InstrumentedPreferenceFragment; @@ -52,6 +51,7 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.utils.StringUtil; +import com.android.settingslib.widget.LayoutPreference; import java.util.ArrayList; import java.util.List; diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index e5a2e5e0ca..48f4cc13c4 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -30,7 +30,6 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.EntityHeaderController; @@ -38,6 +37,7 @@ import com.android.settingslib.Utils; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; +import com.android.settingslib.widget.LayoutPreference; /** * Controller that update the battery header view diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index f7c31e58f4..85aa915b73 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -39,7 +39,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.Utils; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.SubSettingLauncher; import com.android.settings.fuelgauge.batterytip.BatteryTipLoader; import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController; @@ -49,6 +48,7 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.utils.PowerUtil; import com.android.settingslib.utils.StringUtil; +import com.android.settingslib.widget.LayoutPreference; import java.util.Collections; import java.util.List; diff --git a/src/com/android/settings/notification/BlockPreferenceController.java b/src/com/android/settings/notification/BlockPreferenceController.java index bee32f511a..960526cb05 100644 --- a/src/com/android/settings/notification/BlockPreferenceController.java +++ b/src/com/android/settings/notification/BlockPreferenceController.java @@ -27,9 +27,9 @@ import android.widget.Switch; import androidx.preference.Preference; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.SwitchBar; +import com.android.settingslib.widget.LayoutPreference; public class BlockPreferenceController extends NotificationPreferenceController implements PreferenceControllerMixin, SwitchBar.OnSwitchChangeListener { diff --git a/src/com/android/settings/notification/HeaderPreferenceController.java b/src/com/android/settings/notification/HeaderPreferenceController.java index f0c860f351..0c091b437a 100644 --- a/src/com/android/settings/notification/HeaderPreferenceController.java +++ b/src/com/android/settings/notification/HeaderPreferenceController.java @@ -31,10 +31,10 @@ import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; public class HeaderPreferenceController extends NotificationPreferenceController implements PreferenceControllerMixin, LifecycleObserver { diff --git a/src/com/android/settings/notification/NotificationSwitchBarPreference.java b/src/com/android/settings/notification/NotificationSwitchBarPreference.java index ff42987992..01c4f6ab46 100644 --- a/src/com/android/settings/notification/NotificationSwitchBarPreference.java +++ b/src/com/android/settings/notification/NotificationSwitchBarPreference.java @@ -22,9 +22,9 @@ import android.view.View; import androidx.preference.PreferenceViewHolder; -import com.android.settings.applications.LayoutPreference; import com.android.settings.widget.ToggleSwitch; import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.widget.LayoutPreference; public class NotificationSwitchBarPreference extends LayoutPreference { private ToggleSwitch mSwitch; diff --git a/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java b/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java index 41eb1113e1..72bb0e3d61 100644 --- a/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java +++ b/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java @@ -28,16 +28,16 @@ import android.text.TextUtils; import android.util.Slog; import android.view.View; +import androidx.fragment.app.Fragment; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.lifecycle.Lifecycle; - -import androidx.fragment.app.Fragment; -import androidx.preference.Preference; -import androidx.preference.PreferenceFragmentCompat; +import com.android.settingslib.widget.LayoutPreference; public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModePreferenceController implements PreferenceControllerMixin { diff --git a/src/com/android/settings/notification/ZenAutomaticRuleSwitchPreferenceController.java b/src/com/android/settings/notification/ZenAutomaticRuleSwitchPreferenceController.java index d4114026c1..f38deb3516 100644 --- a/src/com/android/settings/notification/ZenAutomaticRuleSwitchPreferenceController.java +++ b/src/com/android/settings/notification/ZenAutomaticRuleSwitchPreferenceController.java @@ -25,9 +25,9 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.widget.SwitchBar; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; public class ZenAutomaticRuleSwitchPreferenceController extends AbstractZenModeAutomaticRulePreferenceController implements diff --git a/src/com/android/settings/notification/ZenModeButtonPreferenceController.java b/src/com/android/settings/notification/ZenModeButtonPreferenceController.java index 3e45899b2e..8ebc6b8ab5 100644 --- a/src/com/android/settings/notification/ZenModeButtonPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeButtonPreferenceController.java @@ -26,9 +26,9 @@ import androidx.preference.Preference; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; public class ZenModeButtonPreferenceController extends AbstractZenModePreferenceController implements PreferenceControllerMixin { diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java index 267838cc0a..056f6b46f8 100644 --- a/src/com/android/settings/widget/EntityHeaderController.java +++ b/src/com/android/settings/widget/EntityHeaderController.java @@ -16,8 +16,7 @@ package com.android.settings.widget; -import static com.android.internal.logging.nano.MetricsProto.MetricsEvent - .ACTION_OPEN_APP_NOTIFICATION_SETTING; +import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_OPEN_APP_NOTIFICATION_SETTING; import android.annotation.IdRes; import android.annotation.UserIdInt; @@ -48,11 +47,11 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.applications.AppInfoBase; -import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.appinfo.AppInfoDashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/com/android/settings/widget/TwoStateButtonPreference.java b/src/com/android/settings/widget/TwoStateButtonPreference.java index b154fb4193..eeee65def8 100644 --- a/src/com/android/settings/widget/TwoStateButtonPreference.java +++ b/src/com/android/settings/widget/TwoStateButtonPreference.java @@ -26,7 +26,7 @@ import androidx.annotation.VisibleForTesting; import androidx.core.content.res.TypedArrayUtils; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; +import com.android.settingslib.widget.LayoutPreference; /** * Preference that presents a button with two states(On vs Off) diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index 3bf38a773a..9a3398ad94 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -54,7 +54,6 @@ import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.Utils; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.ActionButtonPreference; import com.android.settings.widget.EntityHeaderController; @@ -68,6 +67,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; +import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.wifi.AccessPoint; import java.net.Inet4Address; diff --git a/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java index 19a140c5b0..aeb5f54769 100644 --- a/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java @@ -35,11 +35,11 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settingslib.accounts.AuthenticatorHelper; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java index 3bebd66e08..83ea218491 100644 --- a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java @@ -51,12 +51,12 @@ import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowAccountManager; import com.android.settings.testutils.shadow.ShadowContentResolver; import com.android.settings.testutils.shadow.ShadowDevicePolicyManager; import com.android.settings.testutils.shadow.ShadowUserManager; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java index ddcbf85e49..3031f5b1a0 100644 --- a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java +++ b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java @@ -44,6 +44,7 @@ import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; +import com.android.settingslib.widget.LayoutPreference; import org.junit.After; import org.junit.Before; diff --git a/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java b/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java deleted file mode 100644 index 899d4cb650..0000000000 --- a/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.applications; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import android.content.Context; -import android.view.LayoutInflater; - -import androidx.preference.Preference.OnPreferenceClickListener; -import androidx.preference.PreferenceViewHolder; - -import com.android.settings.R; -import com.android.settings.testutils.SettingsRobolectricTestRunner; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RuntimeEnvironment; - -@RunWith(SettingsRobolectricTestRunner.class) -public class LayoutPreferenceTest { - - private Context mContext; - private LayoutPreference mPreference; - private PreferenceViewHolder mHolder; - - @Before - public void setUp() { - mContext = RuntimeEnvironment.application; - mPreference = new LayoutPreference(mContext, R.layout.two_action_buttons); - mHolder = PreferenceViewHolder.createInstanceForTests(LayoutInflater.from(mContext) - .inflate(R.layout.layout_preference_frame, null, false)); - } - - @Test - public void setOnClickListener_shouldAttachToRootView() { - final OnPreferenceClickListener listener = mock(OnPreferenceClickListener.class); - - mPreference.setOnPreferenceClickListener(listener); - mPreference.onBindViewHolder(mHolder); - - mHolder.itemView.callOnClick(); - - verify(listener).onPreferenceClick(mPreference); - assertThat(mHolder.itemView.isFocusable()).isTrue(); - assertThat(mHolder.itemView.isClickable()).isTrue(); - } - - @Test - public void setNonSelectable_viewShouldNotBeSelectable() { - mPreference.setSelectable(false); - mPreference.onBindViewHolder(mHolder); - - assertThat(mHolder.itemView.isFocusable()).isFalse(); - assertThat(mHolder.itemView.isClickable()).isFalse(); - } - - @Test - public void disableSomeView_shouldMaintainStateAfterBind() { - mPreference.findViewById(R.id.button1).setEnabled(false); - mPreference.findViewById(R.id.button2).setEnabled(true); - - mPreference.onBindViewHolder(mHolder); - - assertThat(mPreference.findViewById(R.id.button1).isEnabled()).isFalse(); - assertThat(mPreference.findViewById(R.id.button2).isEnabled()).isTrue(); - } - - @Test - public void allowDividerBelow_shouldSaveCorrectDividerStatus() { - mPreference.setAllowDividerBelow(true); - - assertThat(mPreference.isAllowDividerBelow()).isTrue(); - } -} diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java index d3e00c3715..67702f1dc4 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java @@ -42,10 +42,10 @@ import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java index 5d8c842646..6879b7de2f 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java @@ -48,11 +48,11 @@ import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.BasePreferenceController; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java index 0430e0f4e5..e62e338bcc 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java @@ -33,7 +33,6 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowBluetoothDevice; @@ -41,6 +40,7 @@ import com.android.settings.testutils.shadow.ShadowEntityHeaderController; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.LocalBluetoothManager; +import com.android.settingslib.widget.LayoutPreference; import org.junit.After; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java index ec697ad4b6..2aa38d7188 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java @@ -31,12 +31,12 @@ import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowEntityHeaderController; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.testutils.DrawableTestHelper; +import com.android.settingslib.widget.LayoutPreference; import org.junit.After; import org.junit.Before; diff --git a/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java index 3aae145c55..859912aa71 100644 --- a/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java @@ -34,10 +34,10 @@ import androidx.preference.PreferenceScreen; import com.android.internal.app.ColorDisplayController; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.widget.CandidateInfo; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java index 30dedb6a00..84d184de41 100644 --- a/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java @@ -26,9 +26,9 @@ import android.view.View; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java index fc7edc2827..21cb9f153f 100644 --- a/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java @@ -28,9 +28,9 @@ import android.widget.Button; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settingslib.dream.DreamBackend; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java index 1a8d58dff0..c9086abf77 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -51,7 +51,6 @@ import com.android.internal.os.BatterySipper; import com.android.internal.os.BatteryStatsHelper; import com.android.settings.R; import com.android.settings.SettingsActivity; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowActivityManager; @@ -61,6 +60,7 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; import org.junit.After; import org.junit.Before; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java index 5541654bc5..7797a786e5 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java @@ -42,7 +42,6 @@ import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.core.BasePreferenceController; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; @@ -50,6 +49,7 @@ import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl; import com.android.settings.testutils.shadow.ShadowEntityHeaderController; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; import org.junit.After; import org.junit.Before; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index cf1a5f346d..14caf2c818 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -48,12 +48,12 @@ import com.android.internal.os.BatterySipper; import com.android.internal.os.BatteryStatsHelper; import com.android.settings.R; import com.android.settings.SettingsActivity; -import com.android.settings.applications.LayoutPreference; import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.XmlTestUtils; import com.android.settings.testutils.shadow.SettingsShadowResources; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.BeforeClass; diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java index 06ef6010c1..0ebcaefa43 100644 --- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java @@ -45,9 +45,9 @@ import android.content.Context; import android.os.UserManager; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.widget.SwitchBar; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java index 57c8712992..04dac26708 100644 --- a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java @@ -37,7 +37,7 @@ import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.preference.PreferenceFragmentCompat; -import com.android.settings.applications.LayoutPreference; +import com.android.settingslib.widget.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; diff --git a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java index 5e5410ce0c..9417e9c934 100644 --- a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java +++ b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java @@ -84,6 +84,8 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner { paths.add(new ResourcePath(null, Fs.fromURL(new URL("file:frameworks/base/packages/SettingsLib/SearchWidget/res/")), null)); paths.add(new ResourcePath(null, + Fs.fromURL(new URL("file:frameworks/base/packages/SettingsLib/SettingsLayoutPreference/res")), null)); + paths.add(new ResourcePath(null, Fs.fromURL(new URL("file:frameworks/base/core/res/res")), null)); paths.add(new ResourcePath(null, Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/main/res")), null)); diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java index 5d60810627..5639549348 100644 --- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java @@ -46,10 +46,10 @@ import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.ShadowIconDrawableFactory; import com.android.settingslib.applications.ApplicationsState; +import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index 59e6287e07..4a0988a25c 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -62,7 +62,6 @@ import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; -import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowBidiFormatter; import com.android.settings.testutils.shadow.ShadowDevicePolicyManager; @@ -73,6 +72,7 @@ import com.android.settings.widget.EntityHeaderController; import com.android.settings.wifi.WifiDetailPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.wifi.AccessPoint; import org.junit.Before; |