Search in sources :

Example 86 with UsageStats

use of android.app.usage.UsageStats in project MusicLake by caiyonglong.

the class FloatLyricViewManager method getProcessNew.

// API 21 and above
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private String getProcessNew() throws Exception {
    UsageStatsManager mUsageStatsManager = (UsageStatsManager) MusicApp.getAppContext().getSystemService(Context.USAGE_STATS_SERVICE);
    long time = System.currentTimeMillis();
    // We get usage stats for the last 10 seconds
    List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 5, time);
    if (stats != null) {
        SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
        for (UsageStats usageStats : stats) {
            mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
        }
        if (!mySortedMap.isEmpty()) {
            topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
            Log.e("TopPackage Name", topPackageName);
        }
    }
    return topPackageName;
}
Also used : UsageStatsManager(android.app.usage.UsageStatsManager) UsageStats(android.app.usage.UsageStats) TreeMap(java.util.TreeMap) RequiresApi(android.support.annotation.RequiresApi)

Example 87 with UsageStats

use of android.app.usage.UsageStats in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class RecentAppsPreferenceControllerTest method onReloadDataCompleted_threeValidRecentOpenAppsSet_setAppEntityThreeTime.

@Test
public void onReloadDataCompleted_threeValidRecentOpenAppsSet_setAppEntityThreeTime() {
    final List<UsageStats> stats = new ArrayList<>();
    final UsageStats stat1 = new UsageStats();
    final UsageStats stat2 = new UsageStats();
    final UsageStats stat3 = new UsageStats();
    stat1.mLastTimeUsed = System.currentTimeMillis();
    stat1.mPackageName = "pkg.class";
    stats.add(stat1);
    stat2.mLastTimeUsed = System.currentTimeMillis();
    stat2.mPackageName = "pkg.class2";
    stats.add(stat2);
    stat3.mLastTimeUsed = System.currentTimeMillis();
    stat3.mPackageName = "pkg.class3";
    stats.add(stat3);
    when(mAppState.getEntry(stat1.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mAppState.getEntry(stat2.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mAppState.getEntry(stat3.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    mAppEntry.info = mApplicationInfo;
    mController.onReloadDataCompleted(stats);
    verify(mController.mAppEntitiesController, times(3)).setAppEntity(anyInt(), any(AppEntityInfo.class));
    assertThat(mController.mRecentAppsPreference.isVisible()).isTrue();
    assertThat(mController.mDivider.isVisible()).isTrue();
}
Also used : AppEntityInfo(com.android.settingslib.widget.AppEntityInfo) ArrayList(java.util.ArrayList) UsageStats(android.app.usage.UsageStats) Test(org.junit.Test)

Example 88 with UsageStats

use of android.app.usage.UsageStats in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class RecentAppStatsMixinTest method loadDisplayableRecentApps_threeValidRecentAppsSet_shouldHaveThreeRecentApps.

@Test
public void loadDisplayableRecentApps_threeValidRecentAppsSet_shouldHaveThreeRecentApps() {
    final List<UsageStats> stats = new ArrayList<>();
    final UsageStats stat1 = new UsageStats();
    final UsageStats stat2 = new UsageStats();
    final UsageStats stat3 = new UsageStats();
    stat1.mLastTimeUsed = System.currentTimeMillis();
    stat1.mPackageName = "pkg.class";
    stats.add(stat1);
    stat2.mLastTimeUsed = System.currentTimeMillis();
    stat2.mPackageName = "pkg.class2";
    stats.add(stat2);
    stat3.mLastTimeUsed = System.currentTimeMillis();
    stat3.mPackageName = "pkg.class3";
    stats.add(stat3);
    when(mAppState.getEntry(stat1.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mAppState.getEntry(stat2.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mAppState.getEntry(stat3.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn(new ResolveInfo());
    when(mUsageStatsManager.queryUsageStats(anyInt(), anyLong(), anyLong())).thenReturn(stats);
    mAppEntry.info = mApplicationInfo;
    mRecentAppStatsMixin.loadDisplayableRecentApps(3);
    assertThat(mRecentAppStatsMixin.mRecentApps.size()).isEqualTo(3);
}
Also used : ResolveInfo(android.content.pm.ResolveInfo) ArrayList(java.util.ArrayList) Intent(android.content.Intent) UsageStats(android.app.usage.UsageStats) Test(org.junit.Test)

Example 89 with UsageStats

use of android.app.usage.UsageStats in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class RecentAppStatsMixinTest method loadDisplayableRecentApps_oneValidAndTwoInvalidSet_shouldHaveOneRecentApp.

@Test
public void loadDisplayableRecentApps_oneValidAndTwoInvalidSet_shouldHaveOneRecentApp() {
    final List<UsageStats> stats = new ArrayList<>();
    final UsageStats stat1 = new UsageStats();
    final UsageStats stat2 = new UsageStats();
    final UsageStats stat3 = new UsageStats();
    stat1.mLastTimeUsed = System.currentTimeMillis();
    stat1.mPackageName = "pkg.class";
    stats.add(stat1);
    stat2.mLastTimeUsed = System.currentTimeMillis();
    stat2.mPackageName = "com.android.settings";
    stats.add(stat2);
    stat3.mLastTimeUsed = System.currentTimeMillis();
    stat3.mPackageName = "pkg.class3";
    stats.add(stat3);
    // stat1, stat2 are valid apps. stat3 is invalid.
    when(mAppState.getEntry(stat1.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mAppState.getEntry(stat2.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mAppState.getEntry(stat3.mPackageName, UserHandle.myUserId())).thenReturn(null);
    when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn(new ResolveInfo());
    when(mUsageStatsManager.queryUsageStats(anyInt(), anyLong(), anyLong())).thenReturn(stats);
    mAppEntry.info = mApplicationInfo;
    mRecentAppStatsMixin.loadDisplayableRecentApps(3);
    // Only stat1. stat2 is skipped because of the package name, stat3 skipped because
    // it's invalid app.
    assertThat(mRecentAppStatsMixin.mRecentApps.size()).isEqualTo(1);
}
Also used : ResolveInfo(android.content.pm.ResolveInfo) ArrayList(java.util.ArrayList) Intent(android.content.Intent) UsageStats(android.app.usage.UsageStats) Test(org.junit.Test)

Example 90 with UsageStats

use of android.app.usage.UsageStats in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class RecentAppStatsMixinTest method loadDisplayableRecentApps_powerSaverModeOn_shouldHaveEmptyList.

@Test
public void loadDisplayableRecentApps_powerSaverModeOn_shouldHaveEmptyList() {
    when(mPowerManager.isPowerSaveMode()).thenReturn(true);
    final List<UsageStats> stats = new ArrayList<>();
    final UsageStats stat1 = new UsageStats();
    stat1.mLastTimeUsed = System.currentTimeMillis();
    stat1.mPackageName = "pkg.class";
    stats.add(stat1);
    // stat1, stat2 are valid apps. stat3 is invalid.
    when(mAppState.getEntry(stat1.mPackageName, UserHandle.myUserId())).thenReturn(mAppEntry);
    when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn(new ResolveInfo());
    when(mUsageStatsManager.queryUsageStats(anyInt(), anyLong(), anyLong())).thenReturn(stats);
    mAppEntry.info = mApplicationInfo;
    mRecentAppStatsMixin.loadDisplayableRecentApps(3);
    assertThat(mRecentAppStatsMixin.mRecentApps).isEmpty();
}
Also used : ResolveInfo(android.content.pm.ResolveInfo) ArrayList(java.util.ArrayList) Intent(android.content.Intent) UsageStats(android.app.usage.UsageStats) Test(org.junit.Test)

Aggregations

UsageStats (android.app.usage.UsageStats)98 ArrayList (java.util.ArrayList)45 Test (org.junit.Test)38 Intent (android.content.Intent)35 ResolveInfo (android.content.pm.ResolveInfo)33 Configuration (android.content.res.Configuration)20 ApplicationsState (com.android.settingslib.applications.ApplicationsState)19 Preference (android.support.v7.preference.Preference)18 ArrayMap (android.util.ArrayMap)16 UsageStatsManager (android.app.usage.UsageStatsManager)13 ApplicationInfo (android.content.pm.ApplicationInfo)7 PackageManager (android.content.pm.PackageManager)6 ActivityManager (android.app.ActivityManager)5 AppOpsManager (android.app.AppOpsManager)5 ResolvedComponentInfo (com.android.internal.app.ResolverActivity.ResolvedComponentInfo)5 TargetApi (android.annotation.TargetApi)4 ConfigurationStats (android.app.usage.ConfigurationStats)4 UsageEvents (android.app.usage.UsageEvents)4 Event (android.app.usage.UsageEvents.Event)4 ArraySet (android.util.ArraySet)4