diff options
author | 2024-05-16 22:35:13 +0000 | |
---|---|---|
committer | 2024-05-16 22:35:13 +0000 | |
commit | 976da2d6a1a414dd8752bdd06eb26b81d3291dee (patch) | |
tree | 1d841318f08725b16106d013c3224d6d70548173 | |
parent | 793a7090d3f400de5ad94937e9bf0f1e8a345740 (diff) | |
parent | 646174c97a5c63a86f0a0ac7454263e6b61464a6 (diff) |
Merge "Mitigate CropView invalid Range crash" into main
-rw-r--r-- | packages/SystemUI/aconfig/systemui.aconfig | 9 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/screenshot/scroll/CropView.java | 11 |
2 files changed, 18 insertions, 2 deletions
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig index 8fc4eccf1a7b..0ef12e2124fb 100644 --- a/packages/SystemUI/aconfig/systemui.aconfig +++ b/packages/SystemUI/aconfig/systemui.aconfig @@ -504,6 +504,15 @@ flag { } } +flag { + name: "screenshot_scroll_crop_view_crash_fix" + namespace: "systemui" + description: "Mitigate crash on invalid computed range in CropView" + bug: "232633995" + metadata { + purpose: PURPOSE_BUGFIX + } +} flag { name: "screenshot_private_profile_behavior_fix" diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/scroll/CropView.java b/packages/SystemUI/src/com/android/systemui/screenshot/scroll/CropView.java index 5e561cfb14a1..ee1944e0b5cf 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/scroll/CropView.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/scroll/CropView.java @@ -45,6 +45,7 @@ import androidx.customview.widget.ExploreByTouchHelper; import androidx.interpolator.view.animation.FastOutSlowInInterpolator; import com.android.internal.graphics.ColorUtils; +import com.android.systemui.Flags; import com.android.systemui.res.R; import java.util.List; @@ -378,8 +379,14 @@ public class CropView extends View { upper = 1; break; } - Log.i(TAG, "getAllowedValues: " + boundary + ", " - + "result=[lower=" + lower + ", upper=" + upper + "]"); + if (lower >= upper) { + Log.wtf(TAG, "getAllowedValues computed an invalid range " + + "[" + lower + ", " + upper + "]"); + if (Flags.screenshotScrollCropViewCrashFix()) { + lower = Math.min(lower, upper); + upper = lower; + } + } return new Range<>(lower, upper); } |