Loading AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -1508,7 +1508,7 @@ </intent-filter> </activity> <activity android:name="UsageStats" android:label="@string/usage_stats_label" <activity android:name="UsageStatsActivity" android:label="@string/usage_stats_label" android:taskAffinity="com.android.settings" android:parentActivityName="Settings"> <intent-filter> Loading src/com/android/settings/UsageStats.java→src/com/android/settings/UsageStatsActivity.java +41 −30 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.settings; import android.app.Activity; import android.app.usage.PackageUsageStats; import android.app.usage.UsageStats; import android.app.usage.UsageStatsManager; import android.content.Context; import android.content.pm.ApplicationInfo; Loading @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import android.text.format.DateUtils; Loading @@ -48,7 +49,7 @@ import android.widget.AdapterView.OnItemSelectedListener; /** * Activity to display package usage statistics. */ public class UsageStats extends Activity implements OnItemSelectedListener { public class UsageStatsActivity extends Activity implements OnItemSelectedListener { private static final String TAG = "UsageStatsActivity"; private static final boolean localLOGV = false; private UsageStatsManager mUsageStatsManager; Loading @@ -56,7 +57,7 @@ public class UsageStats extends Activity implements OnItemSelectedListener { private UsageStatsAdapter mAdapter; private PackageManager mPm; public static class AppNameComparator implements Comparator<PackageUsageStats> { public static class AppNameComparator implements Comparator<UsageStats> { private Map<String, String> mAppLabelList; AppNameComparator(Map<String, String> appList) { Loading @@ -64,25 +65,25 @@ public class UsageStats extends Activity implements OnItemSelectedListener { } @Override public final int compare(PackageUsageStats a, PackageUsageStats b) { public final int compare(UsageStats a, UsageStats b) { String alabel = mAppLabelList.get(a.getPackageName()); String blabel = mAppLabelList.get(b.getPackageName()); return alabel.compareTo(blabel); } } public static class LastTimeUsedComparator implements Comparator<PackageUsageStats> { public static class LastTimeUsedComparator implements Comparator<UsageStats> { @Override public final int compare(PackageUsageStats a, PackageUsageStats b) { public final int compare(UsageStats a, UsageStats b) { // return by descending order return (int)(b.getLastTimeUsed() - a.getLastTimeUsed()); } } public static class UsageTimeComparator implements Comparator<PackageUsageStats> { public static class UsageTimeComparator implements Comparator<UsageStats> { @Override public final int compare(PackageUsageStats a, PackageUsageStats b) { return (int)(b.getTotalTimeSpent() - a.getTotalTimeSpent()); public final int compare(UsageStats a, UsageStats b) { return (int)(b.getTotalTimeInForeground() - a.getTotalTimeInForeground()); } } Loading @@ -104,32 +105,43 @@ public class UsageStats extends Activity implements OnItemSelectedListener { private UsageTimeComparator mUsageTimeComparator = new UsageTimeComparator(); private AppNameComparator mAppLabelComparator; private final ArrayMap<String, String> mAppLabelMap = new ArrayMap<>(); private final ArrayList<PackageUsageStats> mPackageStats = new ArrayList<>(); private final ArrayList<UsageStats> mPackageStats = new ArrayList<>(); UsageStatsAdapter() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, -5); final android.app.usage.UsageStats stats = mUsageStatsManager.getRecentStatsSince(cal.getTimeInMillis()); final List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, cal.getTimeInMillis(), System.currentTimeMillis()); if (stats == null) { return; } final int pkgCount = stats.getPackageCount(); for (int i = 0; i < pkgCount; i++) { final PackageUsageStats pkgStats = stats.getPackage(i); ArrayMap<String, UsageStats> map = new ArrayMap<>(); final int statCount = stats.size(); for (int i = 0; i < statCount; i++) { final android.app.usage.UsageStats pkgStats = stats.get(i); // load application labels for each application try { ApplicationInfo appInfo = mPm.getApplicationInfo(pkgStats.getPackageName(), 0); String label = appInfo.loadLabel(mPm).toString(); mAppLabelMap.put(pkgStats.getPackageName(), label); mPackageStats.add(pkgStats); UsageStats existingStats = map.get(pkgStats.getPackageName()); if (existingStats == null) { map.put(pkgStats.getPackageName(), pkgStats); } else { existingStats.add(pkgStats); } } catch (NameNotFoundException e) { // This package may be gone. } } mPackageStats.addAll(map.values()); // Sort list mAppLabelComparator = new AppNameComparator(mAppLabelMap); Loading Loading @@ -177,14 +189,14 @@ public class UsageStats extends Activity implements OnItemSelectedListener { } // Bind the data efficiently with the holder PackageUsageStats pkgStats = mPackageStats.get(position); UsageStats pkgStats = mPackageStats.get(position); if (pkgStats != null) { String label = mAppLabelMap.get(pkgStats.getPackageName()); holder.pkgName.setText(label); holder.lastTimeUsed.setText(DateUtils.formatSameDayTime(pkgStats.getLastTimeUsed(), System.currentTimeMillis(), DateFormat.MEDIUM, DateFormat.MEDIUM)); holder.usageTime.setText( DateUtils.formatElapsedTime(pkgStats.getTotalTimeSpent() / 1000)); DateUtils.formatElapsedTime(pkgStats.getTotalTimeInForeground() / 1000)); } else { Log.w(TAG, "No usage stats info for package:" + position); } Loading Loading @@ -242,4 +254,3 @@ public class UsageStats extends Activity implements OnItemSelectedListener { // do nothing } } Loading
AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -1508,7 +1508,7 @@ </intent-filter> </activity> <activity android:name="UsageStats" android:label="@string/usage_stats_label" <activity android:name="UsageStatsActivity" android:label="@string/usage_stats_label" android:taskAffinity="com.android.settings" android:parentActivityName="Settings"> <intent-filter> Loading
src/com/android/settings/UsageStats.java→src/com/android/settings/UsageStatsActivity.java +41 −30 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.settings; import android.app.Activity; import android.app.usage.PackageUsageStats; import android.app.usage.UsageStats; import android.app.usage.UsageStatsManager; import android.content.Context; import android.content.pm.ApplicationInfo; Loading @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import android.text.format.DateUtils; Loading @@ -48,7 +49,7 @@ import android.widget.AdapterView.OnItemSelectedListener; /** * Activity to display package usage statistics. */ public class UsageStats extends Activity implements OnItemSelectedListener { public class UsageStatsActivity extends Activity implements OnItemSelectedListener { private static final String TAG = "UsageStatsActivity"; private static final boolean localLOGV = false; private UsageStatsManager mUsageStatsManager; Loading @@ -56,7 +57,7 @@ public class UsageStats extends Activity implements OnItemSelectedListener { private UsageStatsAdapter mAdapter; private PackageManager mPm; public static class AppNameComparator implements Comparator<PackageUsageStats> { public static class AppNameComparator implements Comparator<UsageStats> { private Map<String, String> mAppLabelList; AppNameComparator(Map<String, String> appList) { Loading @@ -64,25 +65,25 @@ public class UsageStats extends Activity implements OnItemSelectedListener { } @Override public final int compare(PackageUsageStats a, PackageUsageStats b) { public final int compare(UsageStats a, UsageStats b) { String alabel = mAppLabelList.get(a.getPackageName()); String blabel = mAppLabelList.get(b.getPackageName()); return alabel.compareTo(blabel); } } public static class LastTimeUsedComparator implements Comparator<PackageUsageStats> { public static class LastTimeUsedComparator implements Comparator<UsageStats> { @Override public final int compare(PackageUsageStats a, PackageUsageStats b) { public final int compare(UsageStats a, UsageStats b) { // return by descending order return (int)(b.getLastTimeUsed() - a.getLastTimeUsed()); } } public static class UsageTimeComparator implements Comparator<PackageUsageStats> { public static class UsageTimeComparator implements Comparator<UsageStats> { @Override public final int compare(PackageUsageStats a, PackageUsageStats b) { return (int)(b.getTotalTimeSpent() - a.getTotalTimeSpent()); public final int compare(UsageStats a, UsageStats b) { return (int)(b.getTotalTimeInForeground() - a.getTotalTimeInForeground()); } } Loading @@ -104,32 +105,43 @@ public class UsageStats extends Activity implements OnItemSelectedListener { private UsageTimeComparator mUsageTimeComparator = new UsageTimeComparator(); private AppNameComparator mAppLabelComparator; private final ArrayMap<String, String> mAppLabelMap = new ArrayMap<>(); private final ArrayList<PackageUsageStats> mPackageStats = new ArrayList<>(); private final ArrayList<UsageStats> mPackageStats = new ArrayList<>(); UsageStatsAdapter() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, -5); final android.app.usage.UsageStats stats = mUsageStatsManager.getRecentStatsSince(cal.getTimeInMillis()); final List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, cal.getTimeInMillis(), System.currentTimeMillis()); if (stats == null) { return; } final int pkgCount = stats.getPackageCount(); for (int i = 0; i < pkgCount; i++) { final PackageUsageStats pkgStats = stats.getPackage(i); ArrayMap<String, UsageStats> map = new ArrayMap<>(); final int statCount = stats.size(); for (int i = 0; i < statCount; i++) { final android.app.usage.UsageStats pkgStats = stats.get(i); // load application labels for each application try { ApplicationInfo appInfo = mPm.getApplicationInfo(pkgStats.getPackageName(), 0); String label = appInfo.loadLabel(mPm).toString(); mAppLabelMap.put(pkgStats.getPackageName(), label); mPackageStats.add(pkgStats); UsageStats existingStats = map.get(pkgStats.getPackageName()); if (existingStats == null) { map.put(pkgStats.getPackageName(), pkgStats); } else { existingStats.add(pkgStats); } } catch (NameNotFoundException e) { // This package may be gone. } } mPackageStats.addAll(map.values()); // Sort list mAppLabelComparator = new AppNameComparator(mAppLabelMap); Loading Loading @@ -177,14 +189,14 @@ public class UsageStats extends Activity implements OnItemSelectedListener { } // Bind the data efficiently with the holder PackageUsageStats pkgStats = mPackageStats.get(position); UsageStats pkgStats = mPackageStats.get(position); if (pkgStats != null) { String label = mAppLabelMap.get(pkgStats.getPackageName()); holder.pkgName.setText(label); holder.lastTimeUsed.setText(DateUtils.formatSameDayTime(pkgStats.getLastTimeUsed(), System.currentTimeMillis(), DateFormat.MEDIUM, DateFormat.MEDIUM)); holder.usageTime.setText( DateUtils.formatElapsedTime(pkgStats.getTotalTimeSpent() / 1000)); DateUtils.formatElapsedTime(pkgStats.getTotalTimeInForeground() / 1000)); } else { Log.w(TAG, "No usage stats info for package:" + position); } Loading Loading @@ -242,4 +254,3 @@ public class UsageStats extends Activity implements OnItemSelectedListener { // do nothing } }