Set display size to all displays

Bug: 197730930

Test: Open Settings, go to Display -> Display size and text -> Display size, change the value, fold/unfold the device, see that the value persists.
Test: DisplaySizeDataTest
Test: atest ScreenResolutionFragmentTest
Test: ScreenZoomSettingsTest
Change-Id: I3d6858a9b20798c2ad3b12a66db3484491682691
Merged-In: I3d6858a9b20798c2ad3b12a66db3484491682691
diff --git a/src/com/android/settings/accessibility/DisplaySizeData.java b/src/com/android/settings/accessibility/DisplaySizeData.java
index 42a8c46..77ae897 100644
--- a/src/com/android/settings/accessibility/DisplaySizeData.java
+++ b/src/com/android/settings/accessibility/DisplaySizeData.java
@@ -18,9 +18,7 @@
 
 import android.content.Context;
 import android.content.res.Resources;
-import android.view.Display;
 
-import com.android.settingslib.display.DisplayDensityConfiguration;
 import com.android.settingslib.display.DisplayDensityUtils;
 
 import java.util.Arrays;
@@ -31,11 +29,13 @@
  * Data class for storing the configurations related to the display size.
  */
 class DisplaySizeData extends PreviewSizeData<Integer> {
+    private final DisplayDensityUtils mDensity;
+
     DisplaySizeData(Context context) {
         super(context);
 
-        final DisplayDensityUtils density = new DisplayDensityUtils(getContext());
-        final int initialIndex = density.getCurrentIndex();
+        mDensity = new DisplayDensityUtils(getContext());
+        final int initialIndex = mDensity.getCurrentIndexForDefaultDisplay();
         if (initialIndex < 0) {
             // Failed to obtain default density, which means we failed to
             // connect to the window manager service. Just use the current
@@ -46,9 +46,10 @@
             setInitialIndex(0);
             setValues(Collections.singletonList(densityDpi));
         } else {
-            setDefaultValue(density.getDefaultDensity());
+            setDefaultValue(mDensity.getDefaultDensityForDefaultDisplay());
             setInitialIndex(initialIndex);
-            setValues(Arrays.stream(density.getValues()).boxed().collect(Collectors.toList()));
+            setValues(Arrays.stream(mDensity.getDefaultDisplayDensityValues()).boxed()
+                    .collect(Collectors.toList()));
         }
     }
 
@@ -56,10 +57,9 @@
     void commit(int currentProgress) {
         final int densityDpi = getValues().get(currentProgress);
         if (densityDpi == getDefaultValue()) {
-            DisplayDensityConfiguration.clearForcedDisplayDensity(Display.DEFAULT_DISPLAY);
+            mDensity.clearForcedDisplayDensity();
         } else {
-            DisplayDensityConfiguration.setForcedDisplayDensity(Display.DEFAULT_DISPLAY,
-                    densityDpi);
+            mDensity.setForcedDisplayDensity(currentProgress);
         }
     }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 2eadc33..439fd9a 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -191,9 +191,10 @@
     @VisibleForTesting
     protected boolean shouldShowLottie() {
         DisplayDensityUtils displayDensity = new DisplayDensityUtils(getApplicationContext());
-        int currentDensityIndex = displayDensity.getCurrentIndex();
-        final int currentDensity = displayDensity.getValues()[currentDensityIndex];
-        final int defaultDensity = displayDensity.getDefaultDensity();
+        int currentDensityIndex = displayDensity.getCurrentIndexForDefaultDisplay();
+        final int currentDensity = displayDensity.getDefaultDisplayDensityValues()
+                [currentDensityIndex];
+        final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay();
         return defaultDensity == currentDensity;
     }
 
diff --git a/src/com/android/settings/display/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java
index 7c4b3ae..9a61595 100644
--- a/src/com/android/settings/display/ScreenResolutionFragment.java
+++ b/src/com/android/settings/display/ScreenResolutionFragment.java
@@ -307,10 +307,11 @@
             }
 
             final DisplayDensityUtils density = new DisplayDensityUtils(mContext);
-            final int currentIndex = density.getCurrentIndex();
-            final int defaultDensity = density.getDefaultDensity();
+            final int currentIndex = density.getCurrentIndexForDefaultDisplay();
+            final int defaultDensity = density.getDefaultDensityForDefaultDisplay();
 
