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

Commit f1ed1c43 authored by Daniel Norman's avatar Daniel Norman Committed by Android (Google) Code Review
Browse files

Merge "feat(expressive): Update AccessibilityMenu settings for expressive theme" into main

parents eba65c07 d06108db
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ android_app {
        "androidx.preference_preference",
        "androidx.viewpager2_viewpager2",
        "com_android_systemui_flags_lib",
        "SettingsLibCollapsingToolbarBaseActivity",
        "SettingsLibDisplayUtils",
        "SettingsLibSettingsTheme",
        "SystemUI-shared-utils",
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@
            android:exported="true"
            android:label="@string/accessibility_menu_settings_name"
            android:launchMode="singleTop"
            android:theme="@style/Theme.SettingsBase">
            android:theme="@style/Theme.SubSettingsBase">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

+3 −4
Original line number Diff line number Diff line
@@ -16,10 +16,9 @@
  -->

<androidx.preference.PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    xmlns:android="http://schemas.android.com/apk/res/android">

    <SwitchPreference
    <SwitchPreferenceCompat
        android:defaultValue="false"
        android:key="@string/pref_large_buttons"
        android:persistent="true"
+9 −61
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 * Copyright (C) 2025 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.
@@ -16,101 +16,48 @@

package com.android.systemui.accessibility.accessibilitymenu.activity;

import android.app.ActionBar;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Insets;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Browser;
import android.provider.Settings;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowInsets;
import android.widget.TextView;
import android.window.OnBackInvokedCallback;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;

import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
import com.android.settingslib.widget.SettingsBasePreferenceFragment;
import com.android.systemui.accessibility.accessibilitymenu.R;

/**
 * Settings activity for AccessibilityMenu.
 */
public class A11yMenuSettingsActivity extends FragmentActivity {
    private OnBackInvokedCallback mCallback = () -> {
        finish();
    };
public class A11yMenuSettingsActivity extends CollapsingToolbarBaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getSupportFragmentManager()
                .beginTransaction()
                .replace(android.R.id.content, new A11yMenuPreferenceFragment())
                .replace(com.android.settingslib.collapsingtoolbar.R.id.content_frame,
                        new A11yMenuPreferenceFragment())
                .commit();

        ActionBar actionBar = getActionBar();
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setCustomView(R.layout.preferences_action_bar);
        ((TextView) findViewById(R.id.action_bar_title)).setText(
                getResources().getString(R.string.accessibility_menu_settings_name)
        );
        setHeightWrapContent(findViewById(com.android.internal.R.id.action_bar));
        setHeightWrapContent(findViewById(com.android.internal.R.id.action_bar_container));
    }

    private void setHeightWrapContent(View view) {
        if (view != null) {
            ViewGroup.LayoutParams params = view.getLayoutParams();
            params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
            view.setLayoutParams(params);
        }
    }

    @Override
    public boolean onNavigateUp() {
        mCallback.onBackInvoked();
        return true;
    }

    /**
     * Settings/preferences fragment for AccessibilityMenu.
     */
    public static class A11yMenuPreferenceFragment extends PreferenceFragmentCompat {
    public static class A11yMenuPreferenceFragment extends SettingsBasePreferenceFragment {
        @Override
        public void onCreatePreferences(Bundle bundle, String s) {
            setPreferencesFromResource(R.xml.accessibilitymenu_preferences, s);
            initializeHelpAndFeedbackPreference();
        }

        @Override
        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
            view.setLayoutDirection(
                    view.getResources().getConfiguration().getLayoutDirection());
            view.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
                @NonNull
                @Override
                public WindowInsets onApplyWindowInsets(@NonNull View v,
                        @NonNull WindowInsets windowInsets) {
                    Insets insets = windowInsets.getInsets(WindowInsets.Type.systemBars()
                            | WindowInsets.Type.navigationBars()
                            | WindowInsets.Type.displayCutout());
                    v.setPadding(insets.left, insets.top, insets.right, insets.bottom);
                    return WindowInsets.CONSUMED;
                }
            });
        }

        /**
         * Returns large buttons settings state.
         *
@@ -130,6 +77,7 @@ public class A11yMenuSettingsActivity extends FragmentActivity {
                if (Settings.Secure.getInt(
                        getContext().getContentResolver(),
                        Settings.Secure.USER_SETUP_COMPLETE, 0) != 1) {
                    prefHelp.setVisible(false);
                    return;
                }