Snap for 7945036 from 9eaf11e0c9 to tm-release

Change-Id: I75e7db2341e869edb9ad1ca5bb68f882067baf6b
This commit is contained in:
Android Build Coastguard Worker
2021-11-25 02:10:23 +00:00
13 changed files with 259 additions and 36 deletions

View File

@@ -4272,6 +4272,10 @@
android:label="@string/one_handed_title" android:label="@string/one_handed_title"
android:exported="true" android:exported="true"
android:enabled="true"> android:enabled="true">
<intent-filter android:priority="1">
<action android:name="android.settings.action.ONE_HANDED_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="1"> <intent-filter android:priority="1">
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" /> <category android:name="com.android.settings.SHORTCUT" />

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021 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.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:insetLeft="@dimen/homepage_menu_entry_padding_horizontal"
android:insetRight="@dimen/homepage_menu_entry_padding_horizontal">
<shape android:shape="rectangle">
<solid
android:color="?androidprv:attr/colorAccentSecondaryVariant" />
<corners
android:radius="@dimen/homepage_menu_entry_corner_radius" />
</shape>
</inset>

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021 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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:gravity="center_vertical"
android:paddingStart="@dimen/homepage_menu_entry_padding_horizontal"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="?android:attr/selectableItemBackground"
android:clipToPadding="false"
android:baselineAligned="false">
<LinearLayout
android:id="@+id/icon_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="56dp"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingTop="4dp"
android:paddingBottom="4dp">
<androidx.preference.internal.PreferenceImageView
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:maxWidth="40dp"
app:maxHeight="40dp"/>
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingEnd="16dp">
<TextView
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
android:ellipsize="marquee"/>
<TextView
android:id="@android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/title"
android:layout_alignStart="@android:id/title"
android:layout_gravity="start"
android:textAlignment="viewStart"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"
android:maxLines="4"
style="@style/PreferenceSummaryTextStyle"/>
</RelativeLayout>
</LinearLayout>

View File

@@ -141,6 +141,10 @@
<dimen name="homepage_title_margin_bottom">8dp</dimen> <dimen name="homepage_title_margin_bottom">8dp</dimen>
<dimen name="homepage_title_margin_horizontal">24dp</dimen> <dimen name="homepage_title_margin_horizontal">24dp</dimen>
<!-- Homepage menu entry -->
<dimen name="homepage_menu_entry_padding_horizontal">16dp</dimen>
<dimen name="homepage_menu_entry_corner_radius">28dp</dimen>
<!-- Dimensions for Wifi Assistant Card --> <!-- Dimensions for Wifi Assistant Card -->
<dimen name="wifi_assistant_padding_top_bottom">16dp</dimen> <dimen name="wifi_assistant_padding_top_bottom">16dp</dimen>
<dimen name="wifi_assistant_padding_start_end">16dp</dimen> <dimen name="wifi_assistant_padding_start_end">16dp</dimen>

View File

@@ -2823,7 +2823,7 @@
<!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] --> <!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] -->
<string name="wifi_calling_off_explanation_2"></string> <string name="wifi_calling_off_explanation_2"></string>
<!-- Title of a preference for updating emergency address [CHAR LIMIT=40] --> <!-- Title of a preference for updating emergency address [CHAR LIMIT=40] -->
<string name="emergency_address_title">Emergency Address</string> <string name="emergency_address_title">Emergency address</string>
<!-- Summary of Update Emergency Address preference, explaining usage of emergency address [CHAR LIMIT=NONE] --> <!-- Summary of Update Emergency Address preference, explaining usage of emergency address [CHAR LIMIT=NONE] -->
<string name="emergency_address_summary">Used as your location when you make an emergency call over Wi\u2011Fi</string> <string name="emergency_address_summary">Used as your location when you make an emergency call over Wi\u2011Fi</string>
<!-- Message of private dns that provides a help link. [CHAR LIMIT=NONE] --> <!-- Message of private dns that provides a help link. [CHAR LIMIT=NONE] -->

View File

