diff --git a/src/com/android/settings/applications/HibernatedAppsPreferenceController.java b/src/com/android/settings/applications/HibernatedAppsPreferenceController.java
index bf12b86..898d709 100644
--- a/src/com/android/settings/applications/HibernatedAppsPreferenceController.java
+++ b/src/com/android/settings/applications/HibernatedAppsPreferenceController.java
@@ -61,6 +61,7 @@
     private PreferenceScreen mScreen;
     private int mUnusedCount = 0;
     private boolean mLoadingUnusedApps;
+    private boolean mLoadedUnusedCount;
     private final Executor mBackgroundExecutor;
     private final Executor mMainExecutor;
 
@@ -79,14 +80,15 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return isHibernationEnabled() && mUnusedCount > 0
-                ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+        return isHibernationEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
     public CharSequence getSummary() {
-        return mContext.getResources().getQuantityString(
-                R.plurals.unused_apps_summary, mUnusedCount, mUnusedCount);
+        return mLoadedUnusedCount
+                ? mContext.getResources().getQuantityString(
+                        R.plurals.unused_apps_summary, mUnusedCount, mUnusedCount)
+                : mContext.getResources().getString(R.string.summary_placeholder);
     }
 
     @Override
@@ -111,8 +113,8 @@
             loadUnusedCount(unusedCount -> {
                 mUnusedCount = unusedCount;
                 mLoadingUnusedApps = false;
+                mLoadedUnusedCount = true;
                 mMainExecutor.execute(() -> {
-                    super.displayPreference(mScreen);
                     Preference pref = mScreen.findPreference(mPreferenceKey);
                     refreshSummary(pref);
                 });
