Search in sources :

Example 6 with ConfigurationStats

use of android.app.usage.ConfigurationStats in project platform_frameworks_base by android.

the class IntervalStats method getOrCreateConfigurationStats.

/**
     * Gets the ConfigurationStats object for the given configuration, or creates one and adds it
     * internally.
     */
ConfigurationStats getOrCreateConfigurationStats(Configuration config) {
    ConfigurationStats configStats = configurations.get(config);
    if (configStats == null) {
        configStats = new ConfigurationStats();
        configStats.mBeginTimeStamp = beginTime;
        configStats.mEndTimeStamp = endTime;
        configStats.mConfiguration = config;
        configurations.put(config, configStats);
    }
    return configStats;
}
Also used : ConfigurationStats(android.app.usage.ConfigurationStats)

Example 7 with ConfigurationStats

use of android.app.usage.ConfigurationStats in project platform_frameworks_base by android.

the class Am method getRecentConfigurations.

private List<Configuration> getRecentConfigurations(int days) {
    IUsageStatsManager usm = IUsageStatsManager.Stub.asInterface(ServiceManager.getService(Context.USAGE_STATS_SERVICE));
    final long now = System.currentTimeMillis();
    final long nDaysAgo = now - (days * 24 * 60 * 60 * 1000);
    try {
        @SuppressWarnings("unchecked") ParceledListSlice<ConfigurationStats> configStatsSlice = usm.queryConfigurationStats(UsageStatsManager.INTERVAL_BEST, nDaysAgo, now, "com.android.shell");
        if (configStatsSlice == null) {
            return Collections.emptyList();
        }
        final ArrayMap<Configuration, Integer> recentConfigs = new ArrayMap<>();
        final List<ConfigurationStats> configStatsList = configStatsSlice.getList();
        final int configStatsListSize = configStatsList.size();
        for (int i = 0; i < configStatsListSize; i++) {
            final ConfigurationStats stats = configStatsList.get(i);
            final int indexOfKey = recentConfigs.indexOfKey(stats.getConfiguration());
            if (indexOfKey < 0) {
                recentConfigs.put(stats.getConfiguration(), stats.getActivationCount());
            } else {
                recentConfigs.setValueAt(indexOfKey, recentConfigs.valueAt(indexOfKey) + stats.getActivationCount());
            }
        }
        final Comparator<Configuration> comparator = new Comparator<Configuration>() {

            @Override
            public int compare(Configuration a, Configuration b) {
                return recentConfigs.get(b).compareTo(recentConfigs.get(a));
            }
        };
        ArrayList<Configuration> configs = new ArrayList<>(recentConfigs.size());
        configs.addAll(recentConfigs.keySet());
        Collections.sort(configs, comparator);
        return configs;
    } catch (RemoteException e) {
        return Collections.emptyList();
    }
}
Also used : ConfigurationStats(android.app.usage.ConfigurationStats) Configuration(android.content.res.Configuration) ArrayList(java.util.ArrayList) ArrayMap(android.util.ArrayMap) Comparator(java.util.Comparator) IUsageStatsManager(android.app.usage.IUsageStatsManager) RemoteException(android.os.RemoteException)

Example 8 with ConfigurationStats

use of android.app.usage.ConfigurationStats in project android_frameworks_base by crdroidandroid.

the class UserUsageStatsService method printIntervalStats.

