Skip to content

Commit ac3b405

Browse files
authored
[Mono.Android] Fix wrong value for ApplicationExitInfoReason.Other (#9003)
Fixes: #9000 Context: 3ca2a07 Context: 379f7cd The field [`ApplicationExitInfo.REASON_OTHER`][0] was added in API-30, and in our infinite wisdom we enumified this member in API-R Developer Preview 2 (3ca2a07) instead of waiting for the final API contract. In API-R DP2, `ApplicationExitInfo.REASON_OTHER` had the value 10, and was enumified as `ApplicationExitInfoReasonType.ReasonUnknown` with value 10. `ApplicationExitInfoReasonType` was renamed to `ApplicationExitInfoReason` in 379f7cd with API-R Developer Preview 4. The value of `ApplicationExitInfo.REASON_OTHER` [changed to 13][1] in API-R Developer Preview 3, but we did not notice and did not update the previous enumification. This process has been mitigated since, as we no longer enumify unstable API levels: we wait until Google marks the API as "stable" before we perform enumification. Update the enum to the correct value so it will be correct in .NET 9+. [0]: https://developer.android.com/reference/android/app/ApplicationExitInfo#REASON_OTHER [1]: https://developer.android.com/sdk/api_diff/r-dp3-incr/changes/android.app.ApplicationExitInfo
1 parent d2869b8 commit ac3b405

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

src/Mono.Android/PublicAPI/API-34/PublicAPI.Shipped.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4273,7 +4273,7 @@ Android.App.ApplicationExitInfoReason.ExitSelf = 1 -> Android.App.ApplicationExi
42734273
Android.App.ApplicationExitInfoReason.Freezer = 14 -> Android.App.ApplicationExitInfoReason
42744274
Android.App.ApplicationExitInfoReason.InitializationFailure = 7 -> Android.App.ApplicationExitInfoReason
42754275
Android.App.ApplicationExitInfoReason.LowMemory = 3 -> Android.App.ApplicationExitInfoReason
4276-
Android.App.ApplicationExitInfoReason.Other = 10 -> Android.App.ApplicationExitInfoReason
4276+
Android.App.ApplicationExitInfoReason.Other = 13 -> Android.App.ApplicationExitInfoReason
42774277
Android.App.ApplicationExitInfoReason.PackageStateChange = 15 -> Android.App.ApplicationExitInfoReason
42784278
Android.App.ApplicationExitInfoReason.PackageUpdated = 16 -> Android.App.ApplicationExitInfoReason
42794279
Android.App.ApplicationExitInfoReason.PermissionChange = 8 -> Android.App.ApplicationExitInfoReason
@@ -41910,13 +41910,13 @@ const Android.App.ApplicationExitInfo.ReasonExitSelf = Android.App.ApplicationEx
4191041910
const Android.App.ApplicationExitInfo.ReasonFreezer = Android.App.ApplicationExitInfoReason.Freezer -> Android.App.ApplicationExitInfoReason
4191141911
const Android.App.ApplicationExitInfo.ReasonInitializationFailure = Android.App.ApplicationExitInfoReason.InitializationFailure -> Android.App.ApplicationExitInfoReason
4191241912
const Android.App.ApplicationExitInfo.ReasonLowMemory = Android.App.ApplicationExitInfoReason.LowMemory -> Android.App.ApplicationExitInfoReason
41913-
const Android.App.ApplicationExitInfo.ReasonOther = (Android.App.ApplicationExitInfoReason)13 -> Android.App.ApplicationExitInfoReason
41913+
const Android.App.ApplicationExitInfo.ReasonOther = Android.App.ApplicationExitInfoReason.Other -> Android.App.ApplicationExitInfoReason
4191441914
const Android.App.ApplicationExitInfo.ReasonPackageStateChange = Android.App.ApplicationExitInfoReason.PackageStateChange -> Android.App.ApplicationExitInfoReason
4191541915
const Android.App.ApplicationExitInfo.ReasonPackageUpdated = Android.App.ApplicationExitInfoReason.PackageUpdated -> Android.App.ApplicationExitInfoReason
4191641916
const Android.App.ApplicationExitInfo.ReasonPermissionChange = Android.App.ApplicationExitInfoReason.PermissionChange -> Android.App.ApplicationExitInfoReason
4191741917
const Android.App.ApplicationExitInfo.ReasonSignaled = Android.App.ApplicationExitInfoReason.Signaled -> Android.App.ApplicationExitInfoReason
4191841918
const Android.App.ApplicationExitInfo.ReasonUnknown = Android.App.ApplicationExitInfoReason.Unknown -> Android.App.ApplicationExitInfoReason
41919-
const Android.App.ApplicationExitInfo.ReasonUserRequested = Android.App.ApplicationExitInfoReason.Other -> Android.App.ApplicationExitInfoReason
41919+
const Android.App.ApplicationExitInfo.ReasonUserRequested = Android.App.ApplicationExitInfoReason.UserRequested -> Android.App.ApplicationExitInfoReason
4192041920
const Android.App.ApplicationExitInfo.ReasonUserStopped = Android.App.ApplicationExitInfoReason.UserStopped -> Android.App.ApplicationExitInfoReason
4192141921
const Android.App.AppOpsManager.ModeAllowed = Android.App.AppOpsManagerMode.Allowed -> Android.App.AppOpsManagerMode
4192241922
const Android.App.AppOpsManager.ModeDefault = Android.App.AppOpsManagerMode.Default -> Android.App.AppOpsManagerMode

src/Mono.Android/PublicAPI/API-35/PublicAPI.Shipped.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4274,7 +4274,7 @@ Android.App.ApplicationExitInfoReason.ExitSelf = 1 -> Android.App.ApplicationExi
42744274
Android.App.ApplicationExitInfoReason.Freezer = 14 -> Android.App.ApplicationExitInfoReason
42754275
Android.App.ApplicationExitInfoReason.InitializationFailure = 7 -> Android.App.ApplicationExitInfoReason
42764276
Android.App.ApplicationExitInfoReason.LowMemory = 3 -> Android.App.ApplicationExitInfoReason
4277-
Android.App.ApplicationExitInfoReason.Other = 10 -> Android.App.ApplicationExitInfoReason
4277+
Android.App.ApplicationExitInfoReason.Other = 13 -> Android.App.ApplicationExitInfoReason
42784278
Android.App.ApplicationExitInfoReason.PackageStateChange = 15 -> Android.App.ApplicationExitInfoReason
42794279
Android.App.ApplicationExitInfoReason.PackageUpdated = 16 -> Android.App.ApplicationExitInfoReason
42804280
Android.App.ApplicationExitInfoReason.PermissionChange = 8 -> Android.App.ApplicationExitInfoReason
@@ -41911,13 +41911,13 @@ const Android.App.ApplicationExitInfo.ReasonExitSelf = Android.App.ApplicationEx
4191141911
const Android.App.ApplicationExitInfo.ReasonFreezer = Android.App.ApplicationExitInfoReason.Freezer -> Android.App.ApplicationExitInfoReason
4191241912
const Android.App.ApplicationExitInfo.ReasonInitializationFailure = Android.App.ApplicationExitInfoReason.InitializationFailure -> Android.App.ApplicationExitInfoReason
4191341913
const Android.App.ApplicationExitInfo.ReasonLowMemory = Android.App.ApplicationExitInfoReason.LowMemory -> Android.App.ApplicationExitInfoReason
41914-
const Android.App.ApplicationExitInfo.ReasonOther = (Android.App.ApplicationExitInfoReason)13 -> Android.App.ApplicationExitInfoReason
41914+
const Android.App.ApplicationExitInfo.ReasonOther = Android.App.ApplicationExitInfoReason.Other -> Android.App.ApplicationExitInfoReason
4191541915
const Android.App.ApplicationExitInfo.ReasonPackageStateChange = Android.App.ApplicationExitInfoReason.PackageStateChange -> Android.App.ApplicationExitInfoReason
4191641916
const Android.App.ApplicationExitInfo.ReasonPackageUpdated = Android.App.ApplicationExitInfoReason.PackageUpdated -> Android.App.ApplicationExitInfoReason
4191741917
const Android.App.ApplicationExitInfo.ReasonPermissionChange = Android.App.ApplicationExitInfoReason.PermissionChange -> Android.App.ApplicationExitInfoReason
4191841918
const Android.App.ApplicationExitInfo.ReasonSignaled = Android.App.ApplicationExitInfoReason.Signaled -> Android.App.ApplicationExitInfoReason
4191941919
const Android.App.ApplicationExitInfo.ReasonUnknown = Android.App.ApplicationExitInfoReason.Unknown -> Android.App.ApplicationExitInfoReason
41920-
const Android.App.ApplicationExitInfo.ReasonUserRequested = Android.App.ApplicationExitInfoReason.Other -> Android.App.ApplicationExitInfoReason
41920+
const Android.App.ApplicationExitInfo.ReasonUserRequested = Android.App.ApplicationExitInfoReason.UserRequested -> Android.App.ApplicationExitInfoReason
4192141921
const Android.App.ApplicationExitInfo.ReasonUserStopped = Android.App.ApplicationExitInfoReason.UserStopped -> Android.App.ApplicationExitInfoReason
4192241922
const Android.App.AppOpsManager.ModeAllowed = Android.App.AppOpsManagerMode.Allowed -> Android.App.AppOpsManagerMode
4192341923
const Android.App.AppOpsManager.ModeDefault = Android.App.AppOpsManagerMode.Default -> Android.App.AppOpsManagerMode

src/Mono.Android/map.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ E,30,android/app/ApplicationExitInfo.REASON_EXIT_SELF,1,Android.App.ApplicationE
416416
E,33,android/app/ApplicationExitInfo.REASON_FREEZER,14,Android.App.ApplicationExitInfoReason,Freezer,remove,
417417
E,30,android/app/ApplicationExitInfo.REASON_INITIALIZATION_FAILURE,7,Android.App.ApplicationExitInfoReason,InitializationFailure,remove,
418418
E,30,android/app/ApplicationExitInfo.REASON_LOW_MEMORY,3,Android.App.ApplicationExitInfoReason,LowMemory,remove,
419-
E,30,android/app/ApplicationExitInfo.REASON_OTHER,10,Android.App.ApplicationExitInfoReason,Other,remove,
419+
E,30,android/app/ApplicationExitInfo.REASON_OTHER,13,Android.App.ApplicationExitInfoReason,Other,remove,
420420
E,34,android/app/ApplicationExitInfo.REASON_PACKAGE_STATE_CHANGE,15,Android.App.ApplicationExitInfoReason,PackageStateChange,remove,
421421
E,34,android/app/ApplicationExitInfo.REASON_PACKAGE_UPDATED,16,Android.App.ApplicationExitInfoReason,PackageUpdated,remove,
422422
E,30,android/app/ApplicationExitInfo.REASON_PERMISSION_CHANGE,8,Android.App.ApplicationExitInfoReason,PermissionChange,remove,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
Compat issues with assembly Mono.Android:
22
CannotAddAbstractMembers : Member 'public void Android.Net.Wifi.WifiManager.WpsCallback.OnFailed(Android.Net.Wifi.WpsFailureReason)' is abstract in the implementation but is missing in the contract.
3+
EnumValuesMustMatch : Enum value 'Android.App.ApplicationExitInfoReason Android.App.ApplicationExitInfoReason.Other' is (System.Int32)13 in the implementation but (System.Int32)10 in the contract.

0 commit comments

Comments
 (0)