-            if (density.getValues()[mCurrentIndex] == density.getDefaultDensity()) {
+            if (density.getDefaultDisplayDensityValues()[mCurrentIndex]
+                    == density.getDefaultDensityForDefaultDisplay()) {
                 return;
             }
 
@@ -351,17 +352,17 @@
 
         private void restoreDensity() {
             final DisplayDensityUtils density = new DisplayDensityUtils(mContext);
-            if (density.getValues()[mCurrentIndex] != density.getDefaultDensity()) {
-                DisplayDensityUtils.setForcedDisplayDensity(
-                        Display.DEFAULT_DISPLAY, density.getValues()[mCurrentIndex]);
+            if (density.getDefaultDisplayDensityValues()[mCurrentIndex]
+                    != density.getDefaultDensityForDefaultDisplay()) {
+                density.setForcedDisplayDensity(mCurrentIndex);
             }
 
-            mDefaultDensity = density.getDefaultDensity();
+            mDefaultDensity = density.getDefaultDensityForDefaultDisplay();
         }
 
         private boolean isDensityChanged() {
             final DisplayDensityUtils density = new DisplayDensityUtils(mContext);
-            if (density.getDefaultDensity() == mDefaultDensity) {
+            if (density.getDefaultDensityForDefaultDisplay() == mDefaultDensity) {
                 return false;
             }
 
diff --git a/src/com/android/settings/display/ScreenZoomPreference.java b/src/com/android/settings/display/ScreenZoomPreference.java
index f47d7da..af77a0e 100644
--- a/src/com/android/settings/display/ScreenZoomPreference.java
+++ b/src/com/android/settings/display/ScreenZoomPreference.java
@@ -36,13 +36,13 @@
                 android.R.attr.preferenceStyle));
 
         final DisplayDensityUtils density = new DisplayDensityUtils(context);
-        final int defaultIndex = density.getCurrentIndex();
+        final int defaultIndex = density.getCurrentIndexForDefaultDisplay();
         if (defaultIndex < 0) {
             setVisible(false);
             setEnabled(false);
         } else if (TextUtils.isEmpty(getSummary())) {
-            final String[] entries = density.getEntries();
-            final int currentIndex = density.getCurrentIndex();
+            final String[] entries = density.getDefaultDisplayDensityEntries();
+            final int currentIndex = density.getCurrentIndexForDefaultDisplay();
             setSummary(entries[currentIndex]);
         }
     }
diff --git a/src/com/android/settings/display/ScreenZoomSettings.java b/src/com/android/settings/display/ScreenZoomSettings.java
index 4c46f01..ac10664 100644
--- a/src/com/android/settings/display/ScreenZoomSettings.java
+++ b/src/com/android/settings/display/ScreenZoomSettings.java
@@ -21,11 +21,9 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.os.Bundle;
-import android.view.Display;
 
 import com.android.settings.R;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.display.DisplayDensityConfiguration;
 import com.android.settingslib.display.DisplayDensityUtils;
 import com.android.settingslib.search.SearchIndexable;
 
@@ -37,6 +35,7 @@
 
     private int mDefaultDensity;
     private int[] mValues;
+    private DisplayDensityUtils mDensity;
 
     @Override
     protected int getActivityLayoutResId() {
@@ -58,9 +57,9 @@
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        final DisplayDensityUtils density = new DisplayDensityUtils(getContext());
+        mDensity = new DisplayDensityUtils(getContext());
 
-        final int initialIndex = density.getCurrentIndex();
+        final int initialIndex = mDensity.getCurrentIndexForDefaultDisplay();
         if (initialIndex < 0) {
             // Failed to obtain default density, which means we failed to
             // connect to the window manager service. Just use the current
@@ -71,10 +70,10 @@
             mInitialIndex = 0;
             mDefaultDensity = densityDpi;
         } else {
-            mValues = density.getValues();
-            mEntries = density.getEntries();
+            mValues = mDensity.getDefaultDisplayDensityValues();
+            mEntries = mDensity.getDefaultDisplayDensityEntries();
             mInitialIndex = initialIndex;
-            mDefaultDensity = density.getDefaultDensity();
+            mDefaultDensity = mDensity.getDefaultDensityForDefaultDisplay();
         }
 
         getActivity().setTitle(R.string.screen_zoom_title);
@@ -95,9 +94,9 @@
     protected void commit() {
         final int densityDpi = mValues[mCurrentIndex];
         if (densityDpi == mDefaultDensity) {
-            DisplayDensityConfiguration.clearForcedDisplayDensity(Display.DEFAULT_DISPLAY);
+            mDensity.clearForcedDisplayDensity();
         } else {
-            DisplayDensityConfiguration.setForcedDisplayDensity(Display.DEFAULT_DISPLAY, densityDpi);
+            mDensity.setForcedDisplayDensity(densityDpi);
         }
     }