void printIntervalStats(IndentingPrintWriter pw, IntervalStats stats, boolean prettyDates) {
    if (prettyDates) {
        pw.printPair("timeRange", "\"" + DateUtils.formatDateRange(mContext, stats.beginTime, stats.endTime, sDateFormatFlags) + "\"");
    } else {
        pw.printPair("beginTime", stats.beginTime);
        pw.printPair("endTime", stats.endTime);
    }
    pw.println();
    pw.increaseIndent();
    pw.println("packages");
    pw.increaseIndent();
    final ArrayMap<String, UsageStats> pkgStats = stats.packageStats;
    final int pkgCount = pkgStats.size();
    for (int i = 0; i < pkgCount; i++) {
        final UsageStats usageStats = pkgStats.valueAt(i);
        pw.printPair("package", usageStats.mPackageName);
        pw.printPair("totalTime", formatElapsedTime(usageStats.mTotalTimeInForeground, prettyDates));
        pw.printPair("lastTime", formatDateTime(usageStats.mLastTimeUsed, prettyDates));
        pw.println();
    }
    pw.decreaseIndent();
    pw.println("configurations");
    pw.increaseIndent();
    final ArrayMap<Configuration, ConfigurationStats> configStats = stats.configurations;
    final int configCount = configStats.size();
    for (int i = 0; i < configCount; i++) {
        final ConfigurationStats config = configStats.valueAt(i);
        pw.printPair("config", Configuration.resourceQualifierString(config.mConfiguration));
        pw.printPair("totalTime", formatElapsedTime(config.mTotalTimeActive, prettyDates));
        pw.printPair("lastTime", formatDateTime(config.mLastTimeActive, prettyDates));
        pw.printPair("count", config.mActivationCount);
        pw.println();
    }
    pw.decreaseIndent();
    pw.println("events");
    pw.increaseIndent();
    final TimeSparseArray<UsageEvents.Event> events = stats.events;
    final int eventCount = events != null ? events.size() : 0;
    for (int i = 0; i < eventCount; i++) {
        final UsageEvents.Event event = events.valueAt(i);
        pw.printPair("time", formatDateTime(event.mTimeStamp, prettyDates));
        pw.printPair("type", eventToString(event.mEventType));
        pw.printPair("package", event.mPackage);
        if (event.mClass != null) {
            pw.printPair("class", event.mClass);
        }
        if (event.mConfiguration != null) {
            pw.printPair("config", Configuration.resourceQualifierString(event.mConfiguration));
        }
        if (event.mShortcutId != null) {
            pw.printPair("shortcutId", event.mShortcutId);
        }
        pw.println();
    }
    pw.decreaseIndent();
    pw.decreaseIndent();
}
Also used : ConfigurationStats(android.app.usage.ConfigurationStats) Configuration(android.content.res.Configuration) Event(android.app.usage.UsageEvents.Event) Event(android.app.usage.UsageEvents.Event) UsageStats(android.app.usage.UsageStats) UsageEvents(android.app.usage.UsageEvents)

Example 9 with ConfigurationStats

use of android.app.usage.ConfigurationStats in project android_frameworks_base by crdroidandroid.

the class UsageStatsXmlV1 method loadConfigStats.

private static void loadConfigStats(XmlPullParser parser, IntervalStats statsOut) throws XmlPullParserException, IOException {
    final Configuration config = new Configuration();
    Configuration.readXmlAttrs(parser, config);
    final ConfigurationStats configStats = statsOut.getOrCreateConfigurationStats(config);
    // Apply the offset to the beginTime to find the absolute time.
    configStats.mLastTimeActive = statsOut.beginTime + XmlUtils.readLongAttribute(parser, LAST_TIME_ACTIVE_ATTR);
    configStats.mTotalTimeActive = XmlUtils.readLongAttribute(parser, TOTAL_TIME_ACTIVE_ATTR);
    configStats.mActivationCount = XmlUtils.readIntAttribute(parser, COUNT_ATTR);
    if (XmlUtils.readBooleanAttribute(parser, ACTIVE_ATTR)) {
        statsOut.activeConfiguration = configStats.mConfiguration;
    }
}
Also used : ConfigurationStats(android.app.usage.ConfigurationStats) Configuration(android.content.res.Configuration)

Example 10 with ConfigurationStats

use of android.app.usage.ConfigurationStats in project platform_frameworks_base by android.

the class IntervalStats method updateConfigurationStats.

void updateConfigurationStats(Configuration config, long timeStamp) {
    if (activeConfiguration != null) {
        ConfigurationStats activeStats = configurations.get(activeConfiguration);
        activeStats.mTotalTimeActive += timeStamp - activeStats.mLastTimeActive;
        activeStats.mLastTimeActive = timeStamp - 1;
    }
    if (config != null) {
        ConfigurationStats configStats = getOrCreateConfigurationStats(config);
        configStats.mLastTimeActive = timeStamp;
        configStats.mActivationCount += 1;
        activeConfiguration = configStats.mConfiguration;
    }
    endTime = timeStamp;
}
Also used : ConfigurationStats(android.app.usage.ConfigurationStats)

Aggregations

ConfigurationStats (android.app.usage.ConfigurationStats)21 Configuration (android.content.res.Configuration)13 IUsageStatsManager (android.app.usage.IUsageStatsManager)5 RemoteException (android.os.RemoteException)5 ArrayMap (android.util.ArrayMap)5 ArrayList (java.util.ArrayList)5 Comparator (java.util.Comparator)5 UsageEvents (android.app.usage.UsageEvents)4 Event (android.app.usage.UsageEvents.Event)4 UsageStats (android.app.usage.UsageStats)4