Loading core/java/com/android/internal/app/IBatteryStats.aidl +0 −1 Original line number Original line Diff line number Diff line Loading @@ -93,7 +93,6 @@ interface IBatteryStats { void noteVibratorOff(int uid); void noteVibratorOff(int uid); void noteGpsChanged(in WorkSource oldSource, in WorkSource newSource); void noteGpsChanged(in WorkSource oldSource, in WorkSource newSource); void noteGpsSignalQuality(int signalLevel); void noteGpsSignalQuality(int signalLevel); void noteUsbConnectionState(boolean connected); void noteScreenState(int state); void noteScreenState(int state); void noteScreenBrightness(int brightness); void noteScreenBrightness(int brightness); void noteUserActivity(int uid, int event); void noteUserActivity(int uid, int event); Loading core/java/com/android/internal/os/BatteryStatsImpl.java +32 −3 Original line number Original line Diff line number Diff line Loading @@ -21,10 +21,13 @@ import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityManager; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.UidTraffic; import android.bluetooth.UidTraffic; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.database.ContentObserver; import android.database.ContentObserver; import android.hardware.usb.UsbManager; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.NetworkStats; import android.net.NetworkStats; import android.net.Uri; import android.net.Uri; Loading Loading @@ -766,7 +769,10 @@ public class BatteryStatsImpl extends BatteryStats { int mCameraOnNesting; int mCameraOnNesting; StopwatchTimer mCameraOnTimer; StopwatchTimer mCameraOnTimer; int mUsbDataState; // 0: unknown, 1: disconnected, 2: connected private static final int USB_DATA_UNKNOWN = 0; private static final int USB_DATA_DISCONNECTED = 1; private static final int USB_DATA_CONNECTED = 2; int mUsbDataState = USB_DATA_UNKNOWN; int mGpsSignalQualityBin = -1; int mGpsSignalQualityBin = -1; @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) Loading Loading @@ -5241,8 +5247,30 @@ public class BatteryStatsImpl extends BatteryStats { } } } } public void noteUsbConnectionStateLocked(boolean connected) { private void registerUsbStateReceiver(Context context) { int newState = connected ? 2 : 1; final IntentFilter usbStateFilter = new IntentFilter(); usbStateFilter.addAction(UsbManager.ACTION_USB_STATE); context.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final boolean state = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false); synchronized (BatteryStatsImpl.this) { noteUsbConnectionStateLocked(state); } } }, usbStateFilter); synchronized (this) { if (mUsbDataState == USB_DATA_UNKNOWN) { final Intent usbState = context.registerReceiver(null, usbStateFilter); final boolean initState = usbState != null && usbState.getBooleanExtra( UsbManager.USB_CONNECTED, false); noteUsbConnectionStateLocked(initState); } } } private void noteUsbConnectionStateLocked(boolean connected) { int newState = connected ? USB_DATA_CONNECTED : USB_DATA_DISCONNECTED; if (mUsbDataState != newState) { if (mUsbDataState != newState) { mUsbDataState = newState; mUsbDataState = newState; if (connected) { if (connected) { Loading Loading @@ -13218,6 +13246,7 @@ public class BatteryStatsImpl extends BatteryStats { public void systemServicesReady(Context context) { public void systemServicesReady(Context context) { mConstants.startObserving(context.getContentResolver()); mConstants.startObserving(context.getContentResolver()); registerUsbStateReceiver(context); } } @VisibleForTesting @VisibleForTesting core/res/AndroidManifest.xml +0 −10 Original line number Original line Diff line number Diff line Loading @@ -4253,16 +4253,6 @@ android:exported="false"> android:exported="false"> </receiver> </receiver> <receiver android:name="com.android.server.am.BatteryStatsService$UsbConnectionReceiver" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> <intent-filter> <action android:name="android.hardware.usb.action.USB_STATE" /> </intent-filter> </receiver> <service android:name="android.hardware.location.GeofenceHardwareService" <service android:name="android.hardware.location.GeofenceHardwareService" android:permission="android.permission.LOCATION_HARDWARE" android:permission="android.permission.LOCATION_HARDWARE" android:exported="false" /> android:exported="false" /> Loading services/core/java/com/android/server/am/BatteryStatsService.java +4 −46 Original line number Original line Diff line number Diff line Loading @@ -19,16 +19,10 @@ package com.android.server.am; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.job.JobProtoEnums; import android.app.job.JobProtoEnums; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.BluetoothActivityEnergyInfo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.hardware.usb.UsbManager; import android.net.wifi.WifiActivityEnergyInfo; import android.net.wifi.WifiActivityEnergyInfo; import android.os.PowerManager.ServiceType; import android.os.PowerSaveState; import android.os.BatteryStats; import android.os.BatteryStats; import android.os.BatteryStatsInternal; import android.os.BatteryStatsInternal; import android.os.Binder; import android.os.Binder; Loading @@ -37,18 +31,18 @@ import android.os.IBinder; import android.os.Parcel; import android.os.Parcel; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor; import android.os.ParcelFormatException; import android.os.ParcelFormatException; import android.os.PowerManager.ServiceType; import android.os.PowerManagerInternal; import android.os.PowerManagerInternal; import android.os.PowerSaveState; import android.os.Process; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.SystemClock; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserHandle; import android.os.UserManagerInternal; import android.os.UserManagerInternal; import android.os.WorkSource; import android.os.WorkSource; import android.os.WorkSource.WorkChain; import android.os.connectivity.CellularBatteryStats; import android.os.connectivity.CellularBatteryStats; import android.os.connectivity.WifiBatteryStats; import android.os.connectivity.GpsBatteryStats; import android.os.connectivity.GpsBatteryStats; import android.os.connectivity.WifiBatteryStats; import android.os.health.HealthStatsParceler; import android.os.health.HealthStatsParceler; import android.os.health.HealthStatsWriter; import android.os.health.HealthStatsWriter; import android.os.health.UidHealthStats; import android.os.health.UidHealthStats; Loading @@ -57,6 +51,7 @@ import android.telephony.ModemActivityInfo; import android.telephony.SignalStrength; import android.telephony.SignalStrength; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; import android.util.Slog; import android.util.Slog; import android.util.StatsLog; import com.android.internal.app.IBatteryStats; import com.android.internal.app.IBatteryStats; import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.BatteryStatsHelper; Loading @@ -65,7 +60,6 @@ import com.android.internal.os.PowerProfile; import com.android.internal.os.RpmStats; import com.android.internal.os.RpmStats; import com.android.internal.util.DumpUtils; import com.android.internal.util.DumpUtils; import com.android.server.LocalServices; import com.android.server.LocalServices; import android.util.StatsLog; import java.io.File; import java.io.File; import java.io.FileDescriptor; import java.io.FileDescriptor; Loading Loading @@ -701,13 +695,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } } } public void noteUsbConnectionState(boolean connected) { enforceCallingPermission(); synchronized (mStats) { mStats.noteUsbConnectionStateLocked(connected); } } public void notePhoneSignalStrength(SignalStrength signalStrength) { public void notePhoneSignalStrength(SignalStrength signalStrength) { enforceCallingPermission(); enforceCallingPermission(); synchronized (mStats) { synchronized (mStats) { Loading Loading @@ -1164,35 +1151,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub Binder.getCallingPid(), Binder.getCallingUid(), null); Binder.getCallingPid(), Binder.getCallingUid(), null); } } public final static class UsbConnectionReceiver extends BroadcastReceiver { private static final String TAG = UsbConnectionReceiver.class.getSimpleName(); @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { final Intent usbState = context.registerReceiver(null, new IntentFilter(UsbManager.ACTION_USB_STATE)); if (usbState != null) { handleUsbState(usbState); } } else if (UsbManager.ACTION_USB_STATE.equals(action)) { handleUsbState(intent); } } private void handleUsbState(Intent intent) { IBatteryStats bs = getService(); if (bs == null) { Slog.w(TAG, "Could not access batterystats"); return; } boolean connected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED); try { bs.noteUsbConnectionState(connected); } catch (RemoteException e) { Slog.w(TAG, "Could not access batterystats: ", e); } } } final class WakeupReasonThread extends Thread { final class WakeupReasonThread extends Thread { private static final int MAX_REASON_SIZE = 512; private static final int MAX_REASON_SIZE = 512; private CharsetDecoder mDecoder; private CharsetDecoder mDecoder; Loading Loading
core/java/com/android/internal/app/IBatteryStats.aidl +0 −1 Original line number Original line Diff line number Diff line Loading @@ -93,7 +93,6 @@ interface IBatteryStats { void noteVibratorOff(int uid); void noteVibratorOff(int uid); void noteGpsChanged(in WorkSource oldSource, in WorkSource newSource); void noteGpsChanged(in WorkSource oldSource, in WorkSource newSource); void noteGpsSignalQuality(int signalLevel); void noteGpsSignalQuality(int signalLevel); void noteUsbConnectionState(boolean connected); void noteScreenState(int state); void noteScreenState(int state); void noteScreenBrightness(int brightness); void noteScreenBrightness(int brightness); void noteUserActivity(int uid, int event); void noteUserActivity(int uid, int event); Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +32 −3 Original line number Original line Diff line number Diff line Loading @@ -21,10 +21,13 @@ import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityManager; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.UidTraffic; import android.bluetooth.UidTraffic; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.database.ContentObserver; import android.database.ContentObserver; import android.hardware.usb.UsbManager; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.NetworkStats; import android.net.NetworkStats; import android.net.Uri; import android.net.Uri; Loading Loading @@ -766,7 +769,10 @@ public class BatteryStatsImpl extends BatteryStats { int mCameraOnNesting; int mCameraOnNesting; StopwatchTimer mCameraOnTimer; StopwatchTimer mCameraOnTimer; int mUsbDataState; // 0: unknown, 1: disconnected, 2: connected private static final int USB_DATA_UNKNOWN = 0; private static final int USB_DATA_DISCONNECTED = 1; private static final int USB_DATA_CONNECTED = 2; int mUsbDataState = USB_DATA_UNKNOWN; int mGpsSignalQualityBin = -1; int mGpsSignalQualityBin = -1; @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) Loading Loading @@ -5241,8 +5247,30 @@ public class BatteryStatsImpl extends BatteryStats { } } } } public void noteUsbConnectionStateLocked(boolean connected) { private void registerUsbStateReceiver(Context context) { int newState = connected ? 2 : 1; final IntentFilter usbStateFilter = new IntentFilter(); usbStateFilter.addAction(UsbManager.ACTION_USB_STATE); context.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final boolean state = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false); synchronized (BatteryStatsImpl.this) { noteUsbConnectionStateLocked(state); } } }, usbStateFilter); synchronized (this) { if (mUsbDataState == USB_DATA_UNKNOWN) { final Intent usbState = context.registerReceiver(null, usbStateFilter); final boolean initState = usbState != null && usbState.getBooleanExtra( UsbManager.USB_CONNECTED, false); noteUsbConnectionStateLocked(initState); } } } private void noteUsbConnectionStateLocked(boolean connected) { int newState = connected ? USB_DATA_CONNECTED : USB_DATA_DISCONNECTED; if (mUsbDataState != newState) { if (mUsbDataState != newState) { mUsbDataState = newState; mUsbDataState = newState; if (connected) { if (connected) { Loading Loading @@ -13218,6 +13246,7 @@ public class BatteryStatsImpl extends BatteryStats { public void systemServicesReady(Context context) { public void systemServicesReady(Context context) { mConstants.startObserving(context.getContentResolver()); mConstants.startObserving(context.getContentResolver()); registerUsbStateReceiver(context); } } @VisibleForTesting @VisibleForTesting
core/res/AndroidManifest.xml +0 −10 Original line number Original line Diff line number Diff line Loading @@ -4253,16 +4253,6 @@ android:exported="false"> android:exported="false"> </receiver> </receiver> <receiver android:name="com.android.server.am.BatteryStatsService$UsbConnectionReceiver" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> <intent-filter> <action android:name="android.hardware.usb.action.USB_STATE" /> </intent-filter> </receiver> <service android:name="android.hardware.location.GeofenceHardwareService" <service android:name="android.hardware.location.GeofenceHardwareService" android:permission="android.permission.LOCATION_HARDWARE" android:permission="android.permission.LOCATION_HARDWARE" android:exported="false" /> android:exported="false" /> Loading
services/core/java/com/android/server/am/BatteryStatsService.java +4 −46 Original line number Original line Diff line number Diff line Loading @@ -19,16 +19,10 @@ package com.android.server.am; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.job.JobProtoEnums; import android.app.job.JobProtoEnums; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.BluetoothActivityEnergyInfo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.hardware.usb.UsbManager; import android.net.wifi.WifiActivityEnergyInfo; import android.net.wifi.WifiActivityEnergyInfo; import android.os.PowerManager.ServiceType; import android.os.PowerSaveState; import android.os.BatteryStats; import android.os.BatteryStats; import android.os.BatteryStatsInternal; import android.os.BatteryStatsInternal; import android.os.Binder; import android.os.Binder; Loading @@ -37,18 +31,18 @@ import android.os.IBinder; import android.os.Parcel; import android.os.Parcel; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor; import android.os.ParcelFormatException; import android.os.ParcelFormatException; import android.os.PowerManager.ServiceType; import android.os.PowerManagerInternal; import android.os.PowerManagerInternal; import android.os.PowerSaveState; import android.os.Process; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.SystemClock; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserHandle; import android.os.UserManagerInternal; import android.os.UserManagerInternal; import android.os.WorkSource; import android.os.WorkSource; import android.os.WorkSource.WorkChain; import android.os.connectivity.CellularBatteryStats; import android.os.connectivity.CellularBatteryStats; import android.os.connectivity.WifiBatteryStats; import android.os.connectivity.GpsBatteryStats; import android.os.connectivity.GpsBatteryStats; import android.os.connectivity.WifiBatteryStats; import android.os.health.HealthStatsParceler; import android.os.health.HealthStatsParceler; import android.os.health.HealthStatsWriter; import android.os.health.HealthStatsWriter; import android.os.health.UidHealthStats; import android.os.health.UidHealthStats; Loading @@ -57,6 +51,7 @@ import android.telephony.ModemActivityInfo; import android.telephony.SignalStrength; import android.telephony.SignalStrength; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; import android.util.Slog; import android.util.Slog; import android.util.StatsLog; import com.android.internal.app.IBatteryStats; import com.android.internal.app.IBatteryStats; import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.BatteryStatsHelper; Loading @@ -65,7 +60,6 @@ import com.android.internal.os.PowerProfile; import com.android.internal.os.RpmStats; import com.android.internal.os.RpmStats; import com.android.internal.util.DumpUtils; import com.android.internal.util.DumpUtils; import com.android.server.LocalServices; import com.android.server.LocalServices; import android.util.StatsLog; import java.io.File; import java.io.File; import java.io.FileDescriptor; import java.io.FileDescriptor; Loading Loading @@ -701,13 +695,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } } } public void noteUsbConnectionState(boolean connected) { enforceCallingPermission(); synchronized (mStats) { mStats.noteUsbConnectionStateLocked(connected); } } public void notePhoneSignalStrength(SignalStrength signalStrength) { public void notePhoneSignalStrength(SignalStrength signalStrength) { enforceCallingPermission(); enforceCallingPermission(); synchronized (mStats) { synchronized (mStats) { Loading Loading @@ -1164,35 +1151,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub Binder.getCallingPid(), Binder.getCallingUid(), null); Binder.getCallingPid(), Binder.getCallingUid(), null); } } public final static class UsbConnectionReceiver extends BroadcastReceiver { private static final String TAG = UsbConnectionReceiver.class.getSimpleName(); @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { final Intent usbState = context.registerReceiver(null, new IntentFilter(UsbManager.ACTION_USB_STATE)); if (usbState != null) { handleUsbState(usbState); } } else if (UsbManager.ACTION_USB_STATE.equals(action)) { handleUsbState(intent); } } private void handleUsbState(Intent intent) { IBatteryStats bs = getService(); if (bs == null) { Slog.w(TAG, "Could not access batterystats"); return; } boolean connected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED); try { bs.noteUsbConnectionState(connected); } catch (RemoteException e) { Slog.w(TAG, "Could not access batterystats: ", e); } } } final class WakeupReasonThread extends Thread { final class WakeupReasonThread extends Thread { private static final int MAX_REASON_SIZE = 512; private static final int MAX_REASON_SIZE = 512; private CharsetDecoder mDecoder; private CharsetDecoder mDecoder; Loading