Skip to content

Commit 1bd273c

Browse files
authored
Add type forwards for AndroidX.Lifecycle* 2.8.* changes. (#908)
Context: #863 Fixes: dotnet/android#9049 Fixes: #909 In version `2.8.*`, Google moved all the types in 2 libraries into 2 new libraries: - `Xamarin.AndroidX.Lifecycle.Common` to `Xamarin.AndroidX.Lifecycle.Common.Jvm`. - `Xamarin.AndroidX.Lifecycle.ViewModel` to `Xamarin.AndroidX.Lifecycle.ViewModel.Android`. While this is a source compatible change for users, it is not a binary compatible change for users that are relying on NuGets or assemblies that have not been recompiled. These types may continue to work in Debug builds, but the linker and AOT compiler steps run for Release builds are unable to resolve the moved types, causing unfixable errors (other than recompiling all assemblies). Adding `[TypeForwardedToAttribute]` attributes allows the linker and AOT to succeed without recompiling old assemblies.
1 parent 40db35e commit 1bd273c

File tree

3 files changed

+57
-21
lines changed

3 files changed

+57
-21
lines changed

config.json

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,23 +1145,23 @@
11451145
"groupId": "androidx.lifecycle",
11461146
"artifactId": "lifecycle-common",
11471147
"version": "2.8.2",
1148-
"nugetVersion": "2.8.2",
1148+
"nugetVersion": "2.8.2.1",
11491149
"nugetId": "Xamarin.AndroidX.Lifecycle.Common",
11501150
"dependencyOnly": false
11511151
},
11521152
{
11531153
"groupId": "androidx.lifecycle",
11541154
"artifactId": "lifecycle-common-java8",
11551155
"version": "2.8.2",
1156-
"nugetVersion": "2.8.2",
1156+
"nugetVersion": "2.8.2.1",
11571157
"nugetId": "Xamarin.AndroidX.Lifecycle.Common.Java8",
11581158
"dependencyOnly": false
11591159
},
11601160
{
11611161
"groupId": "androidx.lifecycle",
11621162
"artifactId": "lifecycle-common-jvm",
11631163
"version": "2.8.2",
1164-
"nugetVersion": "2.8.2",
1164+
"nugetVersion": "2.8.2.1",
11651165
"nugetId": "Xamarin.AndroidX.Lifecycle.Common.Jvm",
11661166
"dependencyOnly": false
11671167
},
@@ -1177,143 +1177,143 @@
11771177
"groupId": "androidx.lifecycle",
11781178
"artifactId": "lifecycle-livedata",
11791179
"version": "2.8.2",
1180-
"nugetVersion": "2.8.2",
1180+
"nugetVersion": "2.8.2.1",
11811181
"nugetId": "Xamarin.AndroidX.Lifecycle.LiveData",
11821182
"dependencyOnly": false
11831183
},
11841184
{
11851185
"groupId": "androidx.lifecycle",
11861186
"artifactId": "lifecycle-livedata-core",
11871187
"version": "2.8.2",
1188-
"nugetVersion": "2.8.2",
1188+
"nugetVersion": "2.8.2.1",
11891189
"nugetId": "Xamarin.AndroidX.Lifecycle.LiveData.Core",
11901190
"dependencyOnly": false
11911191
},
11921192
{
11931193
"groupId": "androidx.lifecycle",
11941194
"artifactId": "lifecycle-livedata-core-ktx",
11951195
"version": "2.8.2",
1196-
"nugetVersion": "2.8.2",
1196+
"nugetVersion": "2.8.2.1",
11971197
"nugetId": "Xamarin.AndroidX.Lifecycle.LiveData.Core.Ktx",
11981198
"dependencyOnly": false
11991199
},
12001200
{
12011201
"groupId": "androidx.lifecycle",
12021202
"artifactId": "lifecycle-livedata-ktx",
12031203
"version": "2.8.2",
1204-
"nugetVersion": "2.8.2",
1204+
"nugetVersion": "2.8.2.1",
12051205
"nugetId": "Xamarin.AndroidX.Lifecycle.LiveData.Ktx",
12061206
"dependencyOnly": false
12071207
},
12081208
{
12091209
"groupId": "androidx.lifecycle",
12101210
"artifactId": "lifecycle-process",
12111211
"version": "2.8.2",
1212-
"nugetVersion": "2.8.2",
1212+
"nugetVersion": "2.8.2.1",
12131213
"nugetId": "Xamarin.AndroidX.Lifecycle.Process",
12141214
"dependencyOnly": false
12151215
},
12161216
{
12171217
"groupId": "androidx.lifecycle",
12181218
"artifactId": "lifecycle-reactivestreams",
12191219
"version": "2.8.2",
1220-
"nugetVersion": "2.8.2",
1220+
"nugetVersion": "2.8.2.1",
12211221
"nugetId": "Xamarin.AndroidX.Lifecycle.ReactiveStreams",
12221222
"dependencyOnly": false
12231223
},
12241224
{
12251225
"groupId": "androidx.lifecycle",
12261226
"artifactId": "lifecycle-reactivestreams-ktx",
12271227
"version": "2.8.2",
1228-
"nugetVersion": "2.8.2",
1228+
"nugetVersion": "2.8.2.1",
12291229
"nugetId": "Xamarin.AndroidX.Lifecycle.ReactiveStreams.Ktx",
12301230
"dependencyOnly": false
12311231
},
12321232
{
12331233
"groupId": "androidx.lifecycle",
12341234
"artifactId": "lifecycle-runtime",
12351235
"version": "2.8.2",
1236-
"nugetVersion": "2.8.2",
1236+
"nugetVersion": "2.8.2.1",
12371237
"nugetId": "Xamarin.AndroidX.Lifecycle.Runtime",
12381238
"dependencyOnly": false
12391239
},
12401240
{
12411241
"groupId": "androidx.lifecycle",
12421242
"artifactId": "lifecycle-runtime-android",
12431243
"version": "2.8.2",
1244-
"nugetVersion": "2.8.2",
1244+
"nugetVersion": "2.8.2.1",
12451245
"nugetId": "Xamarin.AndroidX.Lifecycle.Runtime.Android",
12461246
"dependencyOnly": false
12471247
},
12481248
{
12491249
"groupId": "androidx.lifecycle",
12501250
"artifactId": "lifecycle-runtime-ktx",
12511251
"version": "2.8.2",
1252-
"nugetVersion": "2.8.2",
1252+
"nugetVersion": "2.8.2.1",
12531253
"nugetId": "Xamarin.AndroidX.Lifecycle.Runtime.Ktx",
12541254
"dependencyOnly": false
12551255
},
12561256
{
12571257
"groupId": "androidx.lifecycle",
12581258
"artifactId": "lifecycle-runtime-ktx-android",
12591259
"version": "2.8.2",
1260-
"nugetVersion": "2.8.2",
1260+
"nugetVersion": "2.8.2.1",
12611261
"nugetId": "Xamarin.AndroidX.Lifecycle.Runtime.Ktx.Android",
12621262
"dependencyOnly": false
12631263
},
12641264
{
12651265
"groupId": "androidx.lifecycle",
12661266
"artifactId": "lifecycle-service",
12671267
"version": "2.8.2",
1268-
"nugetVersion": "2.8.2",
1268+
"nugetVersion": "2.8.2.1",
12691269
"nugetId": "Xamarin.AndroidX.Lifecycle.Service",
12701270
"dependencyOnly": false
12711271
},
12721272
{
12731273
"groupId": "androidx.lifecycle",
12741274
"artifactId": "lifecycle-viewmodel",
12751275
"version": "2.8.2",
1276-
"nugetVersion": "2.8.2",
1276+
"nugetVersion": "2.8.2.1",
12771277
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModel",
12781278
"dependencyOnly": false
12791279
},
12801280
{
12811281
"groupId": "androidx.lifecycle",
12821282
"artifactId": "lifecycle-viewmodel-android",
12831283
"version": "2.8.2",
1284-
"nugetVersion": "2.8.2",
1284+
"nugetVersion": "2.8.2.1",
12851285
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModel.Android",
12861286
"dependencyOnly": false
12871287
},
12881288
{
12891289
"groupId": "androidx.lifecycle",
12901290
"artifactId": "lifecycle-viewmodel-compose",
12911291
"version": "2.8.2",
1292-
"nugetVersion": "2.8.2",
1292+
"nugetVersion": "2.8.2.1",
12931293
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModel.Compose",
12941294
"dependencyOnly": false
12951295
},
12961296
{
12971297
"groupId": "androidx.lifecycle",
12981298
"artifactId": "lifecycle-viewmodel-compose-android",
12991299
"version": "2.8.2",
1300-
"nugetVersion": "2.8.2",
1300+
"nugetVersion": "2.8.2.1",
13011301
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModel.Compose.Android",
13021302
"dependencyOnly": false
13031303
},
13041304
{
13051305
"groupId": "androidx.lifecycle",
13061306
"artifactId": "lifecycle-viewmodel-ktx",
13071307
"version": "2.8.2",
1308-
"nugetVersion": "2.8.2",
1308+
"nugetVersion": "2.8.2.1",
13091309
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModel.Ktx",
13101310
"dependencyOnly": false
13111311
},
13121312
{
13131313
"groupId": "androidx.lifecycle",
13141314
"artifactId": "lifecycle-viewmodel-savedstate",
13151315
"version": "2.8.2",
1316-
"nugetVersion": "2.8.2",
1316+
"nugetVersion": "2.8.2.1",
13171317
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModelSavedState",
13181318
"dependencyOnly": false
13191319
},
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Runtime.CompilerServices;
2+
3+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.Lifecycle))]
4+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.CompositeGeneratedAdaptersObserver))]
5+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.IDefaultLifecycleObserver))]
6+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.IGeneratedAdapter))]
7+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.IGenericLifecycleObserver))]
8+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ILifecycleEventObserver))]
9+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ILifecycleObserver))]
10+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ILifecycleOwner))]
11+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.LifecycleCoroutineScope))]
12+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.LifecycleKt))]
13+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.LifecycleOwnerKt))]
14+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.Lifecycling))]
15+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.MethodCallsLogger))]
16+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.PausingDispatcherKt))]
17+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.SingleGeneratedAdapterObserver))]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System.Runtime.CompilerServices;
2+
3+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.AndroidViewModel))]
4+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.IHasDefaultViewModelProviderFactory))]
5+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.IViewModelStoreOwner))]
6+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModel))]
7+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModelLazy))]
8+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModelProvider))]
9+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModelProviderGetKt))]
10+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModelStore))]
11+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewTreeViewModelKt))]
12+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewTreeViewModelStoreOwner))]
13+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.CreationExtras))]
14+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.InitializerViewModelFactoryBuilder))]
15+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.InitializerViewModelFactoryKt))]
16+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.IViewModelFactoryDsl))]
17+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.MutableCreationExtras))]
18+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.ViewModelFactoryDslAttribute))]
19+
[assembly:TypeForwardedTo (typeof (AndroidX.Lifecycle.ViewModels.ViewModelInitializer))]

0 commit comments

Comments
 (0)