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

Commit 8d49cd7f authored by Marcelo Arteiro's avatar Marcelo Arteiro Committed by Android (Google) Code Review
Browse files

Merge "Add setting allowing for contrast level to be clamped" into main

parents b8a11f73 3adad406
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -341,4 +341,7 @@

    <!-- The default ringer mode. See `AudioManager` for list of valid values. -->
    <integer name="def_ringer_mode">2</integer>

    <!-- Caps minsum contrast from -1.0 (Material API) to 0.0 (Android Support)-->
    <bool name="config_increaseMinContrast">true</bool>
</resources>
+15 −0
Original line number Diff line number Diff line
@@ -1107,6 +1107,21 @@ public class SettingsBackupAgent extends BackupAgentHelper {
                Log.d(TAG, "Restored font scale from: " + toRestore + " to " + value);
            }

            if (Settings.Secure.CONTRAST_LEVEL.equals(key)) {
                boolean increaseMinContrast = getBaseContext().getResources()
                        .getBoolean(R.bool.config_increaseMinContrast);

                float valueFloat;
                try {
                    valueFloat = Float.parseFloat(value);
                } catch (NumberFormatException e) {
                    valueFloat = 0.0f;
                }

                float newValue = Math.max(valueFloat, increaseMinContrast ? 0.0f : -1.0f);
                value = String.valueOf(newValue);
            }

            settingsHelper.restoreValue(this, cr, contentValues, destination, key, value,
                    mRestoredFromSdkInt);

+44 −7
Original line number Diff line number Diff line
@@ -16,15 +16,15 @@

package com.android.providers.settings;

import static com.android.providers.settings.SettingsBackupRestoreKeys.KEY_WIFI_NEW_CONFIG;
import static com.android.providers.settings.SettingsBackupRestoreKeys.KEY_SOFTAP_CONFIG;
import static com.android.providers.settings.SettingsBackupRestoreKeys.KEY_SIM_SPECIFIC_SETTINGS_2;
import static com.android.providers.settings.SettingsBackupRestoreKeys.KEY_SOFTAP_CONFIG;
import static com.android.providers.settings.SettingsBackupRestoreKeys.KEY_WIFI_NEW_CONFIG;
import static com.android.providers.settings.SettingsBackupRestoreKeys.KEY_WIFI_SETTINGS_BACKUP_DATA;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;

import static org.junit.Assert.assertArrayEquals;
@@ -35,12 +35,10 @@ import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.when;

import android.annotation.Nullable;
import android.app.backup.BackupAnnotations.BackupDestination;
import android.app.backup.BackupAnnotations.OperationType;
import android.app.backup.BackupDataInput;
import android.app.backup.BackupDataOutput;
import android.app.backup.BackupRestoreEventLogger;
import android.app.backup.BackupRestoreEventLogger.DataTypeResult;
import android.content.ContentResolver;
import android.content.ContentValues;
@@ -69,13 +67,11 @@ import androidx.test.runner.AndroidJUnit4;

import com.android.window.flags.Flags;

import java.util.List;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;

@@ -330,6 +326,47 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
        assertEquals("1.5", testedMethod.apply("1.8"));
    }

    @Test
    public void testOnRestore_minContrastLevelIsRestoredToZero() {
        mAgentUnderTest = new TestFriendlySettingsBackupAgent() {
            @Override
            protected Set<String> getBlockedSettings(int blockedSettingsArrayId) {
                return new HashSet<>();
            }
        };
        mAgentUnderTest.attach(mContext);

        TestSettingsHelper settingsHelper = new TestSettingsHelper(mContext);
        mAgentUnderTest.mSettingsHelper = settingsHelper;

        String contrastLevelValue = "-1.0";
        Map<String, String> settingsToRestore = Map.of(Settings.Secure.CONTRAST_LEVEL,
                contrastLevelValue);

        byte[] backupData = generateBackupData(settingsToRestore);
        mAgentUnderTest.restoreSettings(
                backupData,
                /* pos */ 0,
                backupData.length,
                Settings.Secure.CONTENT_URI,
                null,
                null,
                null,
                /* blockedSettingsArrayId */ 0,
                Collections.emptySet(),
                Collections.emptySet(),
                KEY_SECURE);

        // Check that the contrast level has been restored.
        assertTrue(settingsHelper.mWrittenValues.containsKey(Settings.Secure.CONTRAST_LEVEL));

        String restoredContrastLevel = settingsHelper.mWrittenValues.get(
                Settings.Secure.CONTRAST_LEVEL);

        float restoredFloat = Float.parseFloat(restoredContrastLevel);
        assertEquals(0.0f, restoredFloat, 0.001f);
    }

    @Test
    @DisableFlags(com.android.server.backup.Flags.FLAG_ENABLE_METRICS_SETTINGS_BACKUP_AGENTS)
    public void onCreate_metricsFlagIsDisabled_areAgentMetricsEnabledIsFalse() {
+1 −0
Original line number Diff line number Diff line
@@ -988,6 +988,7 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
    public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
        pw.println("mSystemColors=" + mCurrentColors);
        pw.println("mMainWallpaperColor=" + Integer.toHexString(mMainWallpaperColor));
        pw.println("mContrast=" + mContrast);
        pw.println("mSecondaryOverlay=" + mSecondaryOverlay);
        pw.println("mNeutralOverlay=" + mNeutralOverlay);
        pw.println("mDynamicOverlay=" + mDynamicOverlay);