@@ -20,7 +20,7 @@
xmlns:settings="http://schemas.android.com/apk/res-auto" xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="top_level_settings"> android:key="top_level_settings">
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.network.NetworkDashboardFragment" android:fragment="com.android.settings.network.NetworkDashboardFragment"
android:icon="@drawable/ic_settings_wireless" android:icon="@drawable/ic_settings_wireless"
android:key="top_level_network" android:key="top_level_network"
@@ -30,7 +30,7 @@
settings:highlightableMenuKey="@string/menu_key_network" settings:highlightableMenuKey="@string/menu_key_network"
settings:controller="com.android.settings.network.TopLevelNetworkEntryPreferenceController"/> settings:controller="com.android.settings.network.TopLevelNetworkEntryPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment" android:fragment="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"
android:icon="@drawable/ic_devices_other" android:icon="@drawable/ic_devices_other"
android:key="top_level_connected_devices" android:key="top_level_connected_devices"
@@ -40,7 +40,7 @@
settings:highlightableMenuKey="@string/menu_key_connected_devices" settings:highlightableMenuKey="@string/menu_key_connected_devices"
settings:controller="com.android.settings.connecteddevice.TopLevelConnectedDevicesPreferenceController"/> settings:controller="com.android.settings.connecteddevice.TopLevelConnectedDevicesPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.applications.AppDashboardFragment" android:fragment="com.android.settings.applications.AppDashboardFragment"
android:icon="@drawable/ic_apps" android:icon="@drawable/ic_apps"
android:key="top_level_apps" android:key="top_level_apps"
@@ -49,7 +49,7 @@
android:summary="@string/app_and_notification_dashboard_summary" android:summary="@string/app_and_notification_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_apps"/> settings:highlightableMenuKey="@string/menu_key_apps"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.notification.ConfigureNotificationSettings" android:fragment="com.android.settings.notification.ConfigureNotificationSettings"
android:icon="@drawable/ic_notifications" android:icon="@drawable/ic_notifications"
android:key="top_level_notifications" android:key="top_level_notifications"
@@ -58,7 +58,7 @@
android:summary="@string/notification_dashboard_summary" android:summary="@string/notification_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_notifications"/> settings:highlightableMenuKey="@string/menu_key_notifications"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.fuelgauge.PowerUsageSummary" android:fragment="com.android.settings.fuelgauge.PowerUsageSummary"
android:icon="@drawable/ic_settings_battery_white" android:icon="@drawable/ic_settings_battery_white"
android:key="top_level_battery" android:key="top_level_battery"
@@ -68,7 +68,7 @@
settings:highlightableMenuKey="@string/menu_key_battery" settings:highlightableMenuKey="@string/menu_key_battery"
settings:controller="com.android.settings.fuelgauge.TopLevelBatteryPreferenceController"/> settings:controller="com.android.settings.fuelgauge.TopLevelBatteryPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.deviceinfo.StorageDashboardFragment" android:fragment="com.android.settings.deviceinfo.StorageDashboardFragment"
android:icon="@drawable/ic_storage_white" android:icon="@drawable/ic_storage_white"
android:key="top_level_storage" android:key="top_level_storage"
@@ -78,7 +78,7 @@
settings:highlightableMenuKey="@string/menu_key_storage" settings:highlightableMenuKey="@string/menu_key_storage"
settings:controller="com.android.settings.deviceinfo.TopLevelStoragePreferenceController"/> settings:controller="com.android.settings.deviceinfo.TopLevelStoragePreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.notification.SoundSettings" android:fragment="com.android.settings.notification.SoundSettings"
android:icon="@drawable/ic_volume_up_24dp" android:icon="@drawable/ic_volume_up_24dp"
android:key="top_level_sound" android:key="top_level_sound"
@@ -87,7 +87,7 @@
android:summary="@string/sound_dashboard_summary" android:summary="@string/sound_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_sound"/> settings:highlightableMenuKey="@string/menu_key_sound"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.DisplaySettings" android:fragment="com.android.settings.DisplaySettings"
android:icon="@drawable/ic_settings_display_white" android:icon="@drawable/ic_settings_display_white"
android:key="top_level_display" android:key="top_level_display"
@@ -97,7 +97,7 @@
settings:highlightableMenuKey="@string/menu_key_display" settings:highlightableMenuKey="@string/menu_key_display"
settings:controller="com.android.settings.display.TopLevelDisplayPreferenceController"/> settings:controller="com.android.settings.display.TopLevelDisplayPreferenceController"/>
<com.android.settingslib.RestrictedTopLevelPreference <com.android.settings.widget.RestrictedHomepagePreference
android:icon="@drawable/ic_settings_wallpaper_white" android:icon="@drawable/ic_settings_wallpaper_white"
android:key="top_level_wallpaper" android:key="top_level_wallpaper"
android:order="-70" android:order="-70"
@@ -106,7 +106,7 @@
settings:highlightableMenuKey="@string/menu_key_wallpaper" settings:highlightableMenuKey="@string/menu_key_wallpaper"
settings:controller="com.android.settings.display.TopLevelWallpaperPreferenceController"/> settings:controller="com.android.settings.display.TopLevelWallpaperPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.accessibility.AccessibilitySettings" android:fragment="com.android.settings.accessibility.AccessibilitySettings"
android:icon="@drawable/ic_settings_accessibility" android:icon="@drawable/ic_settings_accessibility"
android:key="top_level_accessibility" android:key="top_level_accessibility"
@@ -116,7 +116,7 @@
settings:highlightableMenuKey="@string/menu_key_accessibility" settings:highlightableMenuKey="@string/menu_key_accessibility"
settings:controller="com.android.settings.accessibility.TopLevelAccessibilityPreferenceController"/> settings:controller="com.android.settings.accessibility.TopLevelAccessibilityPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.security.SecuritySettings" android:fragment="com.android.settings.security.SecuritySettings"
android:icon="@drawable/ic_settings_security_white" android:icon="@drawable/ic_settings_security_white"
android:key="top_level_security" android:key="top_level_security"
@@ -126,7 +126,7 @@
settings:highlightableMenuKey="@string/menu_key_security" settings:highlightableMenuKey="@string/menu_key_security"
settings:controller="com.android.settings.security.TopLevelSecurityEntryPreferenceController"/> settings:controller="com.android.settings.security.TopLevelSecurityEntryPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.privacy.PrivacyDashboardFragment" android:fragment="com.android.settings.privacy.PrivacyDashboardFragment"
android:icon="@drawable/ic_settings_privacy" android:icon="@drawable/ic_settings_privacy"
android:key="top_level_privacy" android:key="top_level_privacy"
@@ -135,7 +135,7 @@
android:summary="@string/privacy_dashboard_summary" android:summary="@string/privacy_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_privacy"/> settings:highlightableMenuKey="@string/menu_key_privacy"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.location.LocationSettings" android:fragment="com.android.settings.location.LocationSettings"
android:icon="@drawable/ic_settings_location" android:icon="@drawable/ic_settings_location"
android:key="top_level_location" android:key="top_level_location"
@@ -145,7 +145,7 @@
settings:highlightableMenuKey="@string/menu_key_location" settings:highlightableMenuKey="@string/menu_key_location"
settings:controller="com.android.settings.location.TopLevelLocationPreferenceController"/> settings:controller="com.android.settings.location.TopLevelLocationPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:key="top_level_emergency" android:key="top_level_emergency"
android:title="@string/emergency_settings_preference_title" android:title="@string/emergency_settings_preference_title"
android:summary="@string/emergency_dashboard_summary" android:summary="@string/emergency_dashboard_summary"
@@ -154,7 +154,7 @@
android:fragment="com.android.settings.emergency.EmergencyDashboardFragment" android:fragment="com.android.settings.emergency.EmergencyDashboardFragment"
settings:highlightableMenuKey="@string/menu_key_emergency"/> settings:highlightableMenuKey="@string/menu_key_emergency"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.accounts.AccountDashboardFragment" android:fragment="com.android.settings.accounts.AccountDashboardFragment"
android:icon="@drawable/ic_settings_accounts" android:icon="@drawable/ic_settings_accounts"
android:key="top_level_accounts" android:key="top_level_accounts"
@@ -164,7 +164,7 @@
settings:highlightableMenuKey="@string/menu_key_accounts" settings:highlightableMenuKey="@string/menu_key_accounts"
settings:controller="com.android.settings.accounts.TopLevelAccountEntryPreferenceController"/> settings:controller="com.android.settings.accounts.TopLevelAccountEntryPreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.system.SystemDashboardFragment" android:fragment="com.android.settings.system.SystemDashboardFragment"
android:icon="@drawable/ic_settings_system_dashboard_white" android:icon="@drawable/ic_settings_system_dashboard_white"
android:key="top_level_system" android:key="top_level_system"
@@ -173,7 +173,7 @@
android:summary="@string/system_dashboard_summary" android:summary="@string/system_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_system"/> settings:highlightableMenuKey="@string/menu_key_system"/>
<Preference <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment" android:fragment="com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment"
android:icon="@drawable/ic_phone_info" android:icon="@drawable/ic_phone_info"
android:key="top_level_about_device" android:key="top_level_about_device"
@@ -183,7 +183,7 @@
settings:highlightableMenuKey="@string/menu_key_about_device" settings:highlightableMenuKey="@string/menu_key_about_device"
settings:controller="com.android.settings.deviceinfo.aboutphone.TopLevelAboutDevicePreferenceController"/> settings:controller="com.android.settings.deviceinfo.aboutphone.TopLevelAboutDevicePreferenceController"/>
<Preference <com.android.settings.widget.HomepagePreference
android:icon="@drawable/ic_help" android:icon="@drawable/ic_help"
android:key="top_level_support" android:key="top_level_support"
android:order="100" android:order="100"

