mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 17:36:49 +00:00
Prevents a ConcurrentModificationException in Widget
InvariantDeviceProfile.supportedProfiles can be modified in respect to configuration changes. This CL ensures the list was cloned before access to prevent ConcurrentModificationException Bug: 191231591 Test: manual Change-Id: I123458dcfe99af4babca2cf73733e3d2af0fad3c
This commit is contained in:
@@ -140,7 +140,10 @@ public class InvariantDeviceProfile {
|
||||
public int defaultLayoutId;
|
||||
int demoModeLayoutId;
|
||||
|
||||
public final List<DeviceProfile> supportedProfiles = new ArrayList<>();
|
||||
/**
|
||||
* An immutable list of supported profiles.
|
||||
*/
|
||||
public List<DeviceProfile> supportedProfiles = Collections.EMPTY_LIST;
|
||||
|
||||
@Nullable public DevicePaddings devicePaddings;
|
||||
|
||||
@@ -322,10 +325,10 @@ public class InvariantDeviceProfile {
|
||||
// Supported overrides: numRows, numColumns, iconSize
|
||||
applyPartnerDeviceProfileOverrides(context, metrics);
|
||||
|
||||
supportedProfiles.clear();
|
||||
final List<DeviceProfile> localSupportedProfiles = new ArrayList<>();
|
||||
defaultWallpaperSize = new Point(displayInfo.currentSize);
|
||||
for (WindowBounds bounds : displayInfo.supportedBounds) {
|
||||
supportedProfiles.add(new DeviceProfile.Builder(context, this, displayInfo)
|
||||
localSupportedProfiles.add(new DeviceProfile.Builder(context, this, displayInfo)
|
||||
.setUseTwoPanels(isSplitDisplay)
|
||||
.setWindowBounds(bounds).build());
|
||||
|
||||
@@ -343,6 +346,7 @@ public class InvariantDeviceProfile {
|
||||
defaultWallpaperSize.x =
|
||||
Math.max(defaultWallpaperSize.x, Math.round(parallaxFactor * displayWidth));
|
||||
}
|
||||
supportedProfiles = Collections.unmodifiableList(localSupportedProfiles);
|
||||
|
||||
ComponentName cn = new ComponentName(context.getPackageName(), getClass().getName());
|
||||
defaultWidgetPadding = AppWidgetHostView.getDefaultPaddingForWidget(context, cn, null);
|
||||
|
||||
Reference in New Issue
Block a user