Update BT APIs return type from Set to List.
Change-Id: Ia27220dd26cde13007f6938c830517ee7f6968ce
diff --git a/core/java/android/bluetooth/BluetoothDeviceProfileState.java b/core/java/android/bluetooth/BluetoothDeviceProfileState.java
index b33ab21..fd8f930 100644
--- a/core/java/android/bluetooth/BluetoothDeviceProfileState.java
+++ b/core/java/android/bluetooth/BluetoothDeviceProfileState.java
@@ -321,7 +321,7 @@
mA2dpService.getDevicesMatchingConnectionStates(
new int[] {BluetoothA2dp.STATE_CONNECTED,
BluetoothProfile.STATE_CONNECTING,
- BluetoothProfile.STATE_DISCONNECTING}).length == 0) {
+ BluetoothProfile.STATE_DISCONNECTING}).size() == 0) {
mA2dpService.connect(mDevice);
}
if (mService.getInputDevicePriority(mDevice) ==
diff --git a/core/java/android/bluetooth/BluetoothInputDevice.java b/core/java/android/bluetooth/BluetoothInputDevice.java
index 1793838..bc8a836 100644
--- a/core/java/android/bluetooth/BluetoothInputDevice.java
+++ b/core/java/android/bluetooth/BluetoothInputDevice.java
@@ -24,10 +24,8 @@
import android.os.ServiceManager;
import android.util.Log;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
/**
* Public API for controlling the Bluetooth HID (Input Device) Profile
@@ -167,18 +165,16 @@
/** Check if any Input Device is connected.
*
- * @return a unmodifiable set of connected Input Devices, or null on error.
+ * @return List of devices, empty List on error.
* @hide
*/
- public Set<BluetoothDevice> getConnectedInputDevices() {
+ public List<BluetoothDevice> getConnectedInputDevices() {
if (DBG) log("getConnectedInputDevices()");
try {
- return Collections.unmodifiableSet(
- new HashSet<BluetoothDevice>(
- Arrays.asList(mService.getConnectedInputDevices())));
+ return mService.getConnectedInputDevices();
} catch (RemoteException e) {
Log.e(TAG, "", e);
- return null;
+ return new ArrayList<BluetoothDevice>();
}
}
diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java
index 9d0b3f2..f55e96a 100644
--- a/core/java/android/bluetooth/BluetoothPan.java
+++ b/core/java/android/bluetooth/BluetoothPan.java
@@ -19,15 +19,13 @@
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.content.Context;
-import android.os.ServiceManager;
-import android.os.RemoteException;
import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ServiceManager;
import android.util.Log;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
/**
* @hide
@@ -154,18 +152,16 @@
*
* Does not include devices that are currently connecting or disconnecting
*
- * @return a unmodifiable set of connected PAN Devices, or null on error.
+ * @return List of PAN devices or empty on Error
* @hide
*/
- public Set<BluetoothDevice> getConnectedDevices() {
+ public List<BluetoothDevice> getConnectedDevices() {
if (DBG) log("getConnectedDevices");
try {
- return Collections.unmodifiableSet(
- new HashSet<BluetoothDevice>(
- Arrays.asList(mService.getConnectedPanDevices())));
+ return mService.getConnectedPanDevices();
} catch (RemoteException e) {
Log.e(TAG, "", e);
- return null;
+ return new ArrayList<BluetoothDevice>();
}
}
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index cc23146..f0252b7 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -81,7 +81,7 @@
// HID profile APIs
boolean connectInputDevice(in BluetoothDevice device);
boolean disconnectInputDevice(in BluetoothDevice device);
- BluetoothDevice[] getConnectedInputDevices(); // change to Set<> once AIDL supports
+ List<BluetoothDevice> getConnectedInputDevices();
int getInputDeviceState(in BluetoothDevice device);
boolean setInputDevicePriority(in BluetoothDevice device, int priority);
int getInputDevicePriority(in BluetoothDevice device);
@@ -89,7 +89,7 @@
boolean isTetheringOn();
void setBluetoothTethering(boolean value);
int getPanDeviceState(in BluetoothDevice device);
- BluetoothDevice[] getConnectedPanDevices();
+ List<BluetoothDevice> getConnectedPanDevices();
boolean connectPanDevice(in BluetoothDevice device);
boolean disconnectPanDevice(in BluetoothDevice device);
}
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java
index 239c3ac..f47c553 100644
--- a/core/java/android/server/BluetoothEventLoop.java
+++ b/core/java/android/server/BluetoothEventLoop.java
@@ -29,11 +29,12 @@
import android.os.Handler;
import android.os.Message;
import android.os.ParcelUuid;
+import android.os.PowerManager;
import android.util.Log;
import java.util.HashMap;
+import java.util.List;
import java.util.Set;
-import android.os.PowerManager;
/**
@@ -629,7 +630,7 @@
}
private boolean isOtherInputDeviceConnected(String address) {
- Set<BluetoothDevice> devices =
+ List<BluetoothDevice> devices =
mBluetoothService.lookupInputDevicesMatchingStates(new int[] {
BluetoothInputDevice.STATE_CONNECTING,
BluetoothInputDevice.STATE_CONNECTED});
@@ -654,13 +655,13 @@
}
private boolean isOtherSinkInNonDisconnectedState(String address) {
- Set<BluetoothDevice> devices =
+ List<BluetoothDevice> devices =
mA2dp.getDevicesMatchingConnectionStates(new int[] {BluetoothA2dp.STATE_CONNECTED,
BluetoothA2dp.STATE_CONNECTING,
BluetoothA2dp.STATE_DISCONNECTING});
if (devices.size() == 0) return false;
- for(BluetoothDevice dev: devices) {
+ for (BluetoothDevice dev: devices) {
if (!dev.getAddress().equals(address)) return true;
}
return false;
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index 7abb98e..660f9ab 100644
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -27,12 +27,12 @@
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothDeviceProfileState;
+import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothInputDevice;
import android.bluetooth.BluetoothPan;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothProfileState;
-import android.bluetooth.BluetoothInputDevice;
import android.bluetooth.BluetoothSocket;
import android.bluetooth.BluetoothUuid;
import android.bluetooth.IBluetooth;
@@ -80,6 +80,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -1415,7 +1416,7 @@
}
/*package*/ synchronized boolean allowIncomingTethering() {
- if (isTetheringOn() && getConnectedPanDevices().length < mMaxPanDevices)
+ if (isTetheringOn() && getConnectedPanDevices().size() < mMaxPanDevices)
return true;
return false;
}
@@ -1503,16 +1504,17 @@
return true;
}
- public synchronized BluetoothDevice[] getConnectedPanDevices() {
+ public synchronized List<BluetoothDevice> getConnectedPanDevices() {
mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
- Set<BluetoothDevice> devices = new HashSet<BluetoothDevice>();
+ List<BluetoothDevice> devices = new ArrayList<BluetoothDevice>();
+
for (BluetoothDevice device: mPanDevices.keySet()) {
if (getPanDeviceState(device) == BluetoothPan.STATE_CONNECTED) {
devices.add(device);
}
}
- return devices.toArray(new BluetoothDevice[devices.size()]);
+ return devices;
}
public synchronized boolean disconnectPanDevice(BluetoothDevice device) {
@@ -1569,7 +1571,7 @@
}
private String createNewTetheringAddressLocked() {
- if (getConnectedPanDevices().length == mMaxPanDevices) {
+ if (getConnectedPanDevices().size() == mMaxPanDevices) {
log("Max PAN device connections reached");
return null;
}
@@ -1688,7 +1690,7 @@
"Need BLUETOOTH_ADMIN permission");
String objectPath = getObjectPathFromAddress(device.getAddress());
- if (objectPath == null || getConnectedInputDevices().length == 0) {
+ if (objectPath == null || getConnectedInputDevices().size() == 0) {
return false;
}
BluetoothDeviceProfileState state = mDeviceProfileState.get(device.getAddress());
@@ -1721,11 +1723,11 @@
return mInputDevices.get(device);
}
- public synchronized BluetoothDevice[] getConnectedInputDevices() {
+ public synchronized List<BluetoothDevice> getConnectedInputDevices() {
mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
- Set<BluetoothDevice> devices = lookupInputDevicesMatchingStates(
+ List<BluetoothDevice> devices = lookupInputDevicesMatchingStates(
new int[] {BluetoothInputDevice.STATE_CONNECTED});
- return devices.toArray(new BluetoothDevice[devices.size()]);
+ return devices;
}
public synchronized int getInputDevicePriority(BluetoothDevice device) {
@@ -1746,11 +1748,9 @@
priority);
}
- /*package*/synchronized Set<BluetoothDevice> lookupInputDevicesMatchingStates(int[] states) {
- Set<BluetoothDevice> inputDevices = new HashSet<BluetoothDevice>();
- if (mInputDevices.isEmpty()) {
- return inputDevices;
- }
+ /*package*/synchronized List<BluetoothDevice> lookupInputDevicesMatchingStates(int[] states) {
+ List<BluetoothDevice> inputDevices = new ArrayList<BluetoothDevice>();
+
for (BluetoothDevice device: mInputDevices.keySet()) {
int inputDeviceState = getInputDeviceState(device);
for (int state : states) {
@@ -2487,11 +2487,11 @@
// dump
pw.println("\n--Headset Service--");
if (mBluetoothHeadset != null) {
- Set<BluetoothDevice> deviceSet = mBluetoothHeadset.getConnectedDevices();
- if (deviceSet.size() == 0) {
+ List<BluetoothDevice> deviceList = mBluetoothHeadset.getConnectedDevices();
+ if (deviceList.size() == 0) {
pw.println("\n--No headsets connected--");
}
- BluetoothDevice device = (BluetoothDevice) deviceSet.toArray()[0];
+ BluetoothDevice device = deviceList.get(0);
switch (mBluetoothHeadset.getConnectionState(device)) {
case BluetoothHeadset.STATE_DISCONNECTED:
@@ -2511,11 +2511,11 @@
break;
}
- deviceSet.clear();
- deviceSet = mBluetoothHeadset.getDevicesMatchingConnectionStates(new int[] {
+ deviceList.clear();
+ deviceList = mBluetoothHeadset.getDevicesMatchingConnectionStates(new int[] {
BluetoothProfile.STATE_CONNECTED, BluetoothProfile.STATE_DISCONNECTED});
pw.println("\n--Connected and Disconnected Headsets");
- for (BluetoothDevice dev: deviceSet) {
+ for (BluetoothDevice dev: deviceList) {
pw.println(device);
if (mBluetoothHeadset.isAudioConnected(device)) {
pw.println("SCO audio connected to device:" + device);
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 224f9a5..0f482b7 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -51,8 +51,8 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantLock;
@@ -65,16 +65,16 @@
private static final String TAG = "BatteryStatsImpl";
private static final boolean DEBUG = false;
private static final boolean DEBUG_HISTORY = false;
-
+
// In-memory Parcel magic number, used to detect attempts to unmarshall bad data
- private static final int MAGIC = 0xBA757475; // 'BATSTATS'
+ private static final int MAGIC = 0xBA757475; // 'BATSTATS'
// Current on-disk Parcel version
private static final int VERSION = 52;
// Maximum number of items we will record in the history.
private static final int MAX_HISTORY_ITEMS = 2000;
-
+
// No, really, THIS is the maximum number of items we will record in the history.
private static final int MAX_MAX_HISTORY_ITEMS = 3000;
@@ -82,9 +82,9 @@
// per uid; once the limit is reached, we batch the remaining wakelocks
// in to one common name.
private static final int MAX_WAKELOCKS_PER_UID = 30;
-
+
private static final String BATCHED_WAKELOCK_NAME = "*overflow*";
-
+
private static int sNumSpeedSteps;
private final JournaledFile mFile;
@@ -147,9 +147,9 @@
// These are the objects that will want to do something when the device
// is unplugged from power.
final ArrayList<Unpluggable> mUnpluggables = new ArrayList<Unpluggable>();
-
+
boolean mShuttingDown;
-
+
long mHistoryBaseTime;
boolean mHaveBatteryLevel = false;
boolean mRecordingHistory = true;
@@ -159,7 +159,7 @@
HistoryItem mHistoryLastEnd;
HistoryItem mHistoryCache;
final HistoryItem mHistoryCur = new HistoryItem();
-
+
int mStartCount;
long mBatteryUptime;
@@ -173,41 +173,41 @@
long mRealtime;
long mRealtimeStart;
long mLastRealtime;
-
+
boolean mScreenOn;
StopwatchTimer mScreenOnTimer;
int mScreenBrightnessBin = -1;
final StopwatchTimer[] mScreenBrightnessTimer = new StopwatchTimer[NUM_SCREEN_BRIGHTNESS_BINS];
-
+
Counter mInputEventCounter;
-
+
boolean mPhoneOn;
StopwatchTimer mPhoneOnTimer;
-
+
boolean mAudioOn;
StopwatchTimer mAudioOnTimer;
-
+
boolean mVideoOn;
StopwatchTimer mVideoOnTimer;
-
+
int mPhoneSignalStrengthBin = -1;
- final StopwatchTimer[] mPhoneSignalStrengthsTimer =
+ final StopwatchTimer[] mPhoneSignalStrengthsTimer =
new StopwatchTimer[NUM_SIGNAL_STRENGTH_BINS];
StopwatchTimer mPhoneSignalScanningTimer;
int mPhoneDataConnectionType = -1;
- final StopwatchTimer[] mPhoneDataConnectionsTimer =
+ final StopwatchTimer[] mPhoneDataConnectionsTimer =
new StopwatchTimer[NUM_DATA_CONNECTION_TYPES];
-
+
boolean mWifiOn;
StopwatchTimer mWifiOnTimer;
int mWifiOnUid = -1;
boolean mGlobalWifiRunning;
StopwatchTimer mGlobalWifiRunningTimer;
-
+
boolean mBluetoothOn;
StopwatchTimer mBluetoothOnTimer;
@@ -256,15 +256,15 @@
/*
* Holds a SamplingTimer associated with each kernel wakelock name being tracked.
*/
- private final HashMap<String, SamplingTimer> mKernelWakelockStats =
+ private final HashMap<String, SamplingTimer> mKernelWakelockStats =
new HashMap<String, SamplingTimer>();
-
+
public Map<String, ? extends SamplingTimer> getKernelWakelockStats() {
return mKernelWakelockStats;
}
-
+
private static int sKernelWakelockUpdateVersion = 0;
-
+
private static final int[] PROC_WAKELOCKS_FORMAT = new int[] {
Process.PROC_TAB_TERM|Process.PROC_OUT_STRING, // 0: name
Process.PROC_TAB_TERM|Process.PROC_OUT_LONG, // 1: count
@@ -273,19 +273,19 @@
Process.PROC_TAB_TERM,
Process.PROC_TAB_TERM|Process.PROC_OUT_LONG, // 5: totalTime
};
-
+
private final String[] mProcWakelocksName = new String[3];
private final long[] mProcWakelocksData = new long[3];
-
+
/*
* Used as a buffer for reading in data from /proc/wakelocks before it is processed and added
* to mKernelWakelockStats.
*/
- private final Map<String, KernelWakelockStats> mProcWakelockFileStats =
+ private final Map<String, KernelWakelockStats> mProcWakelockFileStats =
new HashMap<String, KernelWakelockStats>();
private HashMap<String, Integer> mUidCache = new HashMap<String, Integer>();
-
+
// For debugging
public BatteryStatsImpl() {
mFile = null;
@@ -296,7 +296,7 @@
void unplug(long batteryUptime, long batteryRealtime);
void plug(long batteryUptime, long batteryRealtime);
}
-
+
/**
* State for keeping track of counting information.
*/
@@ -307,7 +307,7 @@
int mLastCount;
int mUnpluggedCount;
int mPluggedCount;
-
+
Counter(ArrayList<Unpluggable> unpluggables, Parcel in) {
mUnpluggables = unpluggables;
mPluggedCount = in.readInt();
@@ -322,7 +322,7 @@
mUnpluggables = unpluggables;
unpluggables.add(this);
}
-
+
public void writeToParcel(Parcel out) {
out.writeInt(mCount.get());
out.writeInt(mLoadedCount);
@@ -337,7 +337,7 @@
public void plug(long batteryUptime, long batteryRealtime) {
mPluggedCount = mCount.get();
}
-
+
/**
* Writes a possibly null Counter to a Parcel.
*
@@ -377,7 +377,7 @@
+ " mUnpluggedCount=" + mUnpluggedCount
+ " mPluggedCount=" + mPluggedCount);
}
-
+
void stepAtomic() {
mCount.incrementAndGet();
}
@@ -392,11 +392,11 @@
detach();
}
}
-
+
void detach() {
mUnpluggables.remove(this);
}
-
+
void writeSummaryFromParcelLocked(Parcel out) {
int count = mCount.get();
out.writeInt(count);
@@ -431,41 +431,41 @@
public static abstract class Timer extends BatteryStats.Timer implements Unpluggable {
final int mType;
final ArrayList<Unpluggable> mUnpluggables;
-
+
int mCount;
int mLoadedCount;
int mLastCount;
int mUnpluggedCount;
-
+
// Times are in microseconds for better accuracy when dividing by the
// lock count, and are in "battery realtime" units.
-
+
/**
* The total time we have accumulated since the start of the original
* boot, to the last time something interesting happened in the
* current run.
*/
long mTotalTime;
-
+
/**
* The total time we loaded for the previous runs. Subtract this from
* mTotalTime to find the time for the current run of the system.
*/
long mLoadedTime;
-
+
/**
* The run time of the last run of the system, as loaded from the
* saved data.
*/
long mLastTime;
-
+
/**
* The value of mTotalTime when unplug() was last called. Subtract
* this from mTotalTime to find the time since the last unplug from
* power.
*/
long mUnpluggedTime;
-
+
/**
* Constructs from a parcel.
* @param type
@@ -476,7 +476,7 @@
Timer(int type, ArrayList<Unpluggable> unpluggables, Parcel in) {
mType = type;
mUnpluggables = unpluggables;
-
+
mCount = in.readInt();
mLoadedCount = in.readInt();
mLastCount = 0;
@@ -495,9 +495,9 @@
}
protected abstract long computeRunTimeLocked(long curBatteryRealtime);
-
+
protected abstract int computeCurrentCountLocked();
-
+
/**
* Clear state of this timer. Returns true if the timer is inactive
* so can be completely dropped.
@@ -510,11 +510,11 @@
}
return true;
}
-
+
void detach() {
mUnpluggables.remove(this);
}
-
+
public void writeToParcel(Parcel out, long batteryRealtime) {
out.writeInt(mCount);
out.writeInt(mLoadedCount);
@@ -551,7 +551,7 @@
+ ": new mTotalTime=" + mTotalTime);
}
}
-
+
/**
* Writes a possibly null Timer to a Parcel.
*
@@ -612,8 +612,8 @@
pw.println(prefix + "mLastTime=" + mLastTime
+ " mUnpluggedTime=" + mUnpluggedTime);
}
-
-
+
+
void writeSummaryFromParcelLocked(Parcel out, long batteryRealtime) {
long runTime = computeRunTimeLocked(batteryRealtime);
// Divide by 1000 for backwards compatibility
@@ -631,9 +631,9 @@
mUnpluggedCount = mCount;
}
}
-
+
public static final class SamplingTimer extends Timer {
-
+
/**
* The most recent reported count from /proc/wakelocks.
*/
@@ -647,7 +647,7 @@
/**
* The most recent reported total_time from /proc/wakelocks.
- */
+ */
long mCurrentReportedTotalTime;
@@ -666,12 +666,12 @@
* Whether we are currently recording reported values.
*/
boolean mTrackingReportedValues;
-
+
/*
* A sequnce counter, incremented once for each update of the stats.
*/
int mUpdateVersion;
-
+
SamplingTimer(ArrayList<Unpluggable> unpluggables, boolean inDischarge, Parcel in) {
super(0, unpluggables, in);
mCurrentReportedCount = in.readInt();
@@ -681,28 +681,28 @@
mTrackingReportedValues = in.readInt() == 1;
mInDischarge = inDischarge;
}
-
- SamplingTimer(ArrayList<Unpluggable> unpluggables, boolean inDischarge,
+
+ SamplingTimer(ArrayList<Unpluggable> unpluggables, boolean inDischarge,
boolean trackReportedValues) {
super(0, unpluggables);
mTrackingReportedValues = trackReportedValues;
mInDischarge = inDischarge;
}
-
+
public void setStale() {
mTrackingReportedValues = false;
mUnpluggedReportedTotalTime = 0;
mUnpluggedReportedCount = 0;
}
-
+
public void setUpdateVersion(int version) {
mUpdateVersion = version;
}
-
+
public int getUpdateVersion() {
return mUpdateVersion;
}
-
+
public void updateCurrentReportedCount(int count) {
if (mInDischarge && mUnpluggedReportedCount == 0) {
// Updating the reported value for the first time.
@@ -712,7 +712,7 @@
}
mCurrentReportedCount = count;
}
-
+
public void updateCurrentReportedTotalTime(long totalTime) {
if (mInDischarge && mUnpluggedReportedTotalTime == 0) {
// Updating the reported value for the first time.
@@ -722,7 +722,7 @@
}
mCurrentReportedTotalTime = totalTime;
}
-
+
public void unplug(long batteryUptime, long batteryRealtime) {
super.unplug(batteryUptime, batteryRealtime);
if (mTrackingReportedValues) {
@@ -736,25 +736,25 @@
super.plug(batteryUptime, batteryRealtime);
mInDischarge = false;
}
-
+
public void logState(Printer pw, String prefix) {
super.logState(pw, prefix);
- pw.println(prefix + "mCurrentReportedCount=" + mCurrentReportedCount
+ pw.println(prefix + "mCurrentReportedCount=" + mCurrentReportedCount
+ " mUnpluggedReportedCount=" + mUnpluggedReportedCount
+ " mCurrentReportedTotalTime=" + mCurrentReportedTotalTime
+ " mUnpluggedReportedTotalTime=" + mUnpluggedReportedTotalTime);
}
-
+
protected long computeRunTimeLocked(long curBatteryRealtime) {
- return mTotalTime + (mInDischarge && mTrackingReportedValues
+ return mTotalTime + (mInDischarge && mTrackingReportedValues
? mCurrentReportedTotalTime - mUnpluggedReportedTotalTime : 0);
}
-
+
protected int computeCurrentCountLocked() {
return mCount + (mInDischarge && mTrackingReportedValues
? mCurrentReportedCount - mUnpluggedReportedCount : 0);
}
-
+
public void writeToParcel(Parcel out, long batteryRealtime) {
super.writeToParcel(out, batteryRealtime);
out.writeInt(mCurrentReportedCount);
@@ -763,13 +763,13 @@
out.writeLong(mUnpluggedReportedTotalTime);
out.writeInt(mTrackingReportedValues ? 1 : 0);
}
-
+
boolean reset(BatteryStatsImpl stats, boolean detachIfReset) {
super.reset(stats, detachIfReset);
setStale();
return true;
}
-
+
void writeSummaryFromParcelLocked(Parcel out, long batteryRealtime) {
super.writeSummaryFromParcelLocked(out, batteryRealtime);
out.writeLong(mCurrentReportedTotalTime);
@@ -784,7 +784,7 @@
mTrackingReportedValues = in.readInt() == 1;
}
}
-
+
/**
* State for keeping track of timing information.
*/
@@ -800,7 +800,7 @@
* time we have been running since we last computed an update.
*/
long mUpdateTime;
-
+
/**
* The total time at which the timer was acquired, to determine if it
* was actually held for an interesting duration.
@@ -829,7 +829,7 @@
mUid = uid;
mTimerPool = timerPool;
}
-
+
void setTimeout(long timeout) {
mTimeout = timeout;
}
@@ -857,7 +857,7 @@
pw.println(prefix + "mNesting=" + mNesting + "mUpdateTime=" + mUpdateTime
+ " mAcquireTime=" + mAcquireTime);
}
-
+
void startRunningLocked(BatteryStatsImpl stats) {
if (mNesting++ == 0) {
mUpdateTime = stats.getBatteryRealtimeLocked(
@@ -897,19 +897,19 @@
// Remove this timer from the active pool
mTimerPool.remove(this);
} else {
- final long realtime = SystemClock.elapsedRealtime() * 1000;
+ final long realtime = SystemClock.elapsedRealtime() * 1000;
final long batteryRealtime = stats.getBatteryRealtimeLocked(realtime);
mNesting = 1;
mTotalTime = computeRunTimeLocked(batteryRealtime);
mNesting = 0;
}
-
+
if (DEBUG && mType < 0) {
Log.v(TAG, "stop #" + mType + ": mUpdateTime=" + mUpdateTime
+ " mTotalTime=" + mTotalTime + " mCount=" + mCount
+ " mAcquireTime=" + mAcquireTime);
}
-
+
if (mTotalTime == mAcquireTime) {
// If there was no change in the time, then discard this
// count. A somewhat cheezy strategy, but hey.
@@ -922,7 +922,7 @@
// due to a change in timer count
private static void refreshTimersLocked(final BatteryStatsImpl stats,
final ArrayList<StopwatchTimer> pool) {
- final long realtime = SystemClock.elapsedRealtime() * 1000;
+ final long realtime = SystemClock.elapsedRealtime() * 1000;
final long batteryRealtime = stats.getBatteryRealtimeLocked(realtime);
final int N = pool.size();
for (int i=N-1; i>= 0; i--) {
@@ -961,25 +961,25 @@
mAcquireTime = mTotalTime;
return canDetach;
}
-
+
void detach() {
super.detach();
if (mTimerPool != null) {
mTimerPool.remove(this);
}
}
-
+
void readSummaryFromParcelLocked(Parcel in) {
super.readSummaryFromParcelLocked(in);
mNesting = 0;
}
}
-
+
private final Map<String, KernelWakelockStats> readKernelWakelockStats() {
-
+
byte[] buffer = new byte[8192];
int len;
-
+
try {
FileInputStream is = new FileInputStream("/proc/wakelocks");
len = is.read(buffer);
@@ -999,10 +999,10 @@
} catch (java.io.IOException e) {
return null;
}
-
+
return parseProcWakelocks(buffer, len);
}
-
+
private final Map<String, KernelWakelockStats> parseProcWakelocks(
byte[] wlBuffer, int len) {
String name;
@@ -1018,11 +1018,11 @@
synchronized(this) {
Map<String, KernelWakelockStats> m = mProcWakelockFileStats;
-
+
sKernelWakelockUpdateVersion++;
while (endIndex < len) {
- for (endIndex=startIndex;
- endIndex < len && wlBuffer[endIndex] != '\n' && wlBuffer[endIndex] != '\0';
+ for (endIndex=startIndex;
+ endIndex < len && wlBuffer[endIndex] != '\n' && wlBuffer[endIndex] != '\0';
endIndex++);
endIndex++; // endIndex is an exclusive upper bound.
// Don't go over the end of the buffer, Process.parseProcLine might
@@ -1049,7 +1049,7 @@
if (parsed && name.length() > 0) {
if (!m.containsKey(name)) {
- m.put(name, new KernelWakelockStats(count, totalTime,
+ m.put(name, new KernelWakelockStats(count, totalTime,
sKernelWakelockUpdateVersion));
numUpdatedWlNames++;
} else {
@@ -1080,27 +1080,27 @@
return m;
}
}
-
+
private class KernelWakelockStats {
public int mCount;
public long mTotalTime;
public int mVersion;
-
+
KernelWakelockStats(int count, long totalTime, int version) {
mCount = count;
mTotalTime = totalTime;
mVersion = version;
}
}
-
+
/*
- * Get the KernelWakelockTimer associated with name, and create a new one if one
+ * Get the KernelWakelockTimer associated with name, and create a new one if one
* doesn't already exist.
*/
public SamplingTimer getKernelWakelockTimerLocked(String name) {
SamplingTimer kwlt = mKernelWakelockStats.get(name);
if (kwlt == null) {
- kwlt = new SamplingTimer(mUnpluggables, mOnBatteryInternal,
+ kwlt = new SamplingTimer(mUnpluggables, mOnBatteryInternal,
true /* track reported values */);
mKernelWakelockStats.put(name, kwlt);
}
@@ -1144,7 +1144,7 @@
}
/**
- * Returns the duration that the cell radio was up for data transfers.
+ * Returns the duration that the cell radio was up for data transfers.
*/
public long getRadioDataUptime() {
if (mRadioDataStart == -1) {
@@ -1156,10 +1156,9 @@
private int getCurrentBluetoothPingCount() {
if (mBtHeadset != null) {
- Set<BluetoothDevice> deviceSet = mBtHeadset.getConnectedDevices();
- BluetoothDevice[] devices = deviceSet.toArray(new BluetoothDevice[deviceSet.size()]);
- if (devices.length > 0) {
- return mBtHeadset.getBatteryUsageHint(devices[0]);
+ List<BluetoothDevice> deviceList = mBtHeadset.getConnectedDevices();
+ if (deviceList.size() > 0) {
+ return mBtHeadset.getBatteryUsageHint(deviceList.get(0));
}
}
return -1;
@@ -1234,7 +1233,7 @@
addHistoryRecordLocked(curTime, HistoryItem.CMD_UPDATE);
}
-
+
void addHistoryRecordLocked(long curTime, byte cmd) {
HistoryItem rec = mHistoryCache;
if (rec != null) {
@@ -1243,10 +1242,10 @@
rec = new HistoryItem();
}
rec.setTo(mHistoryBaseTime + curTime, cmd, mHistoryCur);
-
+
addHistoryRecordLocked(rec);
}
-
+
void addHistoryRecordLocked(HistoryItem rec) {
mNumHistoryItems++;
rec.next = null;
@@ -1258,7 +1257,7 @@
mHistory = mHistoryEnd = rec;
}
}
-
+
void clearHistoryLocked() {
if (mHistory != null) {
mHistoryEnd.next = mHistoryCache;
@@ -1268,7 +1267,7 @@
mNumHistoryItems = 0;
mHistoryBaseTime = 0;
}
-
+
public void doUnplugLocked(long batteryUptime, long batteryRealtime) {
for (int iu = mUidStats.size() - 1; iu >= 0; iu--) {
Uid u = mUidStats.valueAt(iu);
@@ -1532,7 +1531,7 @@
}
int mGpsNesting;
-
+
public void noteStartGpsLocked(int uid) {
if (mGpsNesting == 0) {
mHistoryCur.states |= HistoryItem.STATE_GPS_ON_FLAG;
@@ -1543,7 +1542,7 @@
mGpsNesting++;
getUidStatsLocked(uid).noteStartGps();
}
-
+
public void noteStopGpsLocked(int uid) {
mGpsNesting--;
if (mGpsNesting == 0) {
@@ -1572,7 +1571,7 @@
noteStartWakeLocked(-1, -1, "dummy", WAKE_TYPE_PARTIAL);
}
}
-
+
public void noteScreenOffLocked() {
if (mScreenOn) {
mHistoryCur.states &= ~HistoryItem.STATE_SCREEN_ON_FLAG;
@@ -1588,7 +1587,7 @@
noteStopWakeLocked(-1, -1, "dummy", WAKE_TYPE_PARTIAL);
}
}
-
+
public void noteScreenBrightnessLocked(int brightness) {
// Bin the brightness.
int bin = brightness / (256/NUM_SCREEN_BRIGHTNESS_BINS);
@@ -1609,15 +1608,15 @@
mScreenBrightnessBin = bin;
}
}
-
+
public void noteInputEventAtomic() {
mInputEventCounter.stepAtomic();
}
-
+
public void noteUserActivityLocked(int uid, int event) {
getUidStatsLocked(uid).noteUserActivityLocked(event);
}
-
+
public void notePhoneOnLocked() {
if (!mPhoneOn) {
mHistoryCur.states |= HistoryItem.STATE_PHONE_IN_CALL_FLAG;
@@ -1628,7 +1627,7 @@
mPhoneOnTimer.startRunningLocked(this);
}
}
-
+
public void notePhoneOffLocked() {
if (mPhoneOn) {
mHistoryCur.states &= ~HistoryItem.STATE_PHONE_IN_CALL_FLAG;
@@ -1688,7 +1687,7 @@
mPhoneSignalScanningTimer.startRunningLocked(this);
}
}
-
+
if (!scanning) {
// If we are no longer scanning, then stop the scanning timer.
if (mPhoneSignalScanningTimer.isRunningLocked()) {
@@ -1746,7 +1745,7 @@
mPhoneSignalStrengthsTimer[bin].startRunningLocked(this);
}
}
-
+
public void notePhoneDataConnectionStateLocked(int dataType, boolean hasData) {
int bin = DATA_CONNECTION_NONE;
if (hasData) {
@@ -1806,7 +1805,7 @@
mPhoneDataConnectionsTimer[bin].startRunningLocked(this);
}
}
-
+
public void noteWifiOnLocked() {
if (!mWifiOn) {
mHistoryCur.states |= HistoryItem.STATE_WIFI_ON_FLAG;
@@ -1817,7 +1816,7 @@
mWifiOnTimer.startRunningLocked(this);
}
}
-
+
public void noteWifiOffLocked() {
if (mWifiOn) {
mHistoryCur.states &= ~HistoryItem.STATE_WIFI_ON_FLAG;
@@ -1844,7 +1843,7 @@
}
getUidStatsLocked(uid).noteAudioTurnedOnLocked();
}
-
+
public void noteAudioOffLocked(int uid) {
if (mAudioOn) {
mHistoryCur.states &= ~HistoryItem.STATE_AUDIO_ON_FLAG;
@@ -1868,7 +1867,7 @@
}
getUidStatsLocked(uid).noteVideoTurnedOnLocked();
}
-
+
public void noteVideoOffLocked(int uid) {
if (mVideoOn) {
mHistoryCur.states &= ~HistoryItem.STATE_VIDEO_ON_FLAG;
@@ -1940,7 +1939,7 @@
mBluetoothOnTimer.startRunningLocked(this);
}
}
-
+
public void noteBluetoothOffLocked() {
if (mBluetoothOn) {
mHistoryCur.states &= ~HistoryItem.STATE_BLUETOOTH_ON_FLAG;
@@ -1951,9 +1950,9 @@
mBluetoothOnTimer.stopRunningLocked(this);
}
}
-
+
int mWifiFullLockNesting = 0;
-
+
public void noteFullWifiLockAcquiredLocked(int uid) {
if (mWifiFullLockNesting == 0) {
mHistoryCur.states |= HistoryItem.STATE_WIFI_FULL_LOCK_FLAG;
@@ -1977,7 +1976,7 @@
}
int mWifiScanLockNesting = 0;
-
+
public void noteScanWifiLockAcquiredLocked(int uid) {
if (mWifiScanLockNesting == 0) {
mHistoryCur.states |= HistoryItem.STATE_WIFI_SCAN_LOCK_FLAG;
@@ -2001,7 +2000,7 @@
}
int mWifiMulticastNesting = 0;
-
+
public void noteWifiMulticastEnabledLocked(int uid) {
if (mWifiMulticastNesting == 0) {
mHistoryCur.states |= HistoryItem.STATE_WIFI_MULTICAST_ON_FLAG;
@@ -2069,7 +2068,7 @@
@Override public long getScreenOnTime(long batteryRealtime, int which) {
return mScreenOnTimer.getTotalTimeLocked(batteryRealtime, which);
}
-
+
@Override public long getScreenBrightnessTime(int brightnessBin,
long batteryRealtime, int which) {
return mScreenBrightnessTimer[brightnessBin].getTotalTimeLocked(
@@ -2079,7 +2078,7 @@
@Override public int getInputEventCount(int which) {
return mInputEventCounter.getCountLocked(which);
}
-
+
@Override public long getPhoneOnTime(long batteryRealtime, int which) {
return mPhoneOnTimer.getTotalTimeLocked(batteryRealtime, which);
}
@@ -2099,21 +2098,21 @@
@Override public int getPhoneSignalStrengthCount(int dataType, int which) {
return mPhoneDataConnectionsTimer[dataType].getCountLocked(which);
}
-
+
@Override public long getPhoneDataConnectionTime(int dataType,
long batteryRealtime, int which) {
return mPhoneDataConnectionsTimer[dataType].getTotalTimeLocked(
batteryRealtime, which);
}
-
+
@Override public int getPhoneDataConnectionCount(int dataType, int which) {
return mPhoneDataConnectionsTimer[dataType].getCountLocked(which);
}
-
+
@Override public long getWifiOnTime(long batteryRealtime, int which) {
return mWifiOnTimer.getTotalTimeLocked(batteryRealtime, which);
}
-
+
@Override public long getGlobalWifiRunningTime(long batteryRealtime, int which) {
return mGlobalWifiRunningTimer.getTotalTimeLocked(batteryRealtime, which);
}
@@ -2121,11 +2120,11 @@
@Override public long getBluetoothOnTime(long batteryRealtime, int which) {
return mBluetoothOnTimer.getTotalTimeLocked(batteryRealtime, which);
}
-
+
@Override public boolean getIsOnBattery() {
return mOnBattery;
}
-
+
@Override public SparseArray<? extends BatteryStats.Uid> getUidStats() {
return mUidStats;
}
@@ -2134,7 +2133,7 @@
* The statistics associated with a particular uid.
*/
public final class Uid extends BatteryStats.Uid {
-
+
final int mUid;
long mLoadedTcpBytesReceived;
long mLoadedTcpBytesSent;
@@ -2142,32 +2141,32 @@
long mCurrentTcpBytesSent;
long mTcpBytesReceivedAtLastUnplug;
long mTcpBytesSentAtLastUnplug;
-
+
// These are not saved/restored when parcelling, since we want
// to return from the parcel with a snapshot of the state.
long mStartedTcpBytesReceived = -1;
long mStartedTcpBytesSent = -1;
-
+
boolean mWifiRunning;
StopwatchTimer mWifiRunningTimer;
-
+
boolean mFullWifiLockOut;
StopwatchTimer mFullWifiLockTimer;
-
+
boolean mScanWifiLockOut;
StopwatchTimer mScanWifiLockTimer;
-
+
boolean mWifiMulticastEnabled;
StopwatchTimer mWifiMulticastTimer;
-
+
boolean mAudioTurnedOn;
StopwatchTimer mAudioTurnedOnTimer;
-
+
boolean mVideoTurnedOn;
StopwatchTimer mVideoTurnedOnTimer;
Counter[] mUserActivityCounters;
-
+
/**
* The statistics we have collected for this uid's wake locks.
*/
@@ -2187,7 +2186,7 @@
* The statistics we have collected for this uid's processes.
*/
final HashMap<String, Pkg> mPackageStats = new HashMap<String, Pkg>();
-
+
/**
* The transient wake stats we have collected for this uid's pids.
*/
@@ -2248,7 +2247,7 @@
return current;
}
}
-
+
public long computeCurrentTcpBytesReceived() {
return mCurrentTcpBytesReceived + (mStartedTcpBytesReceived >= 0
? (TrafficStats.getUidRxBytes(mUid) - mStartedTcpBytesReceived) : 0);
@@ -2268,7 +2267,7 @@
return current;
}
}
-
+
@Override
public void noteWifiRunningLocked() {
if (!mWifiRunning) {
@@ -2280,7 +2279,7 @@
mWifiRunningTimer.startRunningLocked(BatteryStatsImpl.this);
}
}
-
+
@Override
public void noteWifiStoppedLocked() {
if (mWifiRunning) {
@@ -2288,7 +2287,7 @@
mWifiRunningTimer.stopRunningLocked(BatteryStatsImpl.this);
}
}
-
+
@Override
public void noteFullWifiLockAcquiredLocked() {
if (!mFullWifiLockOut) {
@@ -2300,7 +2299,7 @@
mFullWifiLockTimer.startRunningLocked(BatteryStatsImpl.this);
}
}
-
+
@Override
public void noteFullWifiLockReleasedLocked() {
if (mFullWifiLockOut) {
@@ -2308,7 +2307,7 @@
mFullWifiLockTimer.stopRunningLocked(BatteryStatsImpl.this);
}
}
-
+
@Override
public void noteScanWifiLockAcquiredLocked() {
if (!mScanWifiLockOut) {
@@ -2320,7 +2319,7 @@
mScanWifiLockTimer.startRunningLocked(BatteryStatsImpl.this);
}
}
-
+
@Override
public void noteScanWifiLockReleasedLocked() {
if (mScanWifiLockOut) {
@@ -2389,7 +2388,7 @@
}
}
- @Override
+ @Override
public long getWifiRunningTime(long batteryRealtime, int which) {
if (mWifiRunningTimer == null) {
return 0;
@@ -2397,15 +2396,15 @@
return mWifiRunningTimer.getTotalTimeLocked(batteryRealtime, which);
}
- @Override
+ @Override
public long getFullWifiLockTime(long batteryRealtime, int which) {
if (mFullWifiLockTimer == null) {
return 0;
}
return mFullWifiLockTimer.getTotalTimeLocked(batteryRealtime, which);
}
-
- @Override
+
+ @Override
public long getScanWifiLockTime(long batteryRealtime, int which) {
if (mScanWifiLockTimer == null) {
return 0;
@@ -2422,7 +2421,7 @@
which);
}
- @Override
+ @Override
public long getAudioTurnedOnTime(long batteryRealtime, int which) {
if (mAudioTurnedOnTimer == null) {
return 0;
@@ -2430,7 +2429,7 @@
return mAudioTurnedOnTimer.getTotalTimeLocked(batteryRealtime, which);
}
- @Override
+ @Override
public long getVideoTurnedOnTime(long batteryRealtime, int which) {
if (mVideoTurnedOnTimer == null) {
return 0;
@@ -2447,12 +2446,12 @@
else if (type >= NUM_USER_ACTIVITY_TYPES) type = NUM_USER_ACTIVITY_TYPES-1;
mUserActivityCounters[type].stepAtomic();
}
-
+
@Override
public boolean hasUserActivity() {
return mUserActivityCounters != null;
}
-
+
@Override
public int getUserActivityCount(int type, int which) {
if (mUserActivityCounters == null) {
@@ -2460,14 +2459,14 @@
}
return mUserActivityCounters[type].getCountLocked(which);
}
-
+
void initUserActivityLocked() {
mUserActivityCounters = new Counter[NUM_USER_ACTIVITY_TYPES];
for (int i=0; i<NUM_USER_ACTIVITY_TYPES; i++) {
mUserActivityCounters[i] = new Counter(mUnpluggables);
}
}
-
+
public long computeCurrentTcpBytesSent() {
return mCurrentTcpBytesSent + (mStartedTcpBytesSent >= 0
? (TrafficStats.getUidTxBytes(mUid) - mStartedTcpBytesSent) : 0);
@@ -2479,7 +2478,7 @@
*/
boolean reset() {
boolean active = false;
-
+
if (mWifiRunningTimer != null) {
active |= !mWifiRunningTimer.reset(BatteryStatsImpl.this, false);
active |= mWifiRunning;
@@ -2504,10 +2503,10 @@
active |= !mVideoTurnedOnTimer.reset(BatteryStatsImpl.this, false);
active |= mVideoTurnedOn;
}
-
+
mLoadedTcpBytesReceived = mLoadedTcpBytesSent = 0;
mCurrentTcpBytesReceived = mCurrentTcpBytesSent = 0;
-
+
if (mUserActivityCounters != null) {
for (int i=0; i<NUM_USER_ACTIVITY_TYPES; i++) {
mUserActivityCounters[i].reset(false);
@@ -2571,7 +2570,7 @@
}
mPackageStats.clear();
}
-
+
mPids.clear();
if (!active) {
@@ -2599,10 +2598,10 @@
}
}
}
-
+
return !active;
}
-
+
void writeToParcelLocked(Parcel out, long batteryRealtime) {
out.writeInt(mWakelockStats.size());
for (Map.Entry<String, Uid.Wakelock> wakelockEntry : mWakelockStats.entrySet()) {
@@ -2631,7 +2630,7 @@
Uid.Pkg pkg = pkgEntry.getValue();
pkg.writeToParcelLocked(out);
}
-
+
out.writeLong(mLoadedTcpBytesReceived);
out.writeLong(mLoadedTcpBytesSent);
out.writeLong(computeCurrentTcpBytesReceived());
@@ -2725,7 +2724,7 @@
pkg.readFromParcelLocked(in);
mPackageStats.put(packageName, pkg);
}
-
+
mLoadedTcpBytesReceived = in.readLong();
mLoadedTcpBytesSent = in.readLong();
mCurrentTcpBytesReceived = in.readLong();
@@ -2846,7 +2845,7 @@
}
return !wlactive;
}
-
+
void readFromParcelLocked(ArrayList<Unpluggable> unpluggables, Parcel in) {
mTimerPartial = readTimerFromParcel(WAKE_TYPE_PARTIAL,
mPartialTimers, unpluggables, in);
@@ -2876,7 +2875,7 @@
public final class Sensor extends BatteryStats.Uid.Sensor {
final int mHandle;
StopwatchTimer mTimer;
-
+
public Sensor(int handle) {
mHandle = handle;
}
@@ -2902,7 +2901,7 @@
}
return false;
}
-
+
void readFromParcelLocked(ArrayList<Unpluggable> unpluggables, Parcel in) {
mTimer = readTimerFromParcel(unpluggables, in);
}
@@ -3024,7 +3023,7 @@
public void plug(long batteryUptime, long batteryRealtime) {
}
-
+
void detach() {
mUnpluggables.remove(this);
for (int i = 0; i < mSpeedBins.length; i++) {
@@ -3035,7 +3034,7 @@
}
}
}
-
+
public int countExcessivePowers() {
return mExcessivePower != null ? mExcessivePower.size() : 0;
}
@@ -3302,18 +3301,18 @@
Pkg() {
mUnpluggables.add(this);
}
-
+
public void unplug(long batteryUptime, long batteryRealtime) {
mUnpluggedWakeups = mWakeups;
}
public void plug(long batteryUptime, long batteryRealtime) {
}
-
+
void detach() {
mUnpluggables.remove(this);
}
-
+
void readFromParcelLocked(Parcel in) {
mWakeups = in.readInt();
mLoadedWakeups = in.readInt();
@@ -3464,7 +3463,7 @@
Serv() {
mUnpluggables.add(this);
}
-
+
public void unplug(long batteryUptime, long batteryRealtime) {
mUnpluggedStartTime = getStartTimeToNowLocked(batteryUptime);
mUnpluggedStarts = mStarts;
@@ -3473,11 +3472,11 @@
public void plug(long batteryUptime, long batteryRealtime) {
}
-
+
void detach() {
mUnpluggables.remove(this);
}
-
+
void readFromParcelLocked(Parcel in) {
mStartTime = in.readLong();
mRunningSince = in.readLong();
@@ -3652,7 +3651,7 @@
public SparseArray<? extends Pid> getPidStats() {
return mPids;
}
-
+
public Pid getPidStatsLocked(int pid) {
Pid p = mPids.get(pid);
if (p == null) {
@@ -3790,7 +3789,7 @@
p.addExcessiveWake(overTime, usedTime);
}
}
-
+
public void reportExcessiveCpuLocked(String proc, long overTime, long usedTime) {
Proc p = getProcessStatsLocked(proc);
if (p != null) {
@@ -3802,7 +3801,7 @@
StopwatchTimer t = getSensorTimerLocked(sensor, true);
if (t != null) {
t.startRunningLocked(BatteryStatsImpl.this);
- }
+ }
}
public void noteStopSensor(int sensor) {
@@ -3810,16 +3809,16 @@
StopwatchTimer t = getSensorTimerLocked(sensor, false);
if (t != null) {
t.stopRunningLocked(BatteryStatsImpl.this);
- }
+ }
}
-
+
public void noteStartGps() {
StopwatchTimer t = getSensorTimerLocked(Sensor.GPS, true);
if (t != null) {
t.startRunningLocked(BatteryStatsImpl.this);
- }
+ }
}
-
+
public void noteStopGps() {
StopwatchTimer t = getSensorTimerLocked(Sensor.GPS, false);
if (t != null) {
@@ -3909,12 +3908,12 @@
public HistoryItem getHistory() {
return mHistory;
}
-
+
@Override
public long getHistoryBaseTime() {
return mHistoryBaseTime;
}
-
+
@Override
public int getStartCount() {
return mStartCount;
@@ -3936,7 +3935,7 @@
mUnpluggedBatteryUptime = getBatteryUptimeLocked(mUptimeStart);
mUnpluggedBatteryRealtime = getBatteryRealtimeLocked(mRealtimeStart);
}
-
+
public void resetAllStatsLocked() {
mStartCount = 0;
initTimes();
@@ -3958,24 +3957,24 @@
mWifiOnTimer.reset(this, false);
mGlobalWifiRunningTimer.reset(this, false);
mBluetoothOnTimer.reset(this, false);
-
+
for (int i=0; i<mUidStats.size(); i++) {
if (mUidStats.valueAt(i).reset()) {
mUidStats.remove(mUidStats.keyAt(i));
i--;
}
}
-
+
if (mKernelWakelockStats.size() > 0) {
for (SamplingTimer timer : mKernelWakelockStats.values()) {
mUnpluggables.remove(timer);
}
mKernelWakelockStats.clear();
}
-
+
clearHistoryLocked();
}
-
+
void setOnBattery(boolean onBattery, int oldStatus, int level) {
synchronized(this) {
boolean doWrite = false;
@@ -3983,7 +3982,7 @@
m.arg1 = onBattery ? 1 : 0;
mHandler.sendMessage(m);
mOnBattery = mOnBatteryInternal = onBattery;
-
+
long uptime = SystemClock.uptimeMillis() * 1000;
long mSecRealtime = SystemClock.elapsedRealtime();
long realtime = mSecRealtime * 1000;
@@ -4036,10 +4035,10 @@
}
}
}
-
+
// This should probably be exposed in the API, though it's not critical
private static final int BATTERY_PLUGGED_NONE = 0;
-
+
public void setBatteryState(int status, int health, int plugType, int level,
int temp, int volt) {
boolean onBattery = plugType == BATTERY_PLUGGED_NONE;
@@ -4107,10 +4106,10 @@
mRecordingHistory = false;
}
}
-
+
public void updateKernelWakelocksLocked() {
Map<String, KernelWakelockStats> m = readKernelWakelockStats();
-
+
if (m == null) {
// Not crashing might make board bringup easier.
Slog.w(TAG, "Couldn't get kernel wake lock stats");
@@ -4120,10 +4119,10 @@
for (Map.Entry<String, KernelWakelockStats> ent : m.entrySet()) {
String name = ent.getKey();
KernelWakelockStats kws = ent.getValue();
-
+
SamplingTimer kwlt = mKernelWakelockStats.get(name);
if (kwlt == null) {
- kwlt = new SamplingTimer(mUnpluggables, mOnBatteryInternal,
+ kwlt = new SamplingTimer(mUnpluggables, mOnBatteryInternal,
true /* track reported values */);
mKernelWakelockStats.put(name, kwlt);
}
@@ -4131,7 +4130,7 @@
kwlt.updateCurrentReportedTotalTime(kws.mTotalTime);
kwlt.setUpdateVersion(sKernelWakelockUpdateVersion);
}
-
+
if (m.size() != mKernelWakelockStats.size()) {
// Set timers to stale if they didn't appear in /proc/wakelocks this time.
for (Map.Entry<String, SamplingTimer> ent : mKernelWakelockStats.entrySet()) {
@@ -4276,18 +4275,18 @@
return getDischargeStartLevelLocked();
}
}
-
+
public int getDischargeStartLevelLocked() {
return mDischargeUnplugLevel;
}
-
+
@Override
public int getDischargeCurrentLevel() {
synchronized(this) {
return getDischargeCurrentLevelLocked();
}
}
-
+
public int getDischargeCurrentLevelLocked() {
return mDischargeCurrentLevel;
}
@@ -4430,7 +4429,7 @@
writeSyncLocked();
mShuttingDown = true;
}
-
+
Parcel mPendingWrite = null;
final ReentrantLock mWriteLock = new ReentrantLock();
@@ -4451,7 +4450,7 @@
if (mShuttingDown) {
return;
}
-
+
Parcel out = Parcel.obtain();
writeSummaryToParcel(out);
mLastWriteTime = SystemClock.elapsedRealtime();
@@ -4551,7 +4550,7 @@
} catch(java.io.IOException e) {
Slog.e("BatteryStats", "Error reading battery statistics", e);
}
-
+
addHistoryRecordLocked(SystemClock.elapsedRealtime(), HistoryItem.CMD_START);
}
@@ -4570,7 +4569,7 @@
mHistoryBaseTime = rec.time;
}
}
-
+
long oldnow = SystemClock.elapsedRealtime() - (5*60*100);
if (oldnow > 0) {
// If the system process has restarted, but not the entire
@@ -4582,7 +4581,7 @@
mHistoryBaseTime -= oldnow;
}
}
-
+
void writeHistory(Parcel out) {
HistoryItem rec = mHistory;
while (rec != null) {
@@ -4591,7 +4590,7 @@
}
out.writeLong(-1);
}
-
+
private void readSummaryFromParcel(Parcel in) {
final int version = in.readInt();
if (version != VERSION) {
@@ -4601,7 +4600,7 @@
}
readHistory(in);
-
+
mStartCount = in.readInt();
mBatteryUptime = in.readLong();
mBatteryRealtime = in.readLong();
@@ -4611,9 +4610,9 @@
mDischargeCurrentLevel = in.readInt();
mLowDischargeAmountSinceCharge = in.readInt();
mHighDischargeAmountSinceCharge = in.readInt();
-
+
mStartCount++;
-
+
mScreenOn = false;
mScreenOnTimer.readSummaryFromParcelLocked(in);
for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
@@ -4693,7 +4692,7 @@
u.mUserActivityCounters[i].readSummaryFromParcelLocked(in);
}
}
-
+
int NW = in.readInt();
if (NW > 10000) {
Slog.w(TAG, "File corrupt: too many wake locks " + NW);
@@ -4786,7 +4785,7 @@
out.writeInt(VERSION);
writeHistory(out);
-
+
out.writeInt(mStartCount);
out.writeLong(computeBatteryUptime(NOW_SYS, STATS_SINCE_CHARGED));
out.writeLong(computeBatteryRealtime(NOWREAL_SYS, STATS_SINCE_CHARGED));
@@ -4796,7 +4795,7 @@
out.writeInt(mDischargeCurrentLevel);
out.writeInt(mLowDischargeAmountSinceCharge);
out.writeInt(mHighDischargeAmountSinceCharge);
-
+
mScreenOnTimer.writeSummaryFromParcelLocked(out, NOWREAL);
for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
mScreenBrightnessTimer[i].writeSummaryFromParcelLocked(out, NOWREAL);
@@ -4825,14 +4824,14 @@
out.writeInt(0);
}
}
-
+
out.writeInt(sNumSpeedSteps);
final int NU = mUidStats.size();
out.writeInt(NU);
for (int iu = 0; iu < NU; iu++) {
out.writeInt(mUidStats.keyAt(iu));
Uid u = mUidStats.valueAt(iu);
-
+
if (u.mWifiRunningTimer != null) {
out.writeInt(1);
u.mWifiRunningTimer.writeSummaryFromParcelLocked(out, NOWREAL);
@@ -4878,7 +4877,7 @@
u.mUserActivityCounters[i].writeSummaryFromParcelLocked(out);
}
}
-
+
int NW = u.mWakelockStats.size();
out.writeInt(NW);
if (NW > 0) {
@@ -4970,7 +4969,7 @@
}
}
}
-
+
out.writeLong(u.getTcpBytesReceived(STATS_SINCE_CHARGED));
out.writeLong(u.getTcpBytesSent(STATS_SINCE_CHARGED));
}
@@ -4979,7 +4978,7 @@
public void readFromParcel(Parcel in) {
readFromParcelLocked(in);
}
-
+
void readFromParcelLocked(Parcel in) {
int magic = in.readInt();
if (magic != MAGIC) {
@@ -4987,7 +4986,7 @@
}
readHistory(in);
-
+
mStartCount = in.readInt();
mBatteryUptime = in.readLong();
mBatteryLastUptime = 0;
@@ -5062,7 +5061,7 @@
mKernelWakelockStats.put(wakelockName, kwlt);
}
}
-
+
mPartialTimers.clear();
mFullTimers.clear();
mWindowTimers.clear();
@@ -5090,18 +5089,18 @@
public void writeToParcelWithoutUids(Parcel out, int flags) {
writeToParcelLocked(out, false, flags);
}
-
- @SuppressWarnings("unused")
+
+ @SuppressWarnings("unused")
void writeToParcelLocked(Parcel out, boolean inclUids, int flags) {
final long uSecUptime = SystemClock.uptimeMillis() * 1000;
final long uSecRealtime = SystemClock.elapsedRealtime() * 1000;
final long batteryUptime = getBatteryUptimeLocked(uSecUptime);
final long batteryRealtime = getBatteryRealtimeLocked(uSecRealtime);
-
+
out.writeInt(MAGIC);
-
+
writeHistory(out);
-
+
out.writeInt(mStartCount);
out.writeLong(mBatteryUptime);
out.writeLong(mBatteryRealtime);
@@ -5190,7 +5189,7 @@
return new BatteryStatsImpl[size];
}
};
-
+
public void dumpLocked(PrintWriter pw) {
if (DEBUG) {
Printer pr = new PrintWriterPrinter(pw);
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 6aa1ae6..23f34d2 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -58,6 +58,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
@@ -1112,18 +1113,16 @@
new BluetoothProfile.ServiceListener() {
public void onServiceConnected(int profile, BluetoothProfile proxy) {
mBluetoothHeadset = (BluetoothHeadset) proxy;
- Set<BluetoothDevice> deviceSet = mBluetoothHeadset.getConnectedDevices();
- if (deviceSet.size() > 0) {
- BluetoothDevice[] devices =
- deviceSet.toArray(new BluetoothDevice[deviceSet.size()]);
- mBluetoothHeadsetDevice = devices[0];
+ List<BluetoothDevice> deviceList = mBluetoothHeadset.getConnectedDevices();
+ if (deviceList.size() > 0) {
+ mBluetoothHeadsetDevice = deviceList.get(0);
} else {
mBluetoothHeadsetDevice = null;
}
}
public void onServiceDisconnected(int profile) {
if (mBluetoothHeadset != null) {
- Set<BluetoothDevice> devices = mBluetoothHeadset.getConnectedDevices();
+ List<BluetoothDevice> devices = mBluetoothHeadset.getConnectedDevices();
if (devices.size() == 0) {
mBluetoothHeadsetDevice = null;
clearAllScoClients();
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index 65b910b..e3deeb3 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -79,7 +79,6 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
@@ -1297,14 +1296,14 @@
*/
private boolean shouldDisableCoexistenceMode() {
if (mBluetoothHeadset == null) return true;
- Set<BluetoothDevice> devices = mBluetoothHeadset.getConnectedDevices();
+ List<BluetoothDevice> devices = mBluetoothHeadset.getConnectedDevices();
return (devices.size() != 0 ? false : true);
}
private void checkIsBluetoothPlaying() {
boolean isBluetoothPlaying = false;
if (mBluetoothA2dp != null) {
- Set<BluetoothDevice> connected = mBluetoothA2dp.getConnectedDevices();
+ List<BluetoothDevice> connected = mBluetoothA2dp.getConnectedDevices();
for (BluetoothDevice device : connected) {
if (mBluetoothA2dp.isA2dpPlaying(device)) {