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

Commit eed791e2 authored by Yi-Ling Chuang's avatar Yi-Ling Chuang
Browse files

Suppress shared axis transition on Brightness level

The brightness bar is a dialog activity. If the shared axis transition
is applied, we'll see an empty page appears with a seek bar on the top,
which is not ideal. Hence, suppress the transition to keep the original
behaviour.

Fixes: 189076430
Test: robotest and test on the brightness level
Change-Id: I1572c31f09d8c6bb3b2c906f6211ed9b97024439
parent 8db5cb03
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@
            settings:keywords="@string/keywords_display_brightness_level"
            settings:useAdminDisabledSummary="true"
            settings:userRestriction="no_config_brightness">
            <intent android:action="com.android.intent.action.SHOW_BRIGHTNESS_DIALOG"/>
        </com.android.settingslib.RestrictedPreference>

        <com.android.settings.widget.PrimarySwitchPreference
+22 −2
Original line number Diff line number Diff line
@@ -13,12 +13,15 @@
 */
package com.android.settings.display;

import static android.content.Intent.ACTION_SHOW_BRIGHTNESS_DIALOG;

import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX;
import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MIN;
import static com.android.settingslib.display.BrightnessUtils.convertLinearToGammaFloat;

import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.ContentObserver;
import android.hardware.display.BrightnessInfo;
import android.hardware.display.DisplayManager;
@@ -31,6 +34,7 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings.System;
import android.service.vr.IVrManager;
import android.text.TextUtils;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
@@ -38,11 +42,13 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.transition.SettingsTransitionHelper;

import java.text.NumberFormat;

@@ -77,10 +83,12 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr

    private final DisplayListener mDisplayListener = new DisplayListener() {
        @Override
        public void onDisplayAdded(int displayId) {}
        public void onDisplayAdded(int displayId) {
        }

        @Override
        public void onDisplayRemoved(int displayId) {}
        public void onDisplayRemoved(int displayId) {
        }

        @Override
        public void onDisplayChanged(int displayId) {
@@ -140,6 +148,18 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
        mDisplayManager.unregisterDisplayListener(mDisplayListener);
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
            return false;
        }
        final Intent intent = new Intent(ACTION_SHOW_BRIGHTNESS_DIALOG);
        intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                SettingsTransitionHelper.TransitionType.TRANSITION_NONE);
        mContext.startActivity(intent);
        return true;
    }

    private void updatedSummary(Preference preference) {
        if (preference != null) {
            preference.setSummary(NumberFormat.getPercentInstance().format(getCurrentBrightness()));
+24 −0
Original line number Diff line number Diff line
@@ -25,9 +25,12 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.hardware.display.BrightnessInfo;
import android.os.PowerManager;
import android.provider.Settings.System;
@@ -36,14 +39,19 @@ import android.view.Display;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.core.SettingsBaseActivity;
import com.android.settingslib.transition.SettingsTransitionHelper;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowContentResolver;

@@ -178,4 +186,20 @@ public class BrightnessLevelPreferenceControllerTest {
        mController.updateState(mPreference);
        verify(mPreference).setSummary("0%");
    }

    @Test
    public void handlePreferenceTreeClick_transitionTypeNone_shouldPassToNextActivity() {
        final Activity activity = Robolectric.setupActivity(Activity.class);
        final BrightnessLevelPreferenceController controller =
                new BrightnessLevelPreferenceController(activity, null);
        final ShadowActivity shadowActivity = shadowOf(activity);
        when(mPreference.getKey()).thenReturn("brightness");

        controller.handlePreferenceTreeClick(mPreference);

        final Intent intent = shadowActivity.getNextStartedActivity();
        assertThat(intent.getIntExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE, 0))
                .isEqualTo(SettingsTransitionHelper.TransitionType.TRANSITION_NONE);

    }
}