Fixed
Status Update
Comments
ja...@google.com <ja...@google.com>
ra...@google.com <ra...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 28718f779b8689fdc435240b5a220d936296c8c1
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Wed Jan 05 20:57:27 2022
Make columns in Constraints non-null
It simplify kotlin migration, because otherwise
we have to deal with fields being nullable internally
but non-null publicly.
bug: 137568653
Test: WorkDatabaseMigrationTest
Change-Id: Ia3c553abeb6a88b66e8cb42ec1b7e83f957770e7
A work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/14.json
M work/work-runtime/src/main/java/androidx/work/impl/WorkDatabaseMigrations.kt
M work/work-runtime/src/main/java/androidx/work/impl/WorkDatabase.kt
M work/work-runtime/src/main/java/androidx/work/impl/model/WorkTypeConverters.kt
A work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/13.json
M work/work-runtime/src/main/java/androidx/work/Constraints.java
M work/work-runtime/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
https://android-review.googlesource.com/1937601
Branch: androidx-main
commit 28718f779b8689fdc435240b5a220d936296c8c1
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Wed Jan 05 20:57:27 2022
Make columns in Constraints non-null
It simplify kotlin migration, because otherwise
we have to deal with fields being nullable internally
but non-null publicly.
bug: 137568653
Test: WorkDatabaseMigrationTest
Change-Id: Ia3c553abeb6a88b66e8cb42ec1b7e83f957770e7
A work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/14.json
M work/work-runtime/src/main/java/androidx/work/impl/WorkDatabaseMigrations.kt
M work/work-runtime/src/main/java/androidx/work/impl/WorkDatabase.kt
M work/work-runtime/src/main/java/androidx/work/impl/model/WorkTypeConverters.kt
A work/work-runtime/src/schemas/androidx.work.impl.WorkDatabase/13.json
M work/work-runtime/src/main/java/androidx/work/Constraints.java
M work/work-runtime/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 350ba8f3b429319c753f63a3b23a1112b6bc59f4
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Mon Dec 20 21:04:20 2021
Rename Constraints.java to Constraints.kt
bug: 137568653
Test: NA
Change-Id: I9c9e2973a7ef01a2377ee95255709bf8d0fe9fbe
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
https://android-review.googlesource.com/1928155
Branch: androidx-main
commit 350ba8f3b429319c753f63a3b23a1112b6bc59f4
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Mon Dec 20 21:04:20 2021
Rename Constraints.java to Constraints.kt
bug: 137568653
Test: NA
Change-Id: I9c9e2973a7ef01a2377ee95255709bf8d0fe9fbe
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 808f97e764e8061b00a170e81f8f7d6bd7f8b591
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Tue Dec 21 16:17:47 2021
Migrate Constraints to Kotlin
bug: 137568653
Test: refactoring. test passes
Relnote: Constraints were migrated to Kotlin.
Change-Id: I44d8fc5a45ab4fd7b02aa224f76011423fd10ec5
M work/work-runtime/api/restricted_current.txt
M work/work-runtime/lint-baseline.xml
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
M work/work-runtime/api/public_plus_experimental_current.txt
M work/work-runtime/api/current.txt
https://android-review.googlesource.com/1926191
Branch: androidx-main
commit 808f97e764e8061b00a170e81f8f7d6bd7f8b591
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Tue Dec 21 16:17:47 2021
Migrate Constraints to Kotlin
bug: 137568653
Test: refactoring. test passes
Relnote: Constraints were migrated to Kotlin.
Change-Id: I44d8fc5a45ab4fd7b02aa224f76011423fd10ec5
M work/work-runtime/api/restricted_current.txt
M work/work-runtime/lint-baseline.xml
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
M work/work-runtime/api/public_plus_experimental_current.txt
M work/work-runtime/api/current.txt
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit a3b689ca0f671d79fb555a4bcf56ebc025333433
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Wed Jan 05 17:52:33 2022
Remove ContentUriTriggers
In order to add public constructor to Constraints
that has default values (see b/137568653 ), it should be possible to pass
content uri triggers to it. As a result either ContentUriTriggers
should have become public API or completely removed. Given ContentUriTriggers
didn't provide any value over simple Set, it was removed.
bug: 137568653
Test: refactoring. test passes
Change-Id: I15ed1db4ff85f784445de67d8574c1999ef8f1e0
M work/work-runtime/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
M work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
M work/work-runtime/src/main/java/androidx/work/impl/model/WorkTypeConverters.kt
M work/work-multiprocess/src/main/java/androidx/work/multiprocess/parcelable/ParcelableConstraints.java
D work/work-runtime/src/main/java/androidx/work/ContentUriTriggers.java
M work/work-runtime/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
https://android-review.googlesource.com/1938781
Branch: androidx-main
commit a3b689ca0f671d79fb555a4bcf56ebc025333433
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Wed Jan 05 17:52:33 2022
Remove ContentUriTriggers
In order to add public constructor to Constraints
that has default values (see
content uri triggers to it. As a result either ContentUriTriggers
should have become public API or completely removed. Given ContentUriTriggers
didn't provide any value over simple Set, it was removed.
bug: 137568653
Test: refactoring. test passes
Change-Id: I15ed1db4ff85f784445de67d8574c1999ef8f1e0
M work/work-runtime/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
M work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
M work/work-runtime/src/main/java/androidx/work/impl/model/WorkTypeConverters.kt
M work/work-multiprocess/src/main/java/androidx/work/multiprocess/parcelable/ParcelableConstraints.java
D work/work-runtime/src/main/java/androidx/work/ContentUriTriggers.java
M work/work-runtime/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit 904f805c02027504863d752097635509139d49a5
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Fri Jan 07 14:17:07 2022
Expose constructor and missing getters in Constraints
For kotlin, it is more natural to use constructor and named parameters
rather than builder and chain setter calls, so corresponding constructor
was made public.
Constraints were missing getters for some of the properties,
which is against api guidelines, so they were added as a drive-by
Relnote: "Constraints can now be directly constructed rather than
using Builder, which is convenient for Kotlin users."
bug: 137568653
Test: NA
Change-Id: Idc3900488dcaae5ca6c52b706723a752425875d9
M work/work-runtime/api/restricted_current.txt
M work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
M work/work-runtime/src/main/java/androidx/work/impl/model/WorkTypeConverters.kt
M work/work-runtime/api/public_plus_experimental_current.txt
M work/work-multiprocess/src/main/java/androidx/work/multiprocess/parcelable/ParcelableConstraints.java
M work/work-runtime/api/current.txt
https://android-review.googlesource.com/1940975
Branch: androidx-main
commit 904f805c02027504863d752097635509139d49a5
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Fri Jan 07 14:17:07 2022
Expose constructor and missing getters in Constraints
For kotlin, it is more natural to use constructor and named parameters
rather than builder and chain setter calls, so corresponding constructor
was made public.
Constraints were missing getters for some of the properties,
which is against api guidelines, so they were added as a drive-by
Relnote: "Constraints can now be directly constructed rather than
using Builder, which is convenient for Kotlin users."
bug: 137568653
Test: NA
Change-Id: Idc3900488dcaae5ca6c52b706723a752425875d9
M work/work-runtime/api/restricted_current.txt
M work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
M work/work-runtime/src/main/java/androidx/work/Constraints.kt
M work/work-runtime/src/main/java/androidx/work/impl/model/WorkTypeConverters.kt
M work/work-runtime/api/public_plus_experimental_current.txt
M work/work-multiprocess/src/main/java/androidx/work/multiprocess/parcelable/ParcelableConstraints.java
M work/work-runtime/api/current.txt
Description
val constraints = Constraints.Builder()
.setRequiresCharging(true)
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
The default parameters approach is trivial using a data class and named parameters could be used when being constructed.
data class Constraints(
val requiredNetworkType: NetworkType = NetworkType.NOT_REQUIRED,
val requiresCharging: Boolean = false
)
val constraints = Constraints(requiredNetworkType = NetworkType.METERED)
For converting the builder from java to a more idiomatic Kotlin, we could also write a function that uses a method with a receiver on the builder.
inline fun constraints(builder: Constraints.Builder.() -> Unit): Constraints {
return Constraints.Builder().apply { builder() }.build()
}
val constraints = constraints {
setRequiredNetworkType(NetworkType.CONNECTED)
setRequiresCharging(true)
}
The naming of these could probably be renamed, just a nicer way to write builder like classes in kotlin.