Fixed
Status Update
Comments
sy...@google.com <sy...@google.com> #2
b....@gmail.com <b....@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 8aea0fa4e7bed4d9dee1f03482328014e4dd86c2
Author: John Nichol <jnichol@google.com>
Date: Fri Oct 21 17:21:35 2022
Correct ScalingLazyListState.centerItemIndex calculation
Change the calculation of centerItemIndex/centerItemOffset to ensure that the closest item to the center of the viewport is returned.
The previous (incorrect) behaviour found the first items that had its itemEnd below the center line.
As a result it was possible in some edge conditions for an items which sat just above the center line to be ignored and the first items below the center line to be selected - even it was further away from the center line.
Bug: 254257769
Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Relnote: "We have corrected the calculation of `ScalingLazyListState.centerItemIndex/centerItemOffset` so that if two items sit either side of the viewport center line the one that is closest will be considered as the centerItem."
Change-Id: I307091167e04914d1ae29d5324f84ec18ed7b8a8
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListItemInfo.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
M wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/ScalingLazyColumnDemo.kt
https://android-review.googlesource.com/2263181
Branch: androidx-main
commit 8aea0fa4e7bed4d9dee1f03482328014e4dd86c2
Author: John Nichol <jnichol@google.com>
Date: Fri Oct 21 17:21:35 2022
Correct ScalingLazyListState.centerItemIndex calculation
Change the calculation of centerItemIndex/centerItemOffset to ensure that the closest item to the center of the viewport is returned.
The previous (incorrect) behaviour found the first items that had its itemEnd below the center line.
As a result it was possible in some edge conditions for an items which sat just above the center line to be ignored and the first items below the center line to be selected - even it was further away from the center line.
Bug: 254257769
Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Relnote: "We have corrected the calculation of `ScalingLazyListState.centerItemIndex/centerItemOffset` so that if two items sit either side of the viewport center line the one that is closest will be considered as the centerItem."
Change-Id: I307091167e04914d1ae29d5324f84ec18ed7b8a8
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListItemInfo.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
M wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/ScalingLazyColumnDemo.kt
Description
Please answer all relevant questions below so that we have enough information to investigate your issue. Providing incomplete information will delay investigation of your issue.
Bug Report Template
Describe the issue: expected vs. observed behavior and/or appearance.
ReconnectionService is trying to start a service in the background. This is causing an IllegalStateException on Android 8+.
com.google.android.gms.cast.framework.ReconnectionService }: app is in background uid UidRecord{c51b1af u0a131 TPSL bg:+2m55s135ms idle change:cached procs:1 seq(0,0,0)}
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1577)
at android.app.ContextImpl.startService(ContextImpl.java:1532)
at android.content.ContextWrapper.startService(ContextWrapper.java:664)
at com.google.android.gms.internal.cast.zzai.zzg$1385ff(Unknown Source:19000)
at com.google.android.gms.internal.cast.zzai.onStatusUpdated(Unknown Source)
at com.google.android.gms.cast.framework.media.zzr.onStatusUpdated(Unknown Source:30)
at com.google.android.gms.internal.cast.zzdh.onStatusUpdated(Unknown Source:6)
at com.google.android.gms.internal.cast.zzdh.zza(Unknown Source:14000)
at com.google.android.gms.cast.framework.media.RemoteMediaClient.zzb(Unknown Source:2)
at com.google.android.gms.internal.cast.zzct.run(Unknown Source:31)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
List steps to reproduce the issue, if known.
We have been unable to reproduce locally but it is our largest crash.
Which version of the Cast SDK are you using?
15.0.1
On which version(s) of the OS (iOS, Android) do you observe the problem?
Android
On which device type(s) such as phones, tablets or laptops (iPad, iPhone, etc.) do you observe the problem?
Android devices
Do you observe the problem when running on a physical device, or the simulator, or both?
We haven't reproduced, but it happens on user devices.
If this is a device discovery or device connectivity issue: Do you observe the problem over Cellular (using Guest Mode), WiFi (using either Guest Mode or local connection), or both?
If this is strictly a UI appearance/styling issue, please take screenshot(s) (for iOS, and Android) illustrating the problem and attach them to the bug report. Also mention whether the problem occurs in portrait orientation, landscape orientation, or both.
If this is not a UI appearance/styling issue, please capture logs from the SDK for a time interval leading up to and including the occurrence of the problem, and attach them to the bug report. For issues relating to device discovery, the log should cover at least 20 seconds. For issues relating to device connectivity, the log should cover the entire time during which you attempted to start a Casting session.
Obtaining iOS Cast SDK Logs:
Obtaining Android Cast SDK Logs: