Move static UsageStatsManager from DatabaseUtils to DataProcessor to am: 20ec9893d2
am: b01f52015d
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24366174 Change-Id: I838b2a58bdf7dd41a7fd1eddf16acaeba1c87a6d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -17,6 +17,7 @@ package com.android.settings.fuelgauge.batteryusage;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.usage.IUsageStatsManager;
|
||||
import android.app.usage.UsageEvents.Event;
|
||||
import android.app.usage.UsageStatsManager;
|
||||
import android.content.ContentValues;
|
||||
@@ -185,7 +186,8 @@ public final class ConvertUtils {
|
||||
/** Converts to {@link AppUsageEvent} from {@link Event} */
|
||||
@Nullable
|
||||
public static AppUsageEvent convertToAppUsageEvent(
|
||||
Context context, final Event event, final long userId) {
|
||||
Context context, IUsageStatsManager usageStatsManager, final Event event,
|
||||
final long userId) {
|
||||
final String packageName = event.getPackageName();
|
||||
if (packageName == null) {
|
||||
// See b/190609174: Event package names should never be null, but sometimes they are.
|
||||
@@ -210,7 +212,8 @@ public final class ConvertUtils {
|
||||
}
|
||||
|
||||
final String effectivePackageName =
|
||||
getEffectivePackageName(context, packageName, taskRootPackageName);
|
||||
getEffectivePackageName(
|
||||
context, usageStatsManager, packageName, taskRootPackageName);
|
||||
try {
|
||||
final long uid = context
|
||||
.getPackageManager()
|
||||
@@ -326,8 +329,9 @@ public final class ConvertUtils {
|
||||
*/
|
||||
@VisibleForTesting
|
||||
static String getEffectivePackageName(
|
||||
Context context, final String packageName, final String taskRootPackageName) {
|
||||
final int usageSource = getUsageSource(context);
|
||||
Context context, IUsageStatsManager usageStatsManager, final String packageName,
|
||||
final String taskRootPackageName) {
|
||||
final int usageSource = getUsageSource(context, usageStatsManager);
|
||||
switch (usageSource) {
|
||||
case UsageStatsManager.USAGE_SOURCE_TASK_ROOT_ACTIVITY:
|
||||
return !TextUtils.isEmpty(taskRootPackageName)
|
||||
@@ -372,9 +376,9 @@ public final class ConvertUtils {
|
||||
}
|
||||
}
|
||||
|
||||
private static int getUsageSource(Context context) {
|
||||
private static int getUsageSource(Context context, IUsageStatsManager usageStatsManager) {
|
||||
if (sUsageSource == EMPTY_USAGE_SOURCE) {
|
||||
sUsageSource = DatabaseUtils.getUsageSource(context);
|
||||
sUsageSource = DatabaseUtils.getUsageSource(context, usageStatsManager);
|
||||
}
|
||||
return sUsageSource;
|
||||
}
|
||||
|
@@ -32,6 +32,7 @@ import android.os.BatteryUsageStats;
|
||||
import android.os.BatteryUsageStatsQuery;
|
||||
import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.UidBatteryConsumer;
|
||||
import android.os.UserBatteryConsumer;
|
||||
import android.os.UserHandle;
|
||||
@@ -108,6 +109,11 @@ public final class DataProcessor {
|
||||
@VisibleForTesting
|
||||
static Set<String> sTestSystemAppsPackageNames;
|
||||
|
||||
@VisibleForTesting
|
||||
static IUsageStatsManager sUsageStatsManager =
|
||||
IUsageStatsManager.Stub.asInterface(
|
||||
ServiceManager.getService(Context.USAGE_STATS_SERVICE));
|
||||
|
||||
public static final String CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER =
|
||||
"CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER";
|
||||
|
||||
@@ -338,7 +344,8 @@ public final class DataProcessor {
|
||||
break;
|
||||
}
|
||||
final AppUsageEvent appUsageEvent =
|
||||
ConvertUtils.convertToAppUsageEvent(context, event, userId);
|
||||
ConvertUtils.convertToAppUsageEvent(
|
||||
context, sUsageStatsManager, event, userId);
|
||||
if (appUsageEvent != null) {
|
||||
numEventsFetched++;
|
||||
appUsageEventList.add(appUsageEvent);
|
||||
@@ -694,6 +701,7 @@ public final class DataProcessor {
|
||||
final long eventUserId = firstEvent.getUserId();
|
||||
final String packageName = getEffectivePackageName(
|
||||
context,
|
||||
sUsageStatsManager,
|
||||
firstEvent.getPackageName(),
|
||||
firstEvent.getTaskRootPackageName());
|
||||
usageEvents.addAll(deviceEvents);
|
||||
@@ -966,7 +974,7 @@ public final class DataProcessor {
|
||||
final long startTime = DatabaseUtils.getAppUsageStartTimestampOfUser(
|
||||
context, userID, earliestTimestamp);
|
||||
return loadAppUsageEventsForUserFromService(
|
||||
DatabaseUtils.sUsageStatsManager, startTime, now, userID, callingPackage);
|
||||
sUsageStatsManager, startTime, now, userID, callingPackage);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
@@ -31,7 +31,6 @@ import android.os.BatteryUsageStats;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.SystemClock;
|
||||
import android.os.UserManager;
|
||||
import android.util.Log;
|
||||
@@ -117,11 +116,6 @@ public final class DatabaseUtils {
|
||||
@VisibleForTesting
|
||||
static Supplier<Cursor> sFakeSupplier;
|
||||
|
||||
@VisibleForTesting
|
||||
static IUsageStatsManager sUsageStatsManager =
|
||||
IUsageStatsManager.Stub.asInterface(
|
||||
ServiceManager.getService(Context.USAGE_STATS_SERVICE));
|
||||
|
||||
private DatabaseUtils() {
|
||||
}
|
||||
|
||||
@@ -488,7 +482,7 @@ public final class DatabaseUtils {
|
||||
*
|
||||
* @see UsageStatsManager#getUsageSource()
|
||||
*/
|
||||
static int getUsageSource(Context context) {
|
||||
static int getUsageSource(Context context, IUsageStatsManager usageStatsManager) {
|
||||
final SharedPreferences sharedPreferences = getSharedPreferences(context);
|
||||
if (sharedPreferences != null && sharedPreferences.contains(KEY_LAST_USAGE_SOURCE)) {
|
||||
return sharedPreferences
|
||||
@@ -497,7 +491,7 @@ public final class DatabaseUtils {
|
||||
int usageSource = ConvertUtils.DEFAULT_USAGE_SOURCE;
|
||||
|
||||
try {
|
||||
usageSource = sUsageStatsManager.getUsageSource();
|
||||
usageSource = usageStatsManager.getUsageSource();
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to getUsageSource", e);
|
||||
}
|
||||
|
Reference in New Issue
Block a user