Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e35ef91c authored by Alex Chau's avatar Alex Chau
Browse files

Workaround: don't migrate grid when hotseat size or device type changes in multi display

Bug: 198965093
Test: manual
Change-Id: I804ec854b98d27717c32723028f892ca2556d327
parent 5b4934f0
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -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;
    }
    }
}
}
+5 −3
Original line number Original line Diff line number Diff line
@@ -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) {
            Log.d("b/198965093", "Migration is needed. idpGridState: " + idpGridState
                    + ", contextGridState: " + contextGridState);
                    + ", contextGridState: " + contextGridState);
        }
        return needsToMigrate;
        return needsToMigrate;
    }
    }