Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9441d2b2 authored by Menghan Li's avatar Menghan Li Committed by Android (Google) Code Review
Browse files

Merge "Apply GlifPreferenceLayout for accessibility service Setup Wizard...

Merge "Apply GlifPreferenceLayout for accessibility service Setup Wizard two-panel styles" into sc-v2-dev
parents 6ff60d77 7e8dd64e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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. -->
@@ -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 -->
+15 −14
Original line number Diff line number Diff line
@@ -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;
@@ -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;

@@ -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
@@ -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);
@@ -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;
            }
        }
+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());
            }
        }
    }
}
+32 −8
Original line number Diff line number Diff line
@@ -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;
@@ -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);
    }
}
+25 −0
Original line number Diff line number Diff line
@@ -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 {
@@ -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