View File

@@ -187,19 +187,17 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa
@Override @Override
public void setTitle(CharSequence title) { public void setTitle(CharSequence title) {
super.setTitle(title);
if (mCollapsingToolbarLayout != null) { if (mCollapsingToolbarLayout != null) {
mCollapsingToolbarLayout.setTitle(title); mCollapsingToolbarLayout.setTitle(title);
} else {
super.setTitle(title);
} }
} }
@Override @Override
public void setTitle(int titleId) { public void setTitle(int titleId) {
super.setTitle(getText(titleId));
if (mCollapsingToolbarLayout != null) { if (mCollapsingToolbarLayout != null) {
mCollapsingToolbarLayout.setTitle(getText(titleId)); mCollapsingToolbarLayout.setTitle(getText(titleId));
} else {
super.setTitle(titleId);
} }
} }

View File

@@ -529,8 +529,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
mBlockerController.countDown(controller.getPreferenceKey()); mBlockerController.countDown(controller.getPreferenceKey());
} }
@VisibleForTesting protected Preference createPreference(Tile tile) {
Preference createPreference(Tile tile) {
return tile instanceof ProviderTile return tile instanceof ProviderTile
? new SwitchPreference(getPrefContext()) ? new SwitchPreference(getPrefContext())
: tile.hasSwitch() : tile.hasSwitch()

View File

@@ -43,7 +43,9 @@ import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.support.SupportPreferenceController; import com.android.settings.support.SupportPreferenceController;
import com.android.settings.widget.HighlightableTopLevelPreferenceAdapter; import com.android.settings.widget.HighlightableTopLevelPreferenceAdapter;
import com.android.settings.widget.HomepagePreference;
import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
@SearchIndexable(forTarget = MOBILE) @SearchIndexable(forTarget = MOBILE)
@@ -247,6 +249,11 @@ public class TopLevelSettings extends DashboardFragment implements
return mTopLevelAdapter; return mTopLevelAdapter;
} }
@Override
protected Preference createPreference(Tile tile) {
return new HomepagePreference(getPrefContext());
}
void reloadHighlightMenuKey() { void reloadHighlightMenuKey() {
if (mTopLevelAdapter == null) { if (mTopLevelAdapter == null) {
return; return;

View File

@@ -17,6 +17,7 @@
package com.android.settings.password; package com.android.settings.password;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Intent; import android.content.Intent;
@@ -28,6 +29,7 @@ import android.os.UserManager;
import android.os.storage.StorageManager; import android.os.storage.StorageManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
@@ -108,6 +110,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
} }
@SuppressLint("ClickableViewAccessibility")
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
@@ -146,6 +149,12 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled( mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled(
mEffectiveUserId)); mEffectiveUserId));
mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener); mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener);
mLockPatternView.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.getParent().requestDisallowInterceptTouchEvent(true);
}
return false;
});
updateStage(Stage.NeedToUnlock); updateStage(Stage.NeedToUnlock);
if (savedInstanceState == null) { if (savedInstanceState == null) {

View File

@@ -31,6 +31,7 @@ import androidx.preference.PreferenceGroupAdapter;
import androidx.preference.PreferenceViewHolder; import androidx.preference.PreferenceViewHolder;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity;
@@ -45,19 +46,18 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
static final long DELAY_HIGHLIGHT_DURATION_MILLIS = 100L; static final long DELAY_HIGHLIGHT_DURATION_MILLIS = 100L;
@VisibleForTesting private final int mTitleColorNormal;
final int mHighlightColor; private final int mTitleColorHighlight;
final int mTitleColorNormal; private final int mSummaryColorNormal;
final int mTitleColorHighlight; private final int mSummaryColorHighlight;
final int mSummaryColorNormal; private final int mIconColorNormal;
final int mSummaryColorHighlight; private final int mIconColorHighlight;
final int mIconColorNormal;
final int mIconColorHighlight;
private final Context mContext; private final Context mContext;
private final SettingsHomepageActivity mHomepageActivity; private final SettingsHomepageActivity mHomepageActivity;
private final RecyclerView mRecyclerView; private final RecyclerView mRecyclerView;
private final int mNormalBackgroundRes; private final int mNormalBackgroundRes;
private final int mHighlightBackgroundRes;
private String mHighlightKey; private String mHighlightKey;
private String mPreviousHighlightKey; private String mPreviousHighlightKey;
private int mHighlightPosition = RecyclerView.NO_POSITION; private int mHighlightPosition = RecyclerView.NO_POSITION;
@@ -76,8 +76,7 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
mContext.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, mContext.getTheme().resolveAttribute(android.R.attr.selectableItemBackground,
outValue, true /* resolveRefs */); outValue, true /* resolveRefs */);
mNormalBackgroundRes = outValue.resourceId; mNormalBackgroundRes = outValue.resourceId;
mHighlightColor = Utils.getColorAttrDefaultColor(mContext, mHighlightBackgroundRes = R.drawable.homepage_highlighted_item_background;
com.android.internal.R.attr.colorAccentSecondaryVariant);
mTitleColorNormal = Utils.getColorAttrDefaultColor(mContext, mTitleColorNormal = Utils.getColorAttrDefaultColor(mContext,
android.R.attr.textColorPrimary); android.R.attr.textColorPrimary);
mTitleColorHighlight = Utils.getColorAttrDefaultColor(mContext, mTitleColorHighlight = Utils.getColorAttrDefaultColor(mContext,
@@ -227,7 +226,7 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
private void addHighlightBackground(PreferenceViewHolder holder) { private void addHighlightBackground(PreferenceViewHolder holder) {
final View v = holder.itemView; final View v = holder.itemView;
v.setBackgroundColor(mHighlightColor); v.setBackgroundResource(mHighlightBackgroundRes);
((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorHighlight); ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorHighlight);
((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorHighlight); ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorHighlight);
final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable(); final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();

View File

@@ -0,0 +1,48 @@
/*
* Copyright (C) 2021 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.widget;
import android.content.Context;
import android.util.AttributeSet;
import androidx.preference.Preference;
import com.android.settings.R;
/** A customized layout for homepage preference. */
public class HomepagePreference extends Preference {
public HomepagePreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
setLayoutResource(R.layout.homepage_preference);
}
public HomepagePreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setLayoutResource(R.layout.homepage_preference);
}
public HomepagePreference(Context context, AttributeSet attrs) {
super(context, attrs);
setLayoutResource(R.layout.homepage_preference);
}
public HomepagePreference(Context context) {
super(context);
setLayoutResource(R.layout.homepage_preference);
}
}

View File

@@ -0,0 +1,47 @@
/*
* Copyright (C) 2021 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.widget;
import android.content.Context;
import android.util.AttributeSet;
import com.android.settings.R;
import com.android.settingslib.RestrictedTopLevelPreference;
/** Homepage preference that can be disabled by a device admin using a user restriction. */
public class RestrictedHomepagePreference extends RestrictedTopLevelPreference {
public RestrictedHomepagePreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
setLayoutResource(R.layout.homepage_preference);
}
public RestrictedHomepagePreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setLayoutResource(R.layout.homepage_preference);
}
public RestrictedHomepagePreference(Context context, AttributeSet attrs) {
super(context, attrs);
setLayoutResource(R.layout.homepage_preference);
}
public RestrictedHomepagePreference(Context context) {
super(context);
setLayoutResource(R.layout.homepage_preference);
}
}