Fixed
Status Update
Comments
cl...@gmail.com <cl...@gmail.com> #2
Hi, thanks for reporting. Should be an easy fix!
I'm guessing it should work find until ~ 2^23 items = ~ 8M items. How did you come across this bug? Do you have a ViewPager2 with that many items?
I'm guessing it should work find until ~ 2^23 items = ~ 8M items. How did you come across this bug? Do you have a ViewPager2 with that many items?
ma...@google.com <ma...@google.com>
ma...@google.com <ma...@google.com>
ap...@google.com <ap...@google.com> #3
Hi, good to hear that.
We have an implementation of RecyclerView.Adapter that supports "infinite looping". So when the infinite looping is enabled, the adapter's getItemCount() reports Int.MAX_VALUE items. We also call setCurrentItem to somewhere in the middle of item count on the ViewPager2, so that's how we got that far.
We have an implementation of RecyclerView.Adapter that supports "infinite looping". So when the infinite looping is enabled, the adapter's getItemCount() reports Int.MAX_VALUE items. We also call setCurrentItem to somewhere in the middle of item count on the ViewPager2, so that's how we got that far.
ap...@google.com <ap...@google.com> #4
For future reference: first item for which it fails is probably when mCurrentItem = (1 << 25) + 2
ma...@google.com <ma...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 2e9f35536432bed0677171c8ae59b4f67850915a
Author: Jelle Fresen <jellefresen@google.com>
Date: Fri Jul 12 14:26:10 2019
Use double instead of float for decimal positions
A position ranges from 0 to Integer.MAX_VALUE, but floats only have a 23
bit mantissa. Values over 2^23 are rounded to a nearby value.
Solve this by using double instead of float when we need to represent a
position with a fractional component. A double has a mantissa of 52 bit
and can therefore represent all 2^32 possible int values.
Bug: 134858960
Test: ./gradlew viewpager2:cC
Change-Id: I08b97df6fac600caa83366ccab8671541e2c1e7f
A viewpager2/src/androidTest/java/androidx/viewpager2/test/ui/SparseAdapter.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/FakeDragTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/OffscreenPageLimitTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeCallbackTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageTransformerTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/SetItemWhileScrollInProgressTest.kt
M viewpager2/src/main/java/androidx/viewpager2/widget/ScrollEventAdapter.java
M viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
https://android-review.googlesource.com/1014538
https://goto.google.com/android-sha1/2e9f35536432bed0677171c8ae59b4f67850915a
Branch: androidx-master-dev
commit 2e9f35536432bed0677171c8ae59b4f67850915a
Author: Jelle Fresen <jellefresen@google.com>
Date: Fri Jul 12 14:26:10 2019
Use double instead of float for decimal positions
A position ranges from 0 to Integer.MAX_VALUE, but floats only have a 23
bit mantissa. Values over 2^23 are rounded to a nearby value.
Solve this by using double instead of float when we need to represent a
position with a fractional component. A double has a mantissa of 52 bit
and can therefore represent all 2^32 possible int values.
Bug: 134858960
Test: ./gradlew viewpager2:cC
Change-Id: I08b97df6fac600caa83366ccab8671541e2c1e7f
A viewpager2/src/androidTest/java/androidx/viewpager2/test/ui/SparseAdapter.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/FakeDragTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/OffscreenPageLimitTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeCallbackTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageTransformerTest.kt
M viewpager2/src/androidTest/java/androidx/viewpager2/widget/SetItemWhileScrollInProgressTest.kt
M viewpager2/src/main/java/androidx/viewpager2/widget/ScrollEventAdapter.java
M viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
Author: Max Alfonso-Ying <
Link:
Clip indicator line to text field shape
Expand for full commit details
Clip indicator line to text field shape
Another approach, replacing aosp/3387263.
Now, only the indicator line is clipped instead
of the entire text field.
Bug: b/380704151
Test: added screenshot tests
Relnote: "`Modifier.indicatorLine` now takes a shape for the text field to handle clipping."
Change-Id: I8c5f31cc77134107ae7895a273895f71ee6b2cc6
Files:
- M
compose/material3/material3/api/current.txt
- M
compose/material3/material3/api/restricted_current.txt
- M
compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/TextFieldScreenshotTest.kt
- M
compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TextField.kt
- M
compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TextFieldDefaults.kt
Hash: de96373ca0f3f3bdc29c7b9aaeb98ac449eca1b4
Date: Mon Dec 09 22:18:43 2024
pr...@google.com <pr...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material3:material3:1.4.0-alpha06
androidx.compose.material3:material3-android:1.4.0-alpha06
androidx.compose.material3:material3-jvmstubs:1.4.0-alpha06
androidx.compose.material3:material3-linuxx64stubs:1.4.0-alpha06
Description
Description has been deleted.