Update to follow usage stats changes.

Change-Id: I693b20d908ef6cd3698600a2d2e004474f179257
This commit is contained in:
Dianne Hackborn
2014-05-07 18:19:54 -07:00
parent 9ed4f1c6ef
commit 6734408f46

View File

@@ -1,5 +1,3 @@
/** /**
* Copyright (C) 2007 The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
* *
@@ -28,7 +26,6 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle; import android.os.Bundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import com.android.internal.os.PkgUsageStats;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
@@ -60,28 +57,34 @@ public class UsageStats extends Activity implements OnItemSelectedListener {
private UsageStatsAdapter mAdapter; private UsageStatsAdapter mAdapter;
private PackageManager mPm; private PackageManager mPm;
public static class AppNameComparator implements Comparator<PkgUsageStats> { public static class AppNameComparator
implements Comparator<android.app.UsageStats.PackageStats> {
Map<String, CharSequence> mAppLabelList; Map<String, CharSequence> mAppLabelList;
AppNameComparator(Map<String, CharSequence> appList) { AppNameComparator(Map<String, CharSequence> appList) {
mAppLabelList = appList; mAppLabelList = appList;
} }
public final int compare(PkgUsageStats a, PkgUsageStats b) { public final int compare(android.app.UsageStats.PackageStats a,
String alabel = mAppLabelList.get(a.packageName).toString(); android.app.UsageStats.PackageStats b) {
String blabel = mAppLabelList.get(b.packageName).toString(); String alabel = mAppLabelList.get(a.getPackageName()).toString();
String blabel = mAppLabelList.get(b.getPackageName()).toString();
return alabel.compareTo(blabel); return alabel.compareTo(blabel);
} }
} }
public static class LaunchCountComparator implements Comparator<PkgUsageStats> { public static class LaunchCountComparator
public final int compare(PkgUsageStats a, PkgUsageStats b) { implements Comparator<android.app.UsageStats.PackageStats> {
public final int compare(android.app.UsageStats.PackageStats a,
android.app.UsageStats.PackageStats b) {
// return by descending order // return by descending order
return b.launchCount - a.launchCount; return b.getLaunchCount() - a.getLaunchCount();
} }
} }
public static class UsageTimeComparator implements Comparator<PkgUsageStats> { public static class UsageTimeComparator
public final int compare(PkgUsageStats a, PkgUsageStats b) { implements Comparator<android.app.UsageStats.PackageStats> {
long ret = a.usageTime-b.usageTime; public final int compare(android.app.UsageStats.PackageStats a,
android.app.UsageStats.PackageStats b) {
long ret = a.getUsageTime(0)-b.getUsageTime(0);
if (ret == 0) { if (ret == 0) {
return 0; return 0;
} }
@@ -106,18 +109,18 @@ public class UsageStats extends Activity implements OnItemSelectedListener {
private static final int _DISPLAY_ORDER_APP_NAME = 2; private static final int _DISPLAY_ORDER_APP_NAME = 2;
private int mDisplayOrder = _DISPLAY_ORDER_USAGE_TIME; private int mDisplayOrder = _DISPLAY_ORDER_USAGE_TIME;
private List<PkgUsageStats> mUsageStats; private List<android.app.UsageStats.PackageStats> mUsageStats;
private LaunchCountComparator mLaunchCountComparator; private LaunchCountComparator mLaunchCountComparator;
private UsageTimeComparator mUsageTimeComparator; private UsageTimeComparator mUsageTimeComparator;
private AppNameComparator mAppLabelComparator; private AppNameComparator mAppLabelComparator;
private HashMap<String, CharSequence> mAppLabelMap; private HashMap<String, CharSequence> mAppLabelMap;
UsageStatsAdapter() { UsageStatsAdapter() {
mUsageStats = new ArrayList<PkgUsageStats>(); mUsageStats = new ArrayList<android.app.UsageStats.PackageStats>();
mAppLabelMap = new HashMap<String, CharSequence>(); mAppLabelMap = new HashMap<String, CharSequence>();
PkgUsageStats[] stats; android.app.UsageStats.PackageStats[] stats;
try { try {
stats = mUsageStatsService.getAllPkgUsageStats(); stats = mUsageStatsService.getAllPkgUsageStats(getPackageName());
} catch (RemoteException e) { } catch (RemoteException e) {
Log.e(TAG, "Failed initializing usage stats service"); Log.e(TAG, "Failed initializing usage stats service");
return; return;
@@ -125,17 +128,17 @@ public class UsageStats extends Activity implements OnItemSelectedListener {
if (stats == null) { if (stats == null) {
return; return;
} }
for (PkgUsageStats ps : stats) { for (android.app.UsageStats.PackageStats ps : stats) {
mUsageStats.add(ps); mUsageStats.add(ps);
// load application labels for each application // load application labels for each application
CharSequence label; CharSequence label;
try { try {
ApplicationInfo appInfo = mPm.getApplicationInfo(ps.packageName, 0); ApplicationInfo appInfo = mPm.getApplicationInfo(ps.getPackageName(), 0);
label = appInfo.loadLabel(mPm); label = appInfo.loadLabel(mPm);
} catch (NameNotFoundException e) { } catch (NameNotFoundException e) {
label = ps.packageName; label = ps.getPackageName();
} }
mAppLabelMap.put(ps.packageName, label); mAppLabelMap.put(ps.getPackageName(), label);
} }
// Sort list // Sort list
mLaunchCountComparator = new LaunchCountComparator(); mLaunchCountComparator = new LaunchCountComparator();
@@ -180,12 +183,12 @@ public class UsageStats extends Activity implements OnItemSelectedListener {
} }
// Bind the data efficiently with the holder // Bind the data efficiently with the holder
PkgUsageStats pkgStats = mUsageStats.get(position); android.app.UsageStats.PackageStats pkgStats = mUsageStats.get(position);
if (pkgStats != null) { if (pkgStats != null) {
CharSequence label = mAppLabelMap.get(pkgStats.packageName); CharSequence label = mAppLabelMap.get(pkgStats.getPackageName());
holder.pkgName.setText(label); holder.pkgName.setText(label);
holder.launchCount.setText(String.valueOf(pkgStats.launchCount)); holder.launchCount.setText(String.valueOf(pkgStats.getLaunchCount()));
holder.usageTime.setText(String.valueOf(pkgStats.usageTime)+" ms"); holder.usageTime.setText(String.valueOf(pkgStats.getUsageTime(0))+" ms");
} else { } else {
Log.w(TAG, "No usage stats info for package:" + position); Log.w(TAG, "No usage stats info for package:" + position);
} }