This CL simply moves BatteryInfo from settingslib to settings and makes sure the tests still pass. No other changes are made other than imports or minor changes needed to make sure existing code does not break. Test: Robotests still pass Bug: 38399275 Bug: 38398949 Bug: 38399654 Change-Id: I59803348e2780b7676ccc6c43234a586c184d71f
101 lines
2.9 KiB
Java
101 lines
2.9 KiB
Java
/*
|
|
* Copyright (C) 2016 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software distributed under the
|
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the specific language governing
|
|
* permissions and limitations under the License.
|
|
*/
|
|
|
|
package com.android.settings.fuelgauge;
|
|
|
|
import android.os.BatteryStats.HistoryItem;
|
|
import android.telephony.ServiceState;
|
|
import android.util.SparseIntArray;
|
|
import com.android.settings.Utils;
|
|
import com.android.settings.fuelgauge.BatteryActiveView.BatteryActiveProvider;
|
|
|
|
public class BatteryCellParser implements BatteryInfo.BatteryDataParser, BatteryActiveProvider {
|
|
|
|
private final SparseIntArray mData = new SparseIntArray();
|
|
|
|
private int mLastValue;
|
|
private long mLength;
|
|
private long mLastTime;
|
|
|
|
protected int getValue(HistoryItem rec) {
|
|
int bin;
|
|
if (((rec.states & HistoryItem.STATE_PHONE_STATE_MASK)
|
|
>> HistoryItem.STATE_PHONE_STATE_SHIFT)
|
|
== ServiceState.STATE_POWER_OFF) {
|
|
bin = 0;
|
|
} else if ((rec.states & HistoryItem.STATE_PHONE_SCANNING_FLAG) != 0) {
|
|
bin = 1;
|
|
} else {
|
|
bin = (rec.states & HistoryItem.STATE_PHONE_SIGNAL_STRENGTH_MASK)
|
|
>> HistoryItem.STATE_PHONE_SIGNAL_STRENGTH_SHIFT;
|
|
bin += 2;
|
|
}
|
|
return bin;
|
|
}
|
|
|
|
@Override
|
|
public void onParsingStarted(long startTime, long endTime) {
|
|
mLength = endTime - startTime;
|
|
}
|
|
|
|
@Override
|
|
public void onDataPoint(long time, HistoryItem record) {
|
|
int value = getValue(record);
|
|
if (value != mLastValue) {
|
|
mData.put((int) time, value);
|
|
mLastValue = value;
|
|
}
|
|
mLastTime = time;
|
|
}
|
|
|
|
@Override
|
|
public void onDataGap() {
|
|
if (mLastValue != 0) {
|
|
mData.put((int) mLastTime, 0);
|
|
mLastValue = 0;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onParsingDone() {
|
|
if (mLastValue != 0) {
|
|
mData.put((int) mLastTime, 0);
|
|
mLastValue = 0;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public long getPeriod() {
|
|
return mLength;
|
|
}
|
|
|
|
@Override
|
|
public boolean hasData() {
|
|
return mData.size() > 1;
|
|
}
|
|
|
|
@Override
|
|
public SparseIntArray getColorArray() {
|
|
SparseIntArray ret = new SparseIntArray();
|
|
for (int i = 0; i < mData.size(); i++) {
|
|
ret.put(mData.keyAt(i), getColor(mData.valueAt(i)));
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
private int getColor(int i) {
|
|
return Utils.BADNESS_COLORS[i];
|
|
}
|
|
}
|