Loading core/java/android/os/PowerManager.java +0 −9 Original line number Diff line number Diff line Loading @@ -365,15 +365,6 @@ public final class PowerManager { com.android.internal.R.integer.config_screenBrightnessSettingDefault); } /** * Returns true if the screen auto-brightness adjustment setting should * be available in the UI. This setting is experimental and disabled by default. * @hide */ public static boolean useScreenAutoBrightnessAdjustmentFeature() { return SystemProperties.getBoolean("persist.power.useautobrightadj", false); } /** * Returns true if the twilight service should be used to adjust screen brightness * policy. This setting is experimental and disabled by default. Loading packages/SystemUI/res/layout/status_bar_toggle_slider.xml +3 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ android:layout_alignParentBottom="true" android:button="@null" android:background="@*android:drawable/switch_track_quantum" android:visibility="gone" /> <com.android.systemui.settings.ToggleSeekBar android:id="@+id/slider" Loading @@ -36,6 +37,7 @@ android:layout_height="wrap_content" android:layout_toEndOf="@id/toggle" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:layout_alignParentEnd="true" android:paddingStart="20dp" android:paddingEnd="20dp" Loading @@ -51,5 +53,6 @@ android:paddingTop="26dp" android:textColor="#666666" android:textSize="12sp" android:visibility="gone" /> </merge> packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java +55 −22 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.widget.ImageView; import java.util.ArrayList; Loading @@ -36,6 +35,12 @@ import java.util.ArrayList; public class BrightnessController implements ToggleSlider.Listener { private static final String TAG = "StatusBar.BrightnessController"; /** * {@link android.provider.Settings.System#SCREEN_AUTO_BRIGHTNESS_ADJ} uses the range [-1, 1]. * Using this factor, it is converted to [0, BRIGHTNESS_ADJ_RESOLUTION] for the SeekBar. */ private static final float BRIGHTNESS_ADJ_RESOLUTION = 100; private final int mMinimumBacklight; private final int mMaximumBacklight; Loading @@ -51,6 +56,8 @@ public class BrightnessController implements ToggleSlider.Listener { private ArrayList<BrightnessStateChangeCallback> mChangeCallbacks = new ArrayList<BrightnessStateChangeCallback>(); private boolean mAutomatic; public interface BrightnessStateChangeCallback { public void onBrightnessLevelChanged(); } Loading @@ -62,6 +69,8 @@ public class BrightnessController implements ToggleSlider.Listener { Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_MODE); private final Uri BRIGHTNESS_URI = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS); private final Uri BRIGHTNESS_ADJ_URI = Settings.System.getUriFor(Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ); public BrightnessObserver(Handler handler) { super(handler); Loading @@ -77,7 +86,10 @@ public class BrightnessController implements ToggleSlider.Listener { if (selfChange) return; if (BRIGHTNESS_MODE_URI.equals(uri)) { updateMode(); } else if (BRIGHTNESS_URI.equals(uri)) { updateSlider(); } else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) { updateSlider(); } else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) { updateSlider(); } else { updateMode(); Loading @@ -97,6 +109,9 @@ public class BrightnessController implements ToggleSlider.Listener { cr.registerContentObserver( BRIGHTNESS_URI, false, this, UserHandle.USER_ALL); cr.registerContentObserver( BRIGHTNESS_ADJ_URI, false, this, UserHandle.USER_ALL); } public void stopObserving() { Loading Loading @@ -163,10 +178,8 @@ public class BrightnessController implements ToggleSlider.Listener { } public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) { setMode(automatic ? Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC : Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); updateIcon(automatic); if (!automatic) { updateIcon(mAutomatic); if (!mAutomatic) { final int val = value + mMinimumBacklight; setBrightness(val); if (!tracking) { Loading @@ -178,6 +191,18 @@ public class BrightnessController implements ToggleSlider.Listener { } }); } } else { final float adj = value / (BRIGHTNESS_ADJ_RESOLUTION / 2f) - 1; setBrignessAdj(adj); if (!tracking) { AsyncTask.execute(new Runnable() { public void run() { Settings.System.putFloatForUser(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, adj, UserHandle.USER_CURRENT); } }); } } for (BrightnessStateChangeCallback cb : mChangeCallbacks) { Loading @@ -198,6 +223,13 @@ public class BrightnessController implements ToggleSlider.Listener { } } private void setBrignessAdj(float adj) { try { mPower.setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(adj); } catch (RemoteException ex) { } } private void updateIcon(boolean automatic) { if (mIcon != null) { mIcon.setImageResource(automatic ? Loading @@ -210,15 +242,12 @@ public class BrightnessController implements ToggleSlider.Listener { private void updateMode() { if (mAutomaticAvailable) { int automatic; try { automatic = Settings.System.getIntForUser(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL, UserHandle.USER_CURRENT); } catch (SettingNotFoundException snfe) { automatic = 0; } mControl.setChecked(automatic != 0); updateIcon(automatic != 0); mAutomatic = automatic != 0; updateIcon(mAutomatic); } else { mControl.setChecked(false); updateIcon(false /*automatic*/); Loading @@ -227,16 +256,20 @@ public class BrightnessController implements ToggleSlider.Listener { /** Fetch the brightness from the system settings and update the slider */ private void updateSlider() { if (mAutomatic) { float value = Settings.System.getFloatForUser(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0, UserHandle.USER_CURRENT); mControl.setMax((int) BRIGHTNESS_ADJ_RESOLUTION); mControl.setValue((int) ((value + 1) * BRIGHTNESS_ADJ_RESOLUTION / 2f)); } else { int value; try { value = Settings.System.getIntForUser(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, Settings.System.SCREEN_BRIGHTNESS, mMaximumBacklight, UserHandle.USER_CURRENT); } catch (SettingNotFoundException ex) { value = mMaximumBacklight; } mControl.setMax(mMaximumBacklight - mMinimumBacklight); mControl.setValue(value - mMinimumBacklight); } } } services/core/java/com/android/server/display/AutomaticBrightnessController.java +1 −2 Original line number Diff line number Diff line Loading @@ -48,8 +48,7 @@ class AutomaticBrightnessController { private static final boolean DEBUG_PRETEND_LIGHT_SENSOR_ABSENT = false; // If true, enables the use of the screen auto-brightness adjustment setting. private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT = PowerManager.useScreenAutoBrightnessAdjustmentFeature(); private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT = true; // The maximum range of gamma adjustment possible using the screen // auto-brightness adjustment setting. Loading Loading
core/java/android/os/PowerManager.java +0 −9 Original line number Diff line number Diff line Loading @@ -365,15 +365,6 @@ public final class PowerManager { com.android.internal.R.integer.config_screenBrightnessSettingDefault); } /** * Returns true if the screen auto-brightness adjustment setting should * be available in the UI. This setting is experimental and disabled by default. * @hide */ public static boolean useScreenAutoBrightnessAdjustmentFeature() { return SystemProperties.getBoolean("persist.power.useautobrightadj", false); } /** * Returns true if the twilight service should be used to adjust screen brightness * policy. This setting is experimental and disabled by default. Loading
packages/SystemUI/res/layout/status_bar_toggle_slider.xml +3 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ android:layout_alignParentBottom="true" android:button="@null" android:background="@*android:drawable/switch_track_quantum" android:visibility="gone" /> <com.android.systemui.settings.ToggleSeekBar android:id="@+id/slider" Loading @@ -36,6 +37,7 @@ android:layout_height="wrap_content" android:layout_toEndOf="@id/toggle" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:layout_alignParentEnd="true" android:paddingStart="20dp" android:paddingEnd="20dp" Loading @@ -51,5 +53,6 @@ android:paddingTop="26dp" android:textColor="#666666" android:textSize="12sp" android:visibility="gone" /> </merge>
packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java +55 −22 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.widget.ImageView; import java.util.ArrayList; Loading @@ -36,6 +35,12 @@ import java.util.ArrayList; public class BrightnessController implements ToggleSlider.Listener { private static final String TAG = "StatusBar.BrightnessController"; /** * {@link android.provider.Settings.System#SCREEN_AUTO_BRIGHTNESS_ADJ} uses the range [-1, 1]. * Using this factor, it is converted to [0, BRIGHTNESS_ADJ_RESOLUTION] for the SeekBar. */ private static final float BRIGHTNESS_ADJ_RESOLUTION = 100; private final int mMinimumBacklight; private final int mMaximumBacklight; Loading @@ -51,6 +56,8 @@ public class BrightnessController implements ToggleSlider.Listener { private ArrayList<BrightnessStateChangeCallback> mChangeCallbacks = new ArrayList<BrightnessStateChangeCallback>(); private boolean mAutomatic; public interface BrightnessStateChangeCallback { public void onBrightnessLevelChanged(); } Loading @@ -62,6 +69,8 @@ public class BrightnessController implements ToggleSlider.Listener { Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_MODE); private final Uri BRIGHTNESS_URI = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS); private final Uri BRIGHTNESS_ADJ_URI = Settings.System.getUriFor(Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ); public BrightnessObserver(Handler handler) { super(handler); Loading @@ -77,7 +86,10 @@ public class BrightnessController implements ToggleSlider.Listener { if (selfChange) return; if (BRIGHTNESS_MODE_URI.equals(uri)) { updateMode(); } else if (BRIGHTNESS_URI.equals(uri)) { updateSlider(); } else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) { updateSlider(); } else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) { updateSlider(); } else { updateMode(); Loading @@ -97,6 +109,9 @@ public class BrightnessController implements ToggleSlider.Listener { cr.registerContentObserver( BRIGHTNESS_URI, false, this, UserHandle.USER_ALL); cr.registerContentObserver( BRIGHTNESS_ADJ_URI, false, this, UserHandle.USER_ALL); } public void stopObserving() { Loading Loading @@ -163,10 +178,8 @@ public class BrightnessController implements ToggleSlider.Listener { } public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) { setMode(automatic ? Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC : Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); updateIcon(automatic); if (!automatic) { updateIcon(mAutomatic); if (!mAutomatic) { final int val = value + mMinimumBacklight; setBrightness(val); if (!tracking) { Loading @@ -178,6 +191,18 @@ public class BrightnessController implements ToggleSlider.Listener { } }); } } else { final float adj = value / (BRIGHTNESS_ADJ_RESOLUTION / 2f) - 1; setBrignessAdj(adj); if (!tracking) { AsyncTask.execute(new Runnable() { public void run() { Settings.System.putFloatForUser(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, adj, UserHandle.USER_CURRENT); } }); } } for (BrightnessStateChangeCallback cb : mChangeCallbacks) { Loading @@ -198,6 +223,13 @@ public class BrightnessController implements ToggleSlider.Listener { } } private void setBrignessAdj(float adj) { try { mPower.setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(adj); } catch (RemoteException ex) { } } private void updateIcon(boolean automatic) { if (mIcon != null) { mIcon.setImageResource(automatic ? Loading @@ -210,15 +242,12 @@ public class BrightnessController implements ToggleSlider.Listener { private void updateMode() { if (mAutomaticAvailable) { int automatic; try { automatic = Settings.System.getIntForUser(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL, UserHandle.USER_CURRENT); } catch (SettingNotFoundException snfe) { automatic = 0; } mControl.setChecked(automatic != 0); updateIcon(automatic != 0); mAutomatic = automatic != 0; updateIcon(mAutomatic); } else { mControl.setChecked(false); updateIcon(false /*automatic*/); Loading @@ -227,16 +256,20 @@ public class BrightnessController implements ToggleSlider.Listener { /** Fetch the brightness from the system settings and update the slider */ private void updateSlider() { if (mAutomatic) { float value = Settings.System.getFloatForUser(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0, UserHandle.USER_CURRENT); mControl.setMax((int) BRIGHTNESS_ADJ_RESOLUTION); mControl.setValue((int) ((value + 1) * BRIGHTNESS_ADJ_RESOLUTION / 2f)); } else { int value; try { value = Settings.System.getIntForUser(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, Settings.System.SCREEN_BRIGHTNESS, mMaximumBacklight, UserHandle.USER_CURRENT); } catch (SettingNotFoundException ex) { value = mMaximumBacklight; } mControl.setMax(mMaximumBacklight - mMinimumBacklight); mControl.setValue(value - mMinimumBacklight); } } }
services/core/java/com/android/server/display/AutomaticBrightnessController.java +1 −2 Original line number Diff line number Diff line Loading @@ -48,8 +48,7 @@ class AutomaticBrightnessController { private static final boolean DEBUG_PRETEND_LIGHT_SENSOR_ABSENT = false; // If true, enables the use of the screen auto-brightness adjustment setting. private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT = PowerManager.useScreenAutoBrightnessAdjustmentFeature(); private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT = true; // The maximum range of gamma adjustment possible using the screen // auto-brightness adjustment setting. Loading