Change the logic for showing "App info" vs "show more"

Fix: 33265548
Test: robotests

The old logic shows "show more" when there is any recent app, new logic
first checks if there is any displayable recent app. Otherwise go back
to display "app info".

Change-Id: I485725eaa025b9e2cfffc5e9e1923aa771bb0e12
This commit is contained in:
Fan Zhang
2017-05-04 17:13:21 -07:00
parent 5c5830f865
commit daad10b428
3 changed files with 38 additions and 37 deletions

View File

@@ -124,30 +124,6 @@ public class RecentAppsPreferenceControllerTest {
verify(mController, times(2)).refreshUi(mContext);
}
@Test
public void configOff_shouldNotDisplayRecentApps() {
mController = new RecentAppsPreferenceController(mMockContext, (Application) null, null);
when(mMockContext.getResources().getBoolean(R.bool.config_display_recent_apps))
.thenReturn(false);
assertThat(mController.shouldDisplayRecentApps()).isFalse();
}
@Test
public void configOn_shouldDisplayRecentAppsWhenHaveData() {
final List<UsageStats> stats = new ArrayList<>();
stats.add(mock(UsageStats.class));
when(mMockContext.getResources().getBoolean(R.bool.config_display_recent_apps))
.thenReturn(true);
when(mUsageStatsManager.queryUsageStats(anyInt(), anyLong(), anyLong()))
.thenReturn(stats);
mController = new RecentAppsPreferenceController(mMockContext, mAppState, null);
mController.reloadData();
assertThat(mController.shouldDisplayRecentApps()).isTrue();
}
@Test
public void display_shouldNotShowRecents_showAppInfoPreference() {
mController = new RecentAppsPreferenceController(mMockContext, mAppState, null);
@@ -206,4 +182,37 @@ public class RecentAppsPreferenceControllerTest {
verify(mSeeAllPref).setIcon(R.drawable.ic_chevron_right_24dp);
}
@Test
public void display_hasRecentButNoneDisplayable_showAppInfo() {
when(mMockContext.getResources().getBoolean(R.bool.config_display_recent_apps))
.thenReturn(true);
final List<UsageStats> stats = new ArrayList<>();
final UsageStats stat1 = new UsageStats();
final UsageStats stat2 = new UsageStats();
stat1.mLastTimeUsed = System.currentTimeMillis();
stat1.mPackageName = "com.android.phone";
stats.add(stat1);
stat2.mLastTimeUsed = System.currentTimeMillis();
stat2.mPackageName = "com.android.settings";
stats.add(stat2);
// stat1, stat2 are not displayable
when(mAppState.getEntry(stat1.mPackageName, UserHandle.myUserId()))
.thenReturn(mock(ApplicationsState.AppEntry.class));
when(mAppState.getEntry(stat2.mPackageName, UserHandle.myUserId()))
.thenReturn(mock(ApplicationsState.AppEntry.class));
when(mMockContext.getPackageManager().resolveActivity(any(Intent.class), anyInt()))
.thenReturn(new ResolveInfo());
when(mUsageStatsManager.queryUsageStats(anyInt(), anyLong(), anyLong()))
.thenReturn(stats);
mController = new RecentAppsPreferenceController(mMockContext, mAppState, null);
mController.displayPreference(mScreen);
verify(mCategory, never()).addPreference(any(Preference.class));
verify(mCategory).setTitle(null);
verify(mSeeAllPref).setTitle(R.string.applications_settings);
verify(mSeeAllPref).setIcon(null);
}
}