Merge "Suppress shared axis transition on Brightness level" into sc-dev
diff --git a/res/xml/display_settings_v2.xml b/res/xml/display_settings_v2.xml
index e0eb9bb..2d6e3db 100644
--- a/res/xml/display_settings_v2.xml
+++ b/res/xml/display_settings_v2.xml
@@ -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
diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
index 7e0ce66..de4fe25 100644
--- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java
+++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
@@ -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.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.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 @@
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 @@
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()));
diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
index 8fd847a..4948986 100644
--- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -25,9 +25,12 @@
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 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 @@
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);
+
+ }
}