Move backlight brightness from HardwareService to PowerManager
to prevent apps from changing the hardware behind its back. Fixes b/2041941 Lock screen flashes the screen very bright before dimming Change-Id: Ic4faa008357fd3d74225ba90f05801c5127fd8c0 Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
<uses-permission android:name="com.google.android.providers.gmail.permission.READ_GMAIL" />
|
<uses-permission android:name="com.google.android.providers.gmail.permission.READ_GMAIL" />
|
||||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
||||||
|
<uses-permission android:name="android.permission.DEVICE_POWER" />
|
||||||
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
|
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
|
||||||
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
||||||
<uses-permission android:name="android.permission.VIBRATE" />
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
@@ -18,7 +18,7 @@ package com.android.settings;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.IHardwareService;
|
import android.os.IPowerManager;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.preference.SeekBarPreference;
|
import android.preference.SeekBarPreference;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -130,10 +130,10 @@ public class BrightnessPreference extends SeekBarPreference implements
|
|||||||
|
|
||||||
private void setBrightness(int brightness) {
|
private void setBrightness(int brightness) {
|
||||||
try {
|
try {
|
||||||
IHardwareService hardware = IHardwareService.Stub.asInterface(
|
IPowerManager power = IPowerManager.Stub.asInterface(
|
||||||
ServiceManager.getService("hardware"));
|
ServiceManager.getService("power"));
|
||||||
if (hardware != null) {
|
if (power != null) {
|
||||||
hardware.setBacklights(brightness);
|
power.setBacklightBrightness(brightness);
|
||||||
}
|
}
|
||||||
} catch (RemoteException doe) {
|
} catch (RemoteException doe) {
|
||||||
|
|
||||||
@@ -147,10 +147,10 @@ public class BrightnessPreference extends SeekBarPreference implements
|
|||||||
mSeekBar.setVisibility(View.VISIBLE);
|
mSeekBar.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
IHardwareService hardware = IHardwareService.Stub.asInterface(
|
IPowerManager power = IPowerManager.Stub.asInterface(
|
||||||
ServiceManager.getService("hardware"));
|
ServiceManager.getService("power"));
|
||||||
if (hardware != null) {
|
if (power != null) {
|
||||||
hardware.setAutoBrightness(automatic != 0);
|
power.setAutoBrightness(automatic != 0);
|
||||||
}
|
}
|
||||||
} catch (RemoteException doe) {
|
} catch (RemoteException doe) {
|
||||||
}
|
}
|
||||||
|
@@ -30,7 +30,7 @@ import android.location.LocationManager;
|
|||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.IHardwareService;
|
import android.os.IPowerManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -318,9 +318,9 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
|||||||
*/
|
*/
|
||||||
private static boolean getBrightness(Context context) {
|
private static boolean getBrightness(Context context) {
|
||||||
try {
|
try {
|
||||||
IHardwareService hardware = IHardwareService.Stub.asInterface(
|
IPowerManager power = IPowerManager.Stub.asInterface(
|
||||||
ServiceManager.getService("hardware"));
|
ServiceManager.getService("power"));
|
||||||
if (hardware != null) {
|
if (power != null) {
|
||||||
int brightness = Settings.System.getInt(context.getContentResolver(),
|
int brightness = Settings.System.getInt(context.getContentResolver(),
|
||||||
Settings.System.SCREEN_BRIGHTNESS);
|
Settings.System.SCREEN_BRIGHTNESS);
|
||||||
return brightness > 100;
|
return brightness > 100;
|
||||||
@@ -338,9 +338,9 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
|||||||
*/
|
*/
|
||||||
private void toggleBrightness(Context context) {
|
private void toggleBrightness(Context context) {
|
||||||
try {
|
try {
|
||||||
IHardwareService hardware = IHardwareService.Stub.asInterface(
|
IPowerManager power = IPowerManager.Stub.asInterface(
|
||||||
ServiceManager.getService("hardware"));
|
ServiceManager.getService("power"));
|
||||||
if (hardware != null) {
|
if (power != null) {
|
||||||
ContentResolver cr = context.getContentResolver();
|
ContentResolver cr = context.getContentResolver();
|
||||||
int brightness = Settings.System.getInt(cr,
|
int brightness = Settings.System.getInt(cr,
|
||||||
Settings.System.SCREEN_BRIGHTNESS);
|
Settings.System.SCREEN_BRIGHTNESS);
|
||||||
@@ -353,7 +353,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
|
|||||||
} else {
|
} else {
|
||||||
brightness = MINIMUM_BACKLIGHT;
|
brightness = MINIMUM_BACKLIGHT;
|
||||||
}
|
}
|
||||||
hardware.setBacklights(brightness);
|
power.setBacklightBrightness(brightness);
|
||||||
Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness);
|
Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness);
|
||||||
brightness = Settings.System.getInt(cr,
|
brightness = Settings.System.getInt(cr,
|
||||||
Settings.System.SCREEN_BRIGHTNESS);
|
Settings.System.SCREEN_BRIGHTNESS);
|
||||||
|
Reference in New Issue
Block a user