Fixed
Status Update
Comments
se...@google.com <se...@google.com> #2
Hi. Thanks for reporting this. Fixed in alpha-04
ma...@bokhorst.biz <ma...@bokhorst.biz> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug: b/264018028
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
https://android-review.googlesource.com/2373449
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug:
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
se...@google.com <se...@google.com> #4
deleted
ma...@bokhorst.biz <ma...@bokhorst.biz> #5
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.tv:tv-material:1.0.0-alpha04
se...@google.com <se...@google.com> #6
Thanks for the info! Will take a look.
se...@google.com <se...@google.com>
ma...@bokhorst.biz <ma...@bokhorst.biz> #7
This crash is taking apps down (not mine anymore, which was confirmed by the reporter of the crash). So, I think this issue deserves at least some attention.
se...@google.com <se...@google.com> #8
Related
se...@google.com <se...@google.com> #9
Test case that reproduces crash prior to P
@Test
//@SdkSuppress(maxSdkVersion = 27) /* this is for testing before P crash */
public void testSpanRangeOldValueCalculation() throws Exception {
// this test is ported from CTS
// DynamicLayoutTest.testReflow_afterSpanChangedShouldNotThrowException
String className = "android.text.DynamicLayout$ChangeWatcher";
Class<?> watcherClass = Class.forName(className, false,
getClass().getClassLoader());
SpannableBuilder builder = new SpannableBuilder(watcherClass, "crash crash crash!!");
TypefaceSpan span = mock(TypefaceSpan.class);
builder.setSpan(span, 1, 4, SPAN_EXCLUSIVE_EXCLUSIVE);
// this DynamicLayout causes the replace/insert before position 1 below to crash prior to P
new DynamicLayout(builder, new TextPaint(), Integer.MAX_VALUE,
Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, true);
try {
builder.replace(1, 1, "Hello there\n\n");
} catch (Throwable e) {
throw new RuntimeException("Inserting text into DynamicLayout should not crash", e);
}
}
ma...@bokhorst.biz <ma...@bokhorst.biz> #10
I see good progress here ;-)
se...@google.com <se...@google.com> #11
Fix coming in the next release.
It's a platform DynamicLayout bug, but since it's running through emoji2 we have an opportunity to backport it prior to P :party:.
ap...@google.com <ap...@google.com> #12
Project: platform/frameworks/support
Branch: androidx-main
commit 96445c4b96e57ac060ea06c88e477622f28a2e00
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Mar 08 12:35:32 2022
Backport platform DynamicLayout crashfix to emoji2
Backport of Android P crashfix ( b/67926915 ) to emoji2.
This causes insert and replace calls to not crash when they happen
adjacent to spans that are EXCLUSIVE_EXCLUSIVE.
Previously, the range would be negative which would cause incorrect
integer math inside of DynamicLayout. The new behavior is to never pass
negative ranges by ressetting start to 0 before passing to DynamicLayout
which causes more reflow and avoids a crash.
This was previously fixed on platform and is covered by CTS test
DynamicLayoutTest#testReflow_afterSpanChangedShouldNotThrowException()
Fixes: b/216891011
Test: ./gradlew :e2:e2:cAT
Relnote: "Backport editor crash fix from Android P to EditText that is
configured to use emoji2 (platform bug b/67926915 )."
Change-Id: Ifd70914816fdb732aae34690666d790a6fc9783a
M emoji2/emoji2/src/main/java/androidx/emoji2/text/SpannableBuilder.java
M emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
https://android-review.googlesource.com/2016855
Branch: androidx-main
commit 96445c4b96e57ac060ea06c88e477622f28a2e00
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Mar 08 12:35:32 2022
Backport platform DynamicLayout crashfix to emoji2
Backport of Android P crashfix (
This causes insert and replace calls to not crash when they happen
adjacent to spans that are EXCLUSIVE_EXCLUSIVE.
Previously, the range would be negative which would cause incorrect
integer math inside of DynamicLayout. The new behavior is to never pass
negative ranges by ressetting start to 0 before passing to DynamicLayout
which causes more reflow and avoids a crash.
This was previously fixed on platform and is covered by CTS test
DynamicLayoutTest#testReflow_afterSpanChangedShouldNotThrowException()
Fixes:
Test: ./gradlew :e2:e2:cAT
Relnote: "Backport editor crash fix from Android P to EditText that is
configured to use emoji2 (platform bug
Change-Id: Ifd70914816fdb732aae34690666d790a6fc9783a
M emoji2/emoji2/src/main/java/androidx/emoji2/text/SpannableBuilder.java
M emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
Description
Component used: androidx.emoji2:emoji2
Version used: 1.0.1
Devices/Android versions reproduced on: Huawei BAH2-W19 and probably others