Loading core/java/android/os/BatteryManager.java +33 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,12 @@ public class BatteryManager { */ public static final String EXTRA_STATUS = "status"; /** * Integer containing the current status constant for the dock battery. * @hide */ public static final String EXTRA_DOCK_STATUS = "dock_status"; /** * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: * integer containing the current health constant. Loading @@ -46,6 +52,18 @@ public class BatteryManager { */ public static final String EXTRA_LEVEL = "level"; /** * Integer field containing the current dock battery level. * @hide */ public static final String EXTRA_DOCK_LEVEL = "dock_level"; /** * Boolean field containing the current dock battery AC status. * @hide */ public static final String EXTRA_DOCK_AC_ONLINE = "dock_ac_online"; /** * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: * integer containing the maximum battery level. Loading Loading @@ -109,6 +127,21 @@ public class BatteryManager { public static final int BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6; public static final int BATTERY_HEALTH_COLD = 7; /** @hide */ public static final int DOCK_STATE_UNKNOWN = 0; /** @hide */ public static final int DOCK_STATE_UNDOCKED = 1; /** @hide */ public static final int DOCK_STATE_CHARGING = 2; /** @hide */ public static final int DOCK_STATE_DOCKED = 3; /** @hide */ public static final int DOCK_STATE_DISCHARGING = 4; // values of the "plugged" field in the ACTION_BATTERY_CHANGED intent. // These must be powers of 2. /** Power source is an AC charger. */ Loading core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1089,6 +1089,9 @@ the GPU to handle. --> <integer name="config_wallpaperMaxWidth">-1</integer> <!-- Asus dock compatibility disabled by default --> <bool name="config_hasDockBattery">false</bool> <!-- LUN file to be used by legacy USB manager. The existence of this file will be used to determine in the legacy USB manager should be started. --> Loading core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -1838,6 +1838,7 @@ <java-symbol type="integer" name="config_wallpaperMaxWidth" /> <java-symbol type="string" name="config_legacyUmsLunFile" /> <java-symbol type="bool" name="config_hasRemovableLid" /> <java-symbol type="bool" name="config_hasDockBattery" /> <!-- Telephony --> <java-symbol type="bool" name="config_smsSamsungCdmaAlternateMessageIDEncoding" /> Loading services/java/com/android/server/BatteryService.java +26 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,10 @@ public final class BatteryService extends Binder { private boolean mBatteryLevelCritical; /* End native fields. */ private int mDockBatteryStatus; private int mDockBatteryLevel; private String mDockBatteryPresent; private int mLastBatteryStatus; private int mLastBatteryHealth; private boolean mLastBatteryPresent; Loading @@ -134,6 +138,8 @@ public final class BatteryService extends Binder { private int mLowBatteryCloseWarningLevel; private int mShutdownBatteryTemperature; private boolean mHasDockBattery; private int mPlugType; private int mLastPlugType = -1; // Extra state so we can detect first run Loading Loading @@ -174,6 +180,9 @@ public final class BatteryService extends Binder { mShutdownBatteryTemperature = mContext.getResources().getInteger( com.android.internal.R.integer.config_shutdownBatteryTemperature); mHasDockBattery = mContext.getResources().getBoolean( com.android.internal.R.bool.config_hasDockBattery); mPowerSupplyObserver.startObserving("SUBSYSTEM=power_supply"); // watch for invalid charger messages if the invalid_charger switch exists Loading Loading @@ -508,6 +517,23 @@ public final class BatteryService extends Binder { ", icon:" + icon + ", invalid charger:" + mInvalidCharger); } if (mHasDockBattery){ intent.putExtra(BatteryManager.EXTRA_DOCK_STATUS, mDockBatteryStatus); intent.putExtra(BatteryManager.EXTRA_DOCK_LEVEL, mDockBatteryLevel); intent.putExtra(BatteryManager.EXTRA_DOCK_AC_ONLINE, false); } if (false) { Slog.d(TAG, "level:" + mBatteryLevel + " scale:" + BATTERY_SCALE + " status:" + mBatteryStatus + " health:" + mBatteryHealth + " present:" + mBatteryPresent + " voltage: " + mBatteryVoltage + " temperature: " + mBatteryTemperature + " technology: " + mBatteryTechnology + " AC powered:" + mAcOnline + " USB powered:" + mUsbOnline + " icon:" + icon + " invalid charger:" + mInvalidCharger); } mHandler.post(new Runnable() { @Override public void run() { Loading services/jni/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ ifeq ($(WITH_MALLOC_LEAK_CHECK),true) LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK endif ifeq ($(TARGET_HAS_DOCK_BATTERY),true) LOCAL_CFLAGS += -DHAS_DOCK_BATTERY endif LOCAL_MODULE:= libandroid_servers include $(BUILD_SHARED_LIBRARY) Loading
core/java/android/os/BatteryManager.java +33 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,12 @@ public class BatteryManager { */ public static final String EXTRA_STATUS = "status"; /** * Integer containing the current status constant for the dock battery. * @hide */ public static final String EXTRA_DOCK_STATUS = "dock_status"; /** * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: * integer containing the current health constant. Loading @@ -46,6 +52,18 @@ public class BatteryManager { */ public static final String EXTRA_LEVEL = "level"; /** * Integer field containing the current dock battery level. * @hide */ public static final String EXTRA_DOCK_LEVEL = "dock_level"; /** * Boolean field containing the current dock battery AC status. * @hide */ public static final String EXTRA_DOCK_AC_ONLINE = "dock_ac_online"; /** * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: * integer containing the maximum battery level. Loading Loading @@ -109,6 +127,21 @@ public class BatteryManager { public static final int BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6; public static final int BATTERY_HEALTH_COLD = 7; /** @hide */ public static final int DOCK_STATE_UNKNOWN = 0; /** @hide */ public static final int DOCK_STATE_UNDOCKED = 1; /** @hide */ public static final int DOCK_STATE_CHARGING = 2; /** @hide */ public static final int DOCK_STATE_DOCKED = 3; /** @hide */ public static final int DOCK_STATE_DISCHARGING = 4; // values of the "plugged" field in the ACTION_BATTERY_CHANGED intent. // These must be powers of 2. /** Power source is an AC charger. */ Loading
core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1089,6 +1089,9 @@ the GPU to handle. --> <integer name="config_wallpaperMaxWidth">-1</integer> <!-- Asus dock compatibility disabled by default --> <bool name="config_hasDockBattery">false</bool> <!-- LUN file to be used by legacy USB manager. The existence of this file will be used to determine in the legacy USB manager should be started. --> Loading
core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -1838,6 +1838,7 @@ <java-symbol type="integer" name="config_wallpaperMaxWidth" /> <java-symbol type="string" name="config_legacyUmsLunFile" /> <java-symbol type="bool" name="config_hasRemovableLid" /> <java-symbol type="bool" name="config_hasDockBattery" /> <!-- Telephony --> <java-symbol type="bool" name="config_smsSamsungCdmaAlternateMessageIDEncoding" /> Loading
services/java/com/android/server/BatteryService.java +26 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,10 @@ public final class BatteryService extends Binder { private boolean mBatteryLevelCritical; /* End native fields. */ private int mDockBatteryStatus; private int mDockBatteryLevel; private String mDockBatteryPresent; private int mLastBatteryStatus; private int mLastBatteryHealth; private boolean mLastBatteryPresent; Loading @@ -134,6 +138,8 @@ public final class BatteryService extends Binder { private int mLowBatteryCloseWarningLevel; private int mShutdownBatteryTemperature; private boolean mHasDockBattery; private int mPlugType; private int mLastPlugType = -1; // Extra state so we can detect first run Loading Loading @@ -174,6 +180,9 @@ public final class BatteryService extends Binder { mShutdownBatteryTemperature = mContext.getResources().getInteger( com.android.internal.R.integer.config_shutdownBatteryTemperature); mHasDockBattery = mContext.getResources().getBoolean( com.android.internal.R.bool.config_hasDockBattery); mPowerSupplyObserver.startObserving("SUBSYSTEM=power_supply"); // watch for invalid charger messages if the invalid_charger switch exists Loading Loading @@ -508,6 +517,23 @@ public final class BatteryService extends Binder { ", icon:" + icon + ", invalid charger:" + mInvalidCharger); } if (mHasDockBattery){ intent.putExtra(BatteryManager.EXTRA_DOCK_STATUS, mDockBatteryStatus); intent.putExtra(BatteryManager.EXTRA_DOCK_LEVEL, mDockBatteryLevel); intent.putExtra(BatteryManager.EXTRA_DOCK_AC_ONLINE, false); } if (false) { Slog.d(TAG, "level:" + mBatteryLevel + " scale:" + BATTERY_SCALE + " status:" + mBatteryStatus + " health:" + mBatteryHealth + " present:" + mBatteryPresent + " voltage: " + mBatteryVoltage + " temperature: " + mBatteryTemperature + " technology: " + mBatteryTechnology + " AC powered:" + mAcOnline + " USB powered:" + mUsbOnline + " icon:" + icon + " invalid charger:" + mInvalidCharger); } mHandler.post(new Runnable() { @Override public void run() { Loading
services/jni/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ ifeq ($(WITH_MALLOC_LEAK_CHECK),true) LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK endif ifeq ($(TARGET_HAS_DOCK_BATTERY),true) LOCAL_CFLAGS += -DHAS_DOCK_BATTERY endif LOCAL_MODULE:= libandroid_servers include $(BUILD_SHARED_LIBRARY)