Loading res/values/themes_suw.xml +2 −0 Original line number Diff line number Diff line Loading @@ -234,6 +234,7 @@ <item name="android:listPreferredItemPaddingEnd">16dp</item> <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item> <item name="android:switchStyle">@style/Switch.SettingsLib</item> <item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item> </style> <!-- This theme was applied to Settings pages which are running under SUW with DynamicColor. --> Loading @@ -243,6 +244,7 @@ <item name="android:listPreferredItemPaddingEnd">16dp</item> <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item> <item name="android:switchStyle">@style/Switch.SettingsLib</item> <item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item> </style> <!-- DayNight themes --> Loading src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java +15 −14 Original line number Diff line number Diff line Loading @@ -28,11 +28,11 @@ import android.content.pm.ServiceInfo; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityManager; import android.widget.LinearLayout; import androidx.preference.Preference; import androidx.recyclerview.widget.RecyclerView; Loading @@ -42,7 +42,6 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settingslib.RestrictedPreference; import com.google.android.setupdesign.GlifPreferenceLayout; import com.google.android.setupdesign.util.ThemeHelper; import java.util.List; Loading Loading @@ -81,16 +80,11 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm super.onViewCreated(view, savedInstanceState); final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; layout.setDividerInsets(Integer.MAX_VALUE, 0); layout.setDescriptionText(R.string.vision_settings_description); layout.setHeaderText(R.string.vision_settings_title); layout.setIcon(getPrefContext().getDrawable(R.drawable.ic_accessibility_visibility)); if (ThemeHelper.shouldApplyExtendedPartnerConfig(getActivity())) { final LinearLayout headerLayout = layout.findManagedViewById(R.id.sud_layout_header); headerLayout.setPadding(0, headerLayout.getPaddingTop(), 0, headerLayout.getPaddingBottom()); } final String title = getContext().getString(R.string.vision_settings_title); final String description = getContext().getString(R.string.vision_settings_description); final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, description, icon); } @Override Loading Loading @@ -143,6 +137,13 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm return super.onPreferenceTreeClick(preference); } /** * Returns accessibility service info by given package name and service name. * * @param packageName Package of accessibility service * @param serviceName Class of accessibility service * @return {@link AccessibilityServiceInfo} instance if available, null otherwise. */ private AccessibilityServiceInfo findService(String packageName, String serviceName) { final AccessibilityManager manager = getActivity().getSystemService(AccessibilityManager.class); Loading @@ -150,8 +151,8 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm manager.getInstalledAccessibilityServiceList(); for (AccessibilityServiceInfo info : accessibilityServices) { ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo; if (packageName.equals(serviceInfo.packageName) && serviceName.equals(serviceInfo.name)) { if (TextUtils.equals(packageName, serviceInfo.packageName) && TextUtils.equals(serviceName, serviceInfo.name)) { return info; } } Loading src/com/android/settings/accessibility/AccessibilitySetupWizardUtils.java 0 → 100644 +58 −0 Original line number Diff line number Diff line /* * 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.accessibility; import android.content.Context; import android.graphics.drawable.Drawable; import android.widget.LinearLayout; import com.android.settings.R; import com.google.android.setupdesign.GlifPreferenceLayout; import com.google.android.setupdesign.util.ThemeHelper; /** Provides utility methods to accessibility settings for Setup Wizard only. */ class AccessibilitySetupWizardUtils { private AccessibilitySetupWizardUtils(){} /** * Update the {@link GlifPreferenceLayout} attributes if they have previously been initialized. * When the SetupWizard supports the extended partner configs, it means the material layout * would be applied. It should set a different padding/margin in views to align Settings style * for accessibility feature pages. * * @param layout The layout instance * @param title The text to be set as title * @param description The text to be set as description * @param icon The icon to be set */ public static void updateGlifPreferenceLayout(Context context, GlifPreferenceLayout layout, CharSequence title, CharSequence description, Drawable icon) { layout.setHeaderText(title); layout.setDescriptionText(description); layout.setIcon(icon); layout.setDividerInsets(Integer.MAX_VALUE, 0); if (ThemeHelper.shouldApplyExtendedPartnerConfig(context)) { final LinearLayout headerLayout = layout.findManagedViewById(R.id.sud_layout_header); if (headerLayout != null) { headerLayout.setPadding(0, layout.getPaddingTop(), 0, layout.getPaddingBottom()); } } } } src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java +32 −8 Original line number Diff line number Diff line Loading @@ -17,12 +17,44 @@ package com.android.settings.accessibility; import android.app.settings.SettingsEnums; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupdesign.GlifPreferenceLayout; public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard extends ToggleScreenMagnificationPreferenceFragment { @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; final String title = getContext().getString( R.string.accessibility_screen_magnification_title); final String description = getContext().getString(R.string.accelerometer_title); final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, description, icon); // Hide the setting from the vision settings. mSettingsPreference.setVisible(false); } @Override public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent; return layout.onCreateRecyclerView(inflater, parent, savedInstanceState); } @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION; Loading @@ -49,12 +81,4 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard // Hides help center in action bar and footer bar in SuW return 0; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Hide the setting from the vision settings. mSettingsPreference.setVisible(false); } } src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java +25 −0 Original line number Diff line number Diff line Loading @@ -17,8 +17,17 @@ package com.android.settings.accessibility; import android.app.settings.SettingsEnums; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupdesign.GlifPreferenceLayout; public class ToggleScreenReaderPreferenceFragmentForSetupWizard extends ToggleAccessibilityServicePreferenceFragment { Loading @@ -28,9 +37,25 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; final String title = getArguments().getString(AccessibilitySettings.EXTRA_TITLE); final String description = getContext().getString( R.string.accessibility_screen_magnification_title); final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, description, icon); mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked(); } @Override public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent; return layout.onCreateRecyclerView(inflater, parent, savedInstanceState); } @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER; Loading Loading
res/values/themes_suw.xml +2 −0 Original line number Diff line number Diff line Loading @@ -234,6 +234,7 @@ <item name="android:listPreferredItemPaddingEnd">16dp</item> <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item> <item name="android:switchStyle">@style/Switch.SettingsLib</item> <item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item> </style> <!-- This theme was applied to Settings pages which are running under SUW with DynamicColor. --> Loading @@ -243,6 +244,7 @@ <item name="android:listPreferredItemPaddingEnd">16dp</item> <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item> <item name="android:switchStyle">@style/Switch.SettingsLib</item> <item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item> </style> <!-- DayNight themes --> Loading
src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java +15 −14 Original line number Diff line number Diff line Loading @@ -28,11 +28,11 @@ import android.content.pm.ServiceInfo; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityManager; import android.widget.LinearLayout; import androidx.preference.Preference; import androidx.recyclerview.widget.RecyclerView; Loading @@ -42,7 +42,6 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settingslib.RestrictedPreference; import com.google.android.setupdesign.GlifPreferenceLayout; import com.google.android.setupdesign.util.ThemeHelper; import java.util.List; Loading Loading @@ -81,16 +80,11 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm super.onViewCreated(view, savedInstanceState); final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; layout.setDividerInsets(Integer.MAX_VALUE, 0); layout.setDescriptionText(R.string.vision_settings_description); layout.setHeaderText(R.string.vision_settings_title); layout.setIcon(getPrefContext().getDrawable(R.drawable.ic_accessibility_visibility)); if (ThemeHelper.shouldApplyExtendedPartnerConfig(getActivity())) { final LinearLayout headerLayout = layout.findManagedViewById(R.id.sud_layout_header); headerLayout.setPadding(0, headerLayout.getPaddingTop(), 0, headerLayout.getPaddingBottom()); } final String title = getContext().getString(R.string.vision_settings_title); final String description = getContext().getString(R.string.vision_settings_description); final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, description, icon); } @Override Loading Loading @@ -143,6 +137,13 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm return super.onPreferenceTreeClick(preference); } /** * Returns accessibility service info by given package name and service name. * * @param packageName Package of accessibility service * @param serviceName Class of accessibility service * @return {@link AccessibilityServiceInfo} instance if available, null otherwise. */ private AccessibilityServiceInfo findService(String packageName, String serviceName) { final AccessibilityManager manager = getActivity().getSystemService(AccessibilityManager.class); Loading @@ -150,8 +151,8 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm manager.getInstalledAccessibilityServiceList(); for (AccessibilityServiceInfo info : accessibilityServices) { ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo; if (packageName.equals(serviceInfo.packageName) && serviceName.equals(serviceInfo.name)) { if (TextUtils.equals(packageName, serviceInfo.packageName) && TextUtils.equals(serviceName, serviceInfo.name)) { return info; } } Loading
src/com/android/settings/accessibility/AccessibilitySetupWizardUtils.java 0 → 100644 +58 −0 Original line number Diff line number Diff line /* * 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.accessibility; import android.content.Context; import android.graphics.drawable.Drawable; import android.widget.LinearLayout; import com.android.settings.R; import com.google.android.setupdesign.GlifPreferenceLayout; import com.google.android.setupdesign.util.ThemeHelper; /** Provides utility methods to accessibility settings for Setup Wizard only. */ class AccessibilitySetupWizardUtils { private AccessibilitySetupWizardUtils(){} /** * Update the {@link GlifPreferenceLayout} attributes if they have previously been initialized. * When the SetupWizard supports the extended partner configs, it means the material layout * would be applied. It should set a different padding/margin in views to align Settings style * for accessibility feature pages. * * @param layout The layout instance * @param title The text to be set as title * @param description The text to be set as description * @param icon The icon to be set */ public static void updateGlifPreferenceLayout(Context context, GlifPreferenceLayout layout, CharSequence title, CharSequence description, Drawable icon) { layout.setHeaderText(title); layout.setDescriptionText(description); layout.setIcon(icon); layout.setDividerInsets(Integer.MAX_VALUE, 0); if (ThemeHelper.shouldApplyExtendedPartnerConfig(context)) { final LinearLayout headerLayout = layout.findManagedViewById(R.id.sud_layout_header); if (headerLayout != null) { headerLayout.setPadding(0, layout.getPaddingTop(), 0, layout.getPaddingBottom()); } } } }
src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java +32 −8 Original line number Diff line number Diff line Loading @@ -17,12 +17,44 @@ package com.android.settings.accessibility; import android.app.settings.SettingsEnums; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupdesign.GlifPreferenceLayout; public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard extends ToggleScreenMagnificationPreferenceFragment { @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; final String title = getContext().getString( R.string.accessibility_screen_magnification_title); final String description = getContext().getString(R.string.accelerometer_title); final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, description, icon); // Hide the setting from the vision settings. mSettingsPreference.setVisible(false); } @Override public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent; return layout.onCreateRecyclerView(inflater, parent, savedInstanceState); } @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION; Loading @@ -49,12 +81,4 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard // Hides help center in action bar and footer bar in SuW return 0; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Hide the setting from the vision settings. mSettingsPreference.setVisible(false); } }
src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java +25 −0 Original line number Diff line number Diff line Loading @@ -17,8 +17,17 @@ package com.android.settings.accessibility; import android.app.settings.SettingsEnums; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.google.android.setupdesign.GlifPreferenceLayout; public class ToggleScreenReaderPreferenceFragmentForSetupWizard extends ToggleAccessibilityServicePreferenceFragment { Loading @@ -28,9 +37,25 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; final String title = getArguments().getString(AccessibilitySettings.EXTRA_TITLE); final String description = getContext().getString( R.string.accessibility_screen_magnification_title); final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, description, icon); mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked(); } @Override public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent; return layout.onCreateRecyclerView(inflater, parent, savedInstanceState); } @Override public int getMetricsCategory() { return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER; Loading