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

Commit 3a445a3e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Allow Magnification Settings launch from outside of AccessibilitySettings" into udc-dev

parents f9ef8e39 1596a283
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@
package com.android.settings.accessibility;

import android.content.Context;
import android.icu.text.MessageFormat;
import android.os.Bundle;
import android.provider.Settings;
import android.text.TextUtils;
@@ -94,19 +93,11 @@ public class MagnificationGesturesPreferenceController extends TogglePreferenceC
    }

    static void populateMagnificationGesturesPreferenceExtras(Bundle extras, Context context) {
        extras.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY,
                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
        // TODO(b/270481978): It seems not necessary to put EXTRA_TITLE_RES.
        extras.putInt(AccessibilitySettings.EXTRA_TITLE_RES,
                R.string.accessibility_screen_magnification_gestures_title);

        String intro = context.getString(R.string.accessibility_screen_magnification_intro_text);
        extras.putCharSequence(AccessibilitySettings.EXTRA_INTRO, intro);

        String summary = context.getString(R.string.accessibility_screen_magnification_summary);
        final Object[] numberArguments = {1, 2, 3, 4, 5};
        summary = MessageFormat.format(summary, numberArguments);
        extras.putCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION, summary);

        // TODO(b/270481978): It seems not necessary to put EXTRA_VIDEO_RAW_RESOURCE_ID.
        extras.putInt(AccessibilitySettings.EXTRA_VIDEO_RAW_RESOURCE_ID,
                R.raw.accessibility_screen_magnification);
    }
+1 −1
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
    private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT;
    private boolean mSavedAccessibilityFloatingMenuEnabled;
    private ImageView mImageGetterCacheView;
    private final Html.ImageGetter mImageGetter = (String str) -> {
    protected final Html.ImageGetter mImageGetter = (String str) -> {
        if (str != null && str.startsWith(IMG_PREFIX)) {
            final String fileName = str.substring(IMG_PREFIX.length());
            return getDrawableFromUri(Uri.parse(
+29 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.icu.text.CaseMap;
import android.icu.text.MessageFormat;
import android.net.Uri;
import android.os.Bundle;
import android.provider.DeviceConfig;
@@ -220,6 +221,34 @@ public class ToggleScreenMagnificationPreferenceFragment extends
        addJoystickSetting(generalCategory);
    }

    @Override
    protected void onProcessArguments(Bundle arguments) {
        Context context = getContext();

        // This Fragment may get arguments from MagnificationGesturesPreferenceController or
        // MagnificationNavbarPreferenceController and it's necessary to check if a key exists
        // before putting a new value into arguments.

        if (!arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY)) {
            arguments.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY,
                    Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
        }

        if (!arguments.containsKey(AccessibilitySettings.EXTRA_INTRO)) {
            arguments.putCharSequence(AccessibilitySettings.EXTRA_INTRO,
                    context.getString(R.string.accessibility_screen_magnification_intro_text));
        }

        if (!arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION)) {
            String summary = MessageFormat.format(
                    context.getString(R.string.accessibility_screen_magnification_summary),
                            new Object[]{1, 2, 3, 4, 5});
            arguments.putCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION, summary);
        }

        super.onProcessArguments(arguments);
    }

    private void addAlwaysOnSetting(PreferenceCategory generalCategory) {
        if (!DeviceConfig.getBoolean(
                DeviceConfig.NAMESPACE_WINDOW_MANAGER,
+12 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment

import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
@@ -405,6 +406,17 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
        assertThat(mFragment.getHelpResource()).isEqualTo(R.string.help_url_magnification);
    }

    @Test
    public void onProcessArguments_defaultArgumentUnavailable_shouldSetDefaultArguments() {
        Bundle arguments = new Bundle();

        mFragment.onProcessArguments(arguments);

        assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY));
        assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_INTRO));
        assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION));
    }

    private void putStringIntoSettings(String key, String componentName) {
        Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
    }