Fixed
Status Update
Comments
mg...@google.com <mg...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 57ca221882695bd6a52549f4d9ea3b812e6fe87c
Author: Simon Schiller <simonschiller@users.noreply.github.com>
Date: Mon Mar 22 16:09:30 2021
[GH] [FragmentStrictMode] Detect <fragment> tag usage
## Proposed Changes
- Detect `<fragment>` tag usage inside XML layouts
## Testing
Test: See `FragmentStrictModeTest#detectFragmentTagUsage`
## Issues Fixed
Fixes: 153738235
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/141 .
Resolves #141
Github-Pr-Head-Sha: 4ea052596e4341b9f11bcf335e2bc38045a91f19
GitOrigin-RevId: 62e7487aa4874eef6bb556490e193717cf937251
Change-Id: Iae48578e85e4e4897f806d7ade2e2a660adf9479
M fragment/fragment/api/public_plus_experimental_current.txt
M fragment/fragment/api/restricted_current.txt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/strictmode/FragmentStrictModeTest.kt
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
M fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentStrictMode.java
A fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentTagUsageViolation.java
https://android-review.googlesource.com/1649748
Branch: androidx-main
commit 57ca221882695bd6a52549f4d9ea3b812e6fe87c
Author: Simon Schiller <simonschiller@users.noreply.github.com>
Date: Mon Mar 22 16:09:30 2021
[GH] [FragmentStrictMode] Detect <fragment> tag usage
## Proposed Changes
- Detect `<fragment>` tag usage inside XML layouts
## Testing
Test: See `FragmentStrictModeTest#detectFragmentTagUsage`
## Issues Fixed
Fixes: 153738235
This is an imported pull request from
Resolves #141
Github-Pr-Head-Sha: 4ea052596e4341b9f11bcf335e2bc38045a91f19
GitOrigin-RevId: 62e7487aa4874eef6bb556490e193717cf937251
Change-Id: Iae48578e85e4e4897f806d7ade2e2a660adf9479
M fragment/fragment/api/public_plus_experimental_current.txt
M fragment/fragment/api/restricted_current.txt
M fragment/fragment/src/androidTest/java/androidx/fragment/app/strictmode/FragmentStrictModeTest.kt
M fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
M fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentStrictMode.java
A fragment/fragment/src/main/java/androidx/fragment/app/strictmode/FragmentTagUsageViolation.java
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: Kuan-Ying Chou <
Link:
Open built-in serializers for Interface types
Expand for full commit details
Open built-in serializers for Interface types
Make `CharSequenceSerializer`, `JavaSerializableSerializer`, and `ParcelableSerializer` open generic classes instead of singleton objects so that users can inherit and define serializers for their own subtypes. This can be used to prevent `SERIALIZER_TYPE_INCOMPATIBLE` lint warning. For example, instead of suppressing the warning like this:
```
@Serializable
data class CharSequenceContainer(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(with = CharSequenceSerializer::class)
val value: String
)
```
Users can do:
```
class StringAsCharSequenceSerializer : CharSequenceSerializer<String>()
@Serializable
data class CharSequenceContainer(
@Serializable(with = StringAsCharSequenceSerializer::class)
val value: String
)
```
The serializers can also be used directly with subclasses. For example, users can now write:
```
encodeToSavedState(serializer = CharSequenceSerializer(), value = "foo")
```
Since CharSequenceSerializer is now generic, it works with value `foo` even though it has a static type of String.
We also made some changes to all the built-in serializers:
- Changeed all built-in serializers from singleton objects to classes so that they're consistent with `CharSequenceSerializer`, `JavaSerializableSerializer`, and `ParcelableSerializer`.
- Moved the actual `getXXX()`/`putXXX()` from `platformSpecificEncodeSerializableValue`/`platformSpecificDecodeSerializableValue` to `serialize()`/`deserialize()` functions of these serializers. This way we don't require special logic in `SavedStateEncoder.encodeSerializableValue()`/`SavedStateDecoder.decodeSerializableValue()`.
Relnote: Open built-in serializers for Interface types
Bug: 376026712
Test: SavedStateCodecAndroidTest
Change-Id: I28caf279b53cb69311c861e415390da7efd90c40
Files:
- M
savedstate/savedstate-samples/src/main/java/androidx/savedstate/SavedStateCodecSamples.kt
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- D
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.android.kt
- D
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.android.kt
- M
savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/SavedStateCodecAndroidTest.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateCodecTest.kt
- D
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.nonAndroid.kt
- D
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.nonAndroid.kt
Hash: dc358bcbe19b08a8358916297a549f0583ccd790
Date: Tue Nov 26 13:09:44 2024
Description
KotlinX Serialization has built-in serializers for common types in the Java and/or Kotlin Standard library. It is reasonable to expect that Saved State support should also provide built-in serializers for common/native Android types.
The expected types to be supported are: