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

Commit 516b0f1b authored by Matthew Fritze's avatar Matthew Fritze
Browse files

Add Adaptive brightness as an inline result in Search

Bug: 34740449
Test: make RunSettingsRoboTests
Change-Id: I71acdcc04780a76263171a9d312d88a1eb61624a
parent a1bae0ad
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -185,5 +185,12 @@ public class DisplaySettings extends DashboardFragment {

                    return result;
                }

                @Override
                public List<PreferenceController> getPreferenceControllers(Context context) {
                    final List<PreferenceController> controllers = new ArrayList<>();
                    controllers.add(new AutoBrightnessPreferenceController(context));
                    return controllers;
                }
            };
}
+15 −0
Original line number Diff line number Diff line
@@ -18,7 +18,12 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;

import android.util.ArrayMap;
import com.android.settings.core.PreferenceController;
import com.android.settings.search2.InlineSwitchPayload;
import com.android.settings.search2.ResultPayload;

import java.util.Map;

import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
@@ -59,4 +64,14 @@ public class AutoBrightnessPreferenceController extends PreferenceController imp
                auto ? SCREEN_BRIGHTNESS_MODE_AUTOMATIC : SCREEN_BRIGHTNESS_MODE_MANUAL);
        return true;
    }

    @Override
    public ResultPayload getResultPayload() {
        final Map<Integer, Boolean> valueMap = new ArrayMap<>();
        valueMap.put(SCREEN_BRIGHTNESS_MODE_AUTOMATIC, true);
        valueMap.put(SCREEN_BRIGHTNESS_MODE_MANUAL, false);

        return new InlineSwitchPayload(SCREEN_BRIGHTNESS_MODE,
                ResultPayload.SettingsSource.SYSTEM, valueMap);
    }
}
+14 −2
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.Settings;
import android.util.ArrayMap;

import java.util.Map;

@@ -39,7 +38,7 @@ public class InlineSwitchPayload extends InlinePayload {
    public final Map<Integer, Boolean> valueMap;

    public InlineSwitchPayload(String newUri, @SettingsSource int settingsSource,
            ArrayMap<Integer, Boolean> map) {
            Map<Integer, Boolean> map) {
        super(newUri, PayloadType.INLINE_SWITCH, settingsSource);
        valueMap = map;
    }
@@ -91,6 +90,16 @@ public class InlineSwitchPayload extends InlinePayload {
            case SettingsSource.SECURE:
                settingsValue = Settings.Secure.getInt(context.getContentResolver(),
                        settingsUri, 0);
                break;
            case SettingsSource.SYSTEM:
                settingsValue = Settings.System.getInt(context.getContentResolver(),
                        settingsUri, 0);
                break;

            case SettingsSource.GLOBAL:
                settingsValue = Settings.Global.getInt(context.getContentResolver(),
                        settingsUri, 0);
                break;
        }

        if (settingsValue == -1) {
@@ -126,10 +135,13 @@ public class InlineSwitchPayload extends InlinePayload {

        switch(settingSource) {
            case SettingsSource.GLOBAL:
                Settings.Global.putInt(context.getContentResolver(), settingsUri, switchValue);
                return;
            case SettingsSource.SECURE:
                Settings.Secure.putInt(context.getContentResolver(), settingsUri, switchValue);
                return;
            case SettingsSource.SYSTEM:
                Settings.System.putInt(context.getContentResolver(), settingsUri, switchValue);
                return;
            case SettingsSource.UNKNOWN:
                return;
+23 −0
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ import android.content.Context;
import android.provider.Settings;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.gestures.DoubleTapPowerPreferenceController;
import com.android.settings.search2.InlineSwitchPayload;
import com.android.settings.search2.ResultPayload;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -27,6 +30,7 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;

import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
@@ -64,4 +68,23 @@ public class AutoBrightnessPreferenceControllerTest {
                SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
        assertThat(mode).isEqualTo(SCREEN_BRIGHTNESS_MODE_MANUAL);
    }

    @Test
    public void testPreferenceController_ProperResultPayloadType() {
        final Context context = ShadowApplication.getInstance().getApplicationContext();
        mController = new AutoBrightnessPreferenceController(context);
        ResultPayload payload = mController.getResultPayload();
        assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
    }

    @Test
    public void testPreferenceController_CorrectPayload() {
        final Context context = ShadowApplication.getInstance().getApplicationContext();
        mController = new AutoBrightnessPreferenceController(context);
        InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload();
        assertThat(payload.settingsUri).isEqualTo("screen_brightness_mode");
        assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SYSTEM);
        assertThat(payload.valueMap.get(1)).isEqualTo(true);
        assertThat(payload.valueMap.get(0)).isEqualTo(false);
    }
}
+4 −11
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settings.display.AutoBrightnessPreferenceController;
import com.android.settings.gestures.DoubleTapPowerPreferenceController;
import com.android.settings.gestures.DoubleTapScreenPreferenceController;
import com.android.settings.gestures.DoubleTwistPreferenceController;
@@ -81,19 +82,11 @@ public class DatabaseIndexingUtilsTest {

    @Test
    public void testGetPreferenceControllerUriMap_CompatibleClass_ReturnsValidMap() {
        String className = "com.android.settings.gestures.GestureSettings";
        String className = "com.android.settings.DisplaySettings";

        Map map = DatabaseIndexingUtils.getPreferenceControllerUriMap(className, mContext);
        assertThat(map.get("gesture_double_twist"))
                .isInstanceOf(DoubleTwistPreferenceController.class);
        assertThat(map.get("gesture_swipe_down_fingerprint"))
                .isInstanceOf(SwipeToNotificationPreferenceController.class);
        assertThat(map.get("gesture_double_tap_screen"))
                .isInstanceOf(DoubleTapScreenPreferenceController.class);
        assertThat(map.get("gesture_pick_up"))
                .isInstanceOf(PickupGesturePreferenceController.class);
        assertThat(map.get("gesture_double_tap_power"))
                .isInstanceOf(DoubleTapPowerPreferenceController.class);
        assertThat(map.get("auto_brightness"))
                .isInstanceOf(AutoBrightnessPreferenceController.class);
    }

    @Test