Do not reload launcher when changing active display
> Updating IDP to use fixed bitmap sizes, so that the cache
stays valid
> Caching last known windowMetrices for non-active displays and
using estimation only when the cache is not available
> Only reloading model if IDP change could have affected the model
> Remove unnecessary listeners from IDP which are already controlled by
model lifecycle
Bug: 191657065
Test: Manual
Change-Id: Ia8e6dfafd0977e62aa3fcf367ad79f7a49b2df51
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 6ea7b17..3754dc1 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -558,7 +558,7 @@
public void onConfigurationChanged(Configuration newConfig) {
int diff = newConfig.diff(mOldConfig);
if ((diff & (CONFIG_ORIENTATION | CONFIG_SCREEN_SIZE)) != 0) {
- onIdpChanged(mDeviceProfile.inv);
+ onIdpChanged(false);
}
mOldConfig.setTo(newConfig);
@@ -566,8 +566,8 @@
}
@Override
- public void onIdpChanged(InvariantDeviceProfile idp) {
- initDeviceProfile(idp);
+ public void onIdpChanged(boolean modelPropertiesChanged) {
+ initDeviceProfile(mDeviceProfile.inv);
dispatchDeviceProfileChanged();
reapplyUi();
mDragLayer.recreateControllers();