Workaround: don't migrate grid when hotseat size or device type changes in multi display
Bug: 198965093 Test: manual Change-Id: I804ec854b98d27717c32723028f892ca2556d327
This commit is contained in:
@@ -24,6 +24,7 @@ import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCH
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.IntDef;
|
import androidx.annotation.IntDef;
|
||||||
|
|
||||||
@@ -134,8 +135,17 @@ public class DeviceGridState {
|
|||||||
public boolean isCompatible(DeviceGridState other) {
|
public boolean isCompatible(DeviceGridState other) {
|
||||||
if (this == other) return true;
|
if (this == other) return true;
|
||||||
if (other == null) return false;
|
if (other == null) return false;
|
||||||
return mNumHotseat == other.mNumHotseat
|
boolean isCompatible = mNumHotseat == other.mNumHotseat
|
||||||
&& deviceTypeCompatible(mDeviceType, other.mDeviceType)
|
&& deviceTypeCompatible(mDeviceType, other.mDeviceType)
|
||||||
&& Objects.equals(mGridSizeString, other.mGridSizeString);
|
&& Objects.equals(mGridSizeString, other.mGridSizeString);
|
||||||
|
// TODO(b/198965093): Temporary fix for multi-display devices, ignore hotseat size changes
|
||||||
|
// and type compatibility.
|
||||||
|
if ((mDeviceType == TYPE_MULTI_DISPLAY || other.mDeviceType == TYPE_MULTI_DISPLAY)
|
||||||
|
&& !isCompatible && Objects.equals(mGridSizeString, other.mGridSizeString)) {
|
||||||
|
Log.d("b/198965093", "Hotseat and deice type compatibility ignored: " + this
|
||||||
|
+ ", other: " + other);
|
||||||
|
isCompatible = true;
|
||||||
|
}
|
||||||
|
return isCompatible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,9 +106,11 @@ public class GridSizeMigrationTaskV2 {
|
|||||||
DeviceGridState idpGridState = new DeviceGridState(idp);
|
DeviceGridState idpGridState = new DeviceGridState(idp);
|
||||||
DeviceGridState contextGridState = new DeviceGridState(context);
|
DeviceGridState contextGridState = new DeviceGridState(context);
|
||||||
boolean needsToMigrate = !idpGridState.isCompatible(contextGridState);
|
boolean needsToMigrate = !idpGridState.isCompatible(contextGridState);
|
||||||
// TODO: Revert this change after b/200010396 is fixed
|
// TODO(b/198965093): Revert this change after bug is fixed
|
||||||
Log.d(TAG, "Migration is needed. idpGridState: " + idpGridState
|
if (needsToMigrate) {
|
||||||
+ ", contextGridState: " + contextGridState);
|
Log.d("b/198965093", "Migration is needed. idpGridState: " + idpGridState
|
||||||
|
+ ", contextGridState: " + contextGridState);
|
||||||
|
}
|
||||||
return needsToMigrate;
|
return needsToMigrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user