Fixed
Status Update
Comments
ra...@google.com <ra...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 93dc6213fe2e74aa9c9d3dcdb4551c6ad3a85ba4
Author: sanura <sanura@google.com>
Date: Thu Mar 16 01:59:33 2023
Add private initViewTreeOwners() to AppCompatDialog
Ensure that AppCompatDialog also sets initial view
tree owners, since it does not call through to
super.setContentView(), which would set them via
ComponentDialog.
RelNote: "`AppCompatDialog` now correctly sets the `LifecycleOwner`, `SavedStateRegistryOwner`, and `OnBackPressedDispatcherOwner` on the dialog's decor view via the ViewTree APIs, fixing issues when hosting a ComposeView within an AppCompatDialog. AppCompat now depends on Activity 1.7.0."
Bug: 261314581
Test: AppComptaDialogTest
Change-Id: Ib28abb12cc3c617b9ffed9e1450e48308dc7c3df
M appcompat/appcompat/build.gradle
A appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatDialogTest.kt
M appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java
https://android-review.googlesource.com/2493316
Branch: androidx-main
commit 93dc6213fe2e74aa9c9d3dcdb4551c6ad3a85ba4
Author: sanura <sanura@google.com>
Date: Thu Mar 16 01:59:33 2023
Add private initViewTreeOwners() to AppCompatDialog
Ensure that AppCompatDialog also sets initial view
tree owners, since it does not call through to
super.setContentView(), which would set them via
ComponentDialog.
RelNote: "`AppCompatDialog` now correctly sets the `LifecycleOwner`, `SavedStateRegistryOwner`, and `OnBackPressedDispatcherOwner` on the dialog's decor view via the ViewTree APIs, fixing issues when hosting a ComposeView within an AppCompatDialog. AppCompat now depends on Activity 1.7.0."
Bug: 261314581
Test: AppComptaDialogTest
Change-Id: Ib28abb12cc3c617b9ffed9e1450e48308dc7c3df
M appcompat/appcompat/build.gradle
A appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatDialogTest.kt
M appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 6b7a0f963d43aa6a06b461d62743ed81adddce40
Author: sanura <sanura@google.com>
Date: Thu Mar 16 23:01:38 2023
Open up initViewTreeOwners() API for ComponentDialog and ComponentActivity
Making initViewTreeOwners() a public API in ComponentDialog
and ComponentActivity so it can be used by AppCompat.
RelNote: "`ComponentDialog` and `ComponentActivity` now
contain public API `initViewTreeOwners()` to be used to
initialize all view tree owners before setting the
content view."
Bug: 261314581
Test: all tests pass
Change-Id: Ibdce0a994b0daddc090e4ff58583ccba71612870
M activity/activity/api/current.txt
M activity/activity/api/public_plus_experimental_current.txt
M activity/activity/api/restricted_current.txt
M activity/activity/src/main/java/androidx/activity/ComponentActivity.java
M activity/activity/src/main/java/androidx/activity/ComponentDialog.kt
https://android-review.googlesource.com/2493317
Branch: androidx-main
commit 6b7a0f963d43aa6a06b461d62743ed81adddce40
Author: sanura <sanura@google.com>
Date: Thu Mar 16 23:01:38 2023
Open up initViewTreeOwners() API for ComponentDialog and ComponentActivity
Making initViewTreeOwners() a public API in ComponentDialog
and ComponentActivity so it can be used by AppCompat.
RelNote: "`ComponentDialog` and `ComponentActivity` now
contain public API `initViewTreeOwners()` to be used to
initialize all view tree owners before setting the
content view."
Bug: 261314581
Test: all tests pass
Change-Id: Ibdce0a994b0daddc090e4ff58583ccba71612870
M activity/activity/api/current.txt
M activity/activity/api/public_plus_experimental_current.txt
M activity/activity/api/restricted_current.txt
M activity/activity/src/main/java/androidx/activity/ComponentActivity.java
M activity/activity/src/main/java/androidx/activity/ComponentDialog.kt
[Deleted User] <[Deleted User]> #4
This has been fixed internally and will be available in the Activity 1.8.0-alpha03
release.
Description
Version used: alpha09
Devices/Android versions reproduced on:
When using WorkContinuation.combine to join multiple works before continuing, it has a check in it to make sure it's acutally combining multiple WorkContinuations. I think this check is uneccessary and annoying, and adds a hard to find bug in implementations. The combine() method could easily just do nothing if there's only a single WorkContinuation passed to it.
Current use case:
I'm uploading a number of photos, which I'm splitting into a number of WorkContinuation lists so that several happen in parallel. If I only have one photo to upload then obviously I can only split this into one list of work, and the app crashes because WorkContinuation.combine() 'cannot' combine a single item. To fix this I have to have this code:
```
val allCombined = if (workLists.size == 1) workLists[0] else WorkContinuation.combine(workLists)
allCombined.then(....
```
which is much less nice than the original code which I think should work:
```
WorkContinuation.combine(workLists)
.then(....
```