Merge "Update dabase manager to store the uid" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-03-07 16:57:35 +00:00
committed by Android (Google) Code Review
5 changed files with 35 additions and 15 deletions

View File

@@ -128,14 +128,14 @@ public class AnomalyDetectionJobService extends JobService {
Log.e(TAG, "Excessive detected uid=" + uid);
batteryUtils.setForceAppStandby(uid, packageName,
AppOpsManager.MODE_IGNORED);
databaseManager.insertAnomaly(packageName, anomalyType,
databaseManager.insertAnomaly(uid, packageName, anomalyType,
smartBatteryOn
? AnomalyDatabaseHelper.State.AUTO_HANDLED
: AnomalyDatabaseHelper.State.NEW,
timeMs);
}
} else {
databaseManager.insertAnomaly(packageName, anomalyType,
databaseManager.insertAnomaly(uid, packageName, anomalyType,
AnomalyDatabaseHelper.State.NEW, timeMs);
}
} catch (NullPointerException | IndexOutOfBoundsException e) {

View File

@@ -33,11 +33,13 @@ public class AppInfo implements Comparable<AppInfo>, Parcelable {
*/
public final int anomalyType;
public final long screenOnTimeMs;
public final int uid;
private AppInfo(AppInfo.Builder builder) {
packageName = builder.mPackageName;
anomalyType = builder.mAnomalyType;
screenOnTimeMs = builder.mScreenOnTimeMs;
uid = builder.mUid;
}
@VisibleForTesting
@@ -45,6 +47,7 @@ public class AppInfo implements Comparable<AppInfo>, Parcelable {
packageName = in.readString();
anomalyType = in.readInt();
screenOnTimeMs = in.readLong();
uid = in.readInt();
}
@Override
@@ -62,6 +65,7 @@ public class AppInfo implements Comparable<AppInfo>, Parcelable {
dest.writeString(packageName);
dest.writeInt(anomalyType);
dest.writeLong(screenOnTimeMs);
dest.writeInt(uid);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
@@ -78,6 +82,7 @@ public class AppInfo implements Comparable<AppInfo>, Parcelable {
private int mAnomalyType;
private String mPackageName;
private long mScreenOnTimeMs;
private int mUid;
public Builder setAnomalyType(int type) {
mAnomalyType = type;
@@ -94,6 +99,11 @@ public class AppInfo implements Comparable<AppInfo>, Parcelable {
return this;
}
public Builder setUid(int uid) {
mUid = uid;
return this;
}
public AppInfo build() {
return new AppInfo(this);
}

View File

@@ -24,6 +24,7 @@ import static com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper.An
.ANOMALY_TYPE;
import static com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper.AnomalyColumns
.TIME_STAMP_MS;
import static com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper.AnomalyColumns.UID;
import static com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper.Tables.TABLE_ANOMALY;
import android.content.ContentValues;
@@ -65,10 +66,11 @@ public class BatteryDatabaseManager {
* @param anomalyState the state of the anomaly
* @param timestampMs the time when it is happened
*/
public synchronized void insertAnomaly(String packageName, int type, int anomalyState,
public synchronized void insertAnomaly(int uid, String packageName, int type, int anomalyState,
long timestampMs) {
try (SQLiteDatabase db = mDatabaseHelper.getWritableDatabase()) {
ContentValues values = new ContentValues();
values.put(UID, uid);
values.put(PACKAGE_NAME, packageName);
values.put(ANOMALY_TYPE, type);
values.put(ANOMALY_STATE, anomalyState);
@@ -83,7 +85,7 @@ public class BatteryDatabaseManager {
public synchronized List<AppInfo> queryAllAnomalies(long timestampMsAfter, int state) {
final List<AppInfo> appInfos = new ArrayList<>();
try (SQLiteDatabase db = mDatabaseHelper.getReadableDatabase()) {
final String[] projection = {PACKAGE_NAME, ANOMALY_TYPE};
final String[] projection = {PACKAGE_NAME, ANOMALY_TYPE, UID};
final String orderBy = AnomalyDatabaseHelper.AnomalyColumns.TIME_STAMP_MS + " DESC";
try (Cursor cursor = db.query(TABLE_ANOMALY, projection,
@@ -94,6 +96,7 @@ public class BatteryDatabaseManager {
AppInfo appInfo = new AppInfo.Builder()
.setPackageName(cursor.getString(cursor.getColumnIndex(PACKAGE_NAME)))
.setAnomalyType(cursor.getInt(cursor.getColumnIndex(ANOMALY_TYPE)))
.setUid(cursor.getInt(cursor.getColumnIndex(UID)))
.build();
appInfos.add(appInfo);
}