Merge "Add divider line below "see all apps" preference" into oc-dr1-dev
diff --git a/res/xml/app_and_notification.xml b/res/xml/app_and_notification.xml
index 47fc378..4a5ee1d 100644
--- a/res/xml/app_and_notification.xml
+++ b/res/xml/app_and_notification.xml
@@ -40,6 +40,11 @@
         </Preference>
     </PreferenceCategory>
 
+    <!-- Empty category to draw divider -->
+    <PreferenceCategory
+        android:key="all_app_info_divider"
+        android:order="-190"/>
+
     <Preference
         android:key="manage_perms"
         android:title="@string/app_permissions"
diff --git a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
index df1430c..e0fc2b0 100644
--- a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
+++ b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
@@ -50,7 +50,7 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        mProgressiveDisclosureMixin.setTileLimit(3);
+        mProgressiveDisclosureMixin.setTileLimit(4);
     }
 
     @Override
diff --git a/src/com/android/settings/applications/RecentAppsPreferenceController.java b/src/com/android/settings/applications/RecentAppsPreferenceController.java
index f540832..dd95605 100644
--- a/src/com/android/settings/applications/RecentAppsPreferenceController.java
+++ b/src/com/android/settings/applications/RecentAppsPreferenceController.java
@@ -62,6 +62,8 @@
     private static final String TAG = "RecentAppsCtrl";
     private static final String KEY_PREF_CATEGORY = "recent_apps_category";
     @VisibleForTesting
+    static final String KEY_DIVIDER = "all_app_info_divider";
+    @VisibleForTesting
     static final String KEY_SEE_ALL = "all_app_info";
     private static final int SHOW_RECENT_APP_COUNT = 5;
     private static final Set<String> SKIP_SYSTEM_PACKAGES = new ArraySet<>();
@@ -78,6 +80,7 @@
 
     private PreferenceCategory mCategory;
     private Preference mSeeAllPref;
+    private Preference mDivider;
     private boolean mHasRecentApps;
 
     static {
@@ -122,12 +125,14 @@
         super.updateNonIndexableKeys(keys);
         // Don't index category name into search. It's not actionable.
         keys.add(KEY_PREF_CATEGORY);
+        keys.add(KEY_DIVIDER);
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
         mCategory = (PreferenceCategory) screen.findPreference(getPreferenceKey());
         mSeeAllPref = screen.findPreference(KEY_SEE_ALL);
+        mDivider = screen.findPreference(KEY_DIVIDER);
         super.displayPreference(screen);
         refreshUi(mCategory.getContext());
     }
@@ -181,6 +186,7 @@
 
     private void displayOnlyAppInfo() {
         mCategory.setTitle(null);
+        mDivider.setVisible(false);
         mSeeAllPref.setTitle(R.string.applications_settings);
         mSeeAllPref.setIcon(null);
         int prefCount = mCategory.getPreferenceCount();
@@ -194,6 +200,7 @@
 
     private void displayRecentApps(Context prefContext, List<UsageStats> recentApps) {
         mCategory.setTitle(R.string.recent_app_category_title);
+        mDivider.setVisible(true);
         mSeeAllPref.setSummary(null);
         mSeeAllPref.setIcon(R.drawable.ic_chevron_right_24dp);
 
diff --git a/tests/robotests/src/com/android/settings/applications/RecentAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/RecentAppsPreferenceControllerTest.java
index c89fff8..4403991 100644
--- a/tests/robotests/src/com/android/settings/applications/RecentAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/RecentAppsPreferenceControllerTest.java
@@ -72,6 +72,8 @@
     private PreferenceCategory mCategory;
     @Mock
     private Preference mSeeAllPref;
+    @Mock
+    private PreferenceCategory mDivider;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mMockContext;
     @Mock
@@ -98,6 +100,8 @@
 
         when(mScreen.findPreference(RecentAppsPreferenceController.KEY_SEE_ALL))
                 .thenReturn(mSeeAllPref);
+        when(mScreen.findPreference(RecentAppsPreferenceController.KEY_DIVIDER))
+                .thenReturn(mDivider);
         when(mCategory.getContext()).thenReturn(mContext);
     }
 
@@ -112,7 +116,8 @@
 
         mController.updateNonIndexableKeys(nonIndexable);
 
-        assertThat(nonIndexable).containsExactly(mController.getPreferenceKey());
+        assertThat(nonIndexable).containsAllOf(mController.getPreferenceKey(),
+                RecentAppsPreferenceController.KEY_DIVIDER);
     }
 
     @Test
@@ -140,6 +145,7 @@
         verify(mCategory).setTitle(null);
         verify(mSeeAllPref).setTitle(R.string.applications_settings);
         verify(mSeeAllPref).setIcon(null);
+        verify(mDivider).setVisible(false);
     }
 
     @Test
@@ -186,6 +192,7 @@
 
         verify(mSeeAllPref).setSummary(null);
         verify(mSeeAllPref).setIcon(R.drawable.ic_chevron_right_24dp);
+        verify(mDivider).setVisible(true);
     }
 
     @Test