Merge "Move to DisplayManager brightness APIs"

This commit is contained in:
TreeHugger Robot
2018-01-24 21:45:06 +00:00
committed by Android (Google) Code Review

View File

@@ -26,6 +26,7 @@ import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.hardware.display.DisplayManager;
import android.location.LocationManager; import android.location.LocationManager;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.Uri; import android.net.Uri;
@@ -736,7 +737,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
R.drawable.appwidget_settings_ind_on_r_holo); R.drawable.appwidget_settings_ind_on_r_holo);
} else { } else {
final int brightness = getBrightness(context); final int brightness = getBrightness(context);
final PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); final PowerManager pm = context.getSystemService(PowerManager.class);
// Set the icon // Set the icon
final int full = (int)(pm.getMaximumScreenBrightnessSetting() final int full = (int)(pm.getMaximumScreenBrightnessSetting()
* FULL_BRIGHTNESS_THRESHOLD); * FULL_BRIGHTNESS_THRESHOLD);
@@ -872,53 +873,48 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider {
*/ */
private void toggleBrightness(Context context) { private void toggleBrightness(Context context) {
try { try {
IPowerManager power = IPowerManager.Stub.asInterface( DisplayManager dm = context.getSystemService(DisplayManager.class);
ServiceManager.getService("power")); PowerManager pm = context.getSystemService(PowerManager.class);
if (power != null) {
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
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);
int brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; int brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
//Only get brightness setting if available //Only get brightness setting if available
if (context.getResources().getBoolean( if (context.getResources().getBoolean(
com.android.internal.R.bool.config_automatic_brightness_available)) { com.android.internal.R.bool.config_automatic_brightness_available)) {
brightnessMode = Settings.System.getInt(cr, brightnessMode = Settings.System.getInt(cr,
Settings.System.SCREEN_BRIGHTNESS_MODE); Settings.System.SCREEN_BRIGHTNESS_MODE);
} }
// Rotate AUTO -> MINIMUM -> DEFAULT -> MAXIMUM // Rotate AUTO -> MINIMUM -> DEFAULT -> MAXIMUM
// Technically, not a toggle... // Technically, not a toggle...
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
brightness = pm.getMinimumScreenBrightnessSetting(); brightness = pm.getMinimumScreenBrightnessSetting();
brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
} else if (brightness < pm.getDefaultScreenBrightnessSetting()) { } else if (brightness < pm.getDefaultScreenBrightnessSetting()) {
brightness = pm.getDefaultScreenBrightnessSetting(); brightness = pm.getDefaultScreenBrightnessSetting();
} else if (brightness < pm.getMaximumScreenBrightnessSetting()) { } else if (brightness < pm.getMaximumScreenBrightnessSetting()) {
brightness = pm.getMaximumScreenBrightnessSetting(); brightness = pm.getMaximumScreenBrightnessSetting();
} else { } else {
brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
brightness = pm.getMinimumScreenBrightnessSetting(); brightness = pm.getMinimumScreenBrightnessSetting();
} }
if (context.getResources().getBoolean( if (context.getResources().getBoolean(
com.android.internal.R.bool.config_automatic_brightness_available)) { com.android.internal.R.bool.config_automatic_brightness_available)) {
// Set screen brightness mode (automatic or manual) // Set screen brightness mode (automatic or manual)
Settings.System.putInt(context.getContentResolver(), Settings.System.putInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE,
brightnessMode); brightnessMode);
} else { } else {
// Make sure we set the brightness if automatic mode isn't available // Make sure we set the brightness if automatic mode isn't available
brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
} }
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL) { if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL) {
power.setTemporaryScreenBrightnessSettingOverride(brightness); dm.setTemporaryBrightness(brightness);
Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness); Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness);
}
} }
} catch (RemoteException e) {
Log.d(TAG, "toggleBrightness: " + e);
} catch (Settings.SettingNotFoundException e) { } catch (Settings.SettingNotFoundException e) {
Log.d(TAG, "toggleBrightness: " + e); Log.d(TAG, "toggleBrightness: " + e);
} }