diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78cf83b0..38d55148 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Airship DotNet Changelog
+## Version 19.5.0 - Feb 7, 2025
+Minor release that updates the Android SDK to 18.7.0, including AndroidX library updates.
+
+### Changes
+- Updated Android SDK to 18.7.0
+
## Version 19.4.1 - Dec 12, 2024
Minor release that updates the Airship.Net package to no longer depend on MAUI and adds methods to fetch channel and contact subscription lists to the cross-platform library.
diff --git a/Directory.Build.props b/Directory.Build.props
index ffee4e55..8fd53cca 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,15 +5,15 @@
- 17.8.1
- 17.8.1.1
+ 18.7.0
+ 18.7.0
17.10.1
- 17.10.1.1
+ 17.10.1.2
- 19.4.1
- 19.4.1
+ 19.5.0
+ 19.5.0
diff --git a/airship.properties b/airship.properties
index 562e0d07..2ebf3bad 100644
--- a/airship.properties
+++ b/airship.properties
@@ -1,9 +1,9 @@
# Airship native SDK versions
iosVersion = 17.10.1
-androidVersion = 17.8.1
+androidVersion = 18.7.0
# Airship.Net cross-platform version
-crossPlatformVersion = 19.4.1
+crossPlatformVersion = 19.5.0
# Filename of the iOS SDK zip file
iosFrameworkZip = Airship-Xcode15.zip
@@ -12,7 +12,7 @@ iosFrameworkZip = Airship-Xcode15.zip
# If > 0, the revision number will be added to the versions
# defined above as a 4th segment (i.e., MAJOR.MINOR.PATCH.REVISION).
# If = 0, NuGet packages will be versioned using standard 3-segment semver.
-androidRevision = 1
-iosRevision = 1
+androidRevision = 0
+iosRevision = 2
crossPlatformRevision = 0
diff --git a/binderator/config.json b/binderator/config.json
index 0baf5c32..03cfb23f 100644
--- a/binderator/config.json
+++ b/binderator/config.json
@@ -17,96 +17,96 @@
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-adm",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.Adm",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-automation",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.Automation",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-core",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.Core",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-fcm",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.Fcm",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-feature-flag",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.FeatureFlag",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-layout",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.Layout",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-live-update",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.LiveUpdate",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-message-center",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.MessageCenter",
"dependencyOnly": false
},
{
"groupId": "com.urbanairship.android",
"artifactId": "urbanairship-preference-center",
- "version": "17.8.1",
- "nugetVersion": "17.8.1",
+ "version": "18.7.0",
+ "nugetVersion": "18.7.0",
"nugetId": "Airship.Net.Android.PreferenceCenter",
"dependencyOnly": false
},
{
"groupId": "androidx.annotation",
"artifactId": "annotation",
- "version": "1.5.0",
- "nugetVersion": "1.5.0.2",
+ "version": "1.9.1",
+ "nugetVersion": "1.9.1.1",
"nugetId": "Xamarin.AndroidX.Annotation",
"dependencyOnly": true
},
{
"groupId": "androidx.appcompat",
"artifactId": "appcompat",
- "version": "1.6.1",
- "nugetVersion": "1.6.0.1",
+ "version": "1.7.0",
+ "nugetVersion": "1.7.0.3",
"nugetId": "Xamarin.AndroidX.AppCompat",
"dependencyOnly": true
},
{
"groupId": "androidx.concurrent",
"artifactId": "concurrent-futures",
- "version": "1.1.0",
- "nugetVersion": "1.1.0.11",
+ "version": "1.2.0",
+ "nugetVersion": "1.2.0.4",
"nugetId": "Xamarin.AndroidX.Concurrent.Futures",
"dependencyOnly": true
},
@@ -114,15 +114,15 @@
"groupId": "androidx.constraintlayout",
"artifactId": "constraintlayout",
"version": "2.1.4",
- "nugetVersion": "2.1.4.3",
+ "nugetVersion": "2.1.4.16",
"nugetId": "Xamarin.AndroidX.ConstraintLayout",
"dependencyOnly": true
},
{
"groupId": "androidx.core",
"artifactId": "core",
- "version": "1.9.0",
- "nugetVersion": "1.9.0.2",
+ "version": "1.15.0",
+ "nugetVersion": "1.15.0.1",
"nugetId": "Xamarin.AndroidX.Core",
"dependencyOnly": true
},
@@ -130,79 +130,87 @@
"groupId": "androidx.customview",
"artifactId": "customview",
"version": "1.1.0",
- "nugetVersion": "1.1.0.15",
+ "nugetVersion": "1.1.0.29",
"nugetId": "Xamarin.AndroidX.CustomView",
"dependencyOnly": true
},
{
"groupId": "androidx.fragment",
"artifactId": "fragment",
- "version": "1.5.5",
- "nugetVersion": "1.5.5.1",
+ "version": "1.8.3",
+ "nugetVersion": "1.8.5.1",
"nugetId": "Xamarin.AndroidX.Fragment",
"dependencyOnly": true
},
+ {
+ "groupId": "androidx.fragment",
+ "artifactId": "fragment-ktx",
+ "version": "1.8.3",
+ "nugetVersion": "1.8.5.1",
+ "nugetId": "Xamarin.AndroidX.Fragment.Ktx",
+ "dependencyOnly": true
+ },
{
"groupId": "androidx.lifecycle",
"artifactId": "lifecycle-common",
- "version": "2.5.1",
- "nugetVersion": "2.5.1.1",
+ "version": "2.8.7",
+ "nugetVersion": "2.8.7.1",
"nugetId": "Xamarin.AndroidX.Lifecycle.Common",
"dependencyOnly": true
},
{
"groupId": "androidx.lifecycle",
"artifactId": "lifecycle-common-java8",
- "version": "2.5.1",
- "nugetVersion": "2.5.1.1",
+ "version": "2.8.7",
+ "nugetVersion": "2.8.7.1",
"nugetId": "Xamarin.AndroidX.Lifecycle.Common.Java8",
"dependencyOnly": true
},
{
"groupId": "androidx.lifecycle",
"artifactId": "lifecycle-runtime-ktx",
- "version": "2.5.1",
- "nugetVersion": "2.5.1.1",
+ "version": "2.8.7",
+ "nugetVersion": "2.8.7.1",
"nugetId": "Xamarin.AndroidX.Lifecycle.Runtime.Ktx",
"dependencyOnly": true
},
{
"groupId": "androidx.lifecycle",
"artifactId": "lifecycle-viewmodel-ktx",
- "version": "2.5.1",
- "nugetVersion": "2.5.1.1",
+ "version": "2.8.7",
+ "nugetVersion": "2.8.7.1",
"nugetId": "Xamarin.AndroidX.Lifecycle.ViewModel.Ktx",
"dependencyOnly": true
},
{
"groupId": "androidx.recyclerview",
"artifactId": "recyclerview",
- "version": "1.2.1",
- "nugetVersion": "1.2.1.9",
+ "version": "1.3.2",
+ "nugetVersion": "1.3.2.8",
"nugetId": "Xamarin.AndroidX.RecyclerView",
"dependencyOnly": true
},
{
"groupId": "androidx.room",
"artifactId": "room-ktx",
- "version": "2.5.1",
- "nugetVersion": "2.5.0",
+ "version": "2.6.1",
+ "nugetVersion": "2.6.1.8",
"nugetId": "Xamarin.AndroidX.Room.Room.Ktx",
"dependencyOnly": true
},
{
"groupId": "androidx.room",
"artifactId": "room-runtime",
- "version": "2.5.1",
- "nugetVersion": "2.5.0",
+ "version": "2.6.1",
+ "nugetVersion": "2.6.1.8",
"nugetId": "Xamarin.AndroidX.Room.Runtime",
"dependencyOnly": true
},
{
"groupId": "androidx.startup",
"artifactId": "startup-runtime",
- "version": "1.1.1",
- "nugetVersion": "1.1.1.4",
+ "version": "1.2.0",
+ "nugetVersion": "1.2.0.1",
"nugetId": "Xamarin.AndroidX.Startup.StartupRuntime",
"dependencyOnly": true
},
@@ -210,79 +218,87 @@
"groupId": "androidx.swiperefreshlayout",
"artifactId": "swiperefreshlayout",
"version": "1.1.0",
- "nugetVersion": "1.1.0.10",
+ "nugetVersion": "1.1.0.24",
"nugetId": "Xamarin.AndroidX.SwipeRefreshLayout",
"dependencyOnly": true
},
{
"groupId": "androidx.webkit",
"artifactId": "webkit",
- "version": "1.6.0",
- "nugetVersion": "1.6.0",
+ "version": "1.12.1",
+ "nugetVersion": "1.12.1.1",
"nugetId": "Xamarin.AndroidX.WebKit",
"dependencyOnly": true
},
{
"groupId": "androidx.work",
"artifactId": "work-runtime",
- "version": "2.8.0",
- "nugetVersion": "2.7.1.5",
+ "version": "2.10.0",
+ "nugetVersion": "2.10.0.1",
"nugetId": "Xamarin.AndroidX.Work.Runtime",
"dependencyOnly": true
},
+ {
+ "groupId": "com.github.bumptech.glide",
+ "artifactId": "glide",
+ "version": "4.16.0",
+ "nugetVersion": "4.16.0.6",
+ "nugetId": "Xamarin.Android.Glide",
+ "dependencyOnly": true
+ },
{
"groupId": "com.google.android.gms",
"artifactId": "play-services-base",
- "version": "18.1.0",
- "nugetVersion": "118.1.0.1",
+ "version": "18.5.0",
+ "nugetVersion": "118.5.0.3",
"nugetId": "Xamarin.GooglePlayServices.Base",
"dependencyOnly": true
},
{
"groupId": "com.google.android.material",
"artifactId": "material",
- "version": "1.6.1",
- "nugetVersion": "1.6.1.1",
+ "version": "1.11.0",
+ "nugetVersion": "1.11.0.3",
"nugetId": "Xamarin.Google.Android.Material",
"dependencyOnly": true
},
{
"groupId": "com.google.firebase",
"artifactId": "firebase-messaging",
- "version": "23.1.1",
- "nugetVersion": "123.1.1.1",
+ "version": "24.1.0",
+ "nugetVersion": "124.1.0",
"nugetId": "Xamarin.Firebase.Messaging",
"dependencyOnly": true
},
{
"groupId": "org.jetbrains.kotlin",
"artifactId": "kotlin-stdlib",
- "version": "1.7.10",
- "nugetVersion": "1.8.0.1",
+ "version": "2.0.21",
+ "nugetVersion": "2.0.21.2",
"nugetId": "Xamarin.Kotlin.StdLib",
"dependencyOnly": true
},
{
"groupId": "org.jetbrains.kotlin",
"artifactId": "kotlin-stdlib-jdk8",
- "version": "1.7.10",
- "nugetVersion": "1.8.0.1",
+ "version": "2.0.21",
+ "nugetVersion": "2.0.21.2",
"nugetId": "Xamarin.Kotlin.StdLib.Jdk8",
"dependencyOnly": true
},
{
"groupId": "org.jetbrains.kotlinx",
"artifactId": "kotlinx-coroutines-android",
- "version": "1.6.4",
- "nugetVersion": "1.6.4.2",
+ "version": "1.9.0",
+ "nugetVersion": "1.9.0.2",
"nugetId": "Xamarin.KotlinX.Coroutines.Android",
"dependencyOnly": true
},
{
"groupId": "org.jetbrains.kotlinx",
"artifactId": "kotlinx-coroutines-core",
- "version": "1.6.4",
- "nugetVersion": "1.6.4.2",
+ "version": "1.9.0",
+ "nugetVersion": "1.9.0.2",
"nugetId": "Xamarin.KotlinX.Coroutines.Core",
"dependencyOnly": true
}
diff --git a/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml b/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml
index c8fb9ec3..a1346102 100644
--- a/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml
+++ b/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml
@@ -19,5 +19,8 @@
+
+
+
diff --git a/binderator/source/com.urbanairship.android/urbanairship-core/Additions/UAirship.cs b/binderator/source/com.urbanairship.android/urbanairship-core/Additions/UAirship.cs
index 22a06a22..bc7f8d46 100644
--- a/binderator/source/com.urbanairship.android/urbanairship-core/Additions/UAirship.cs
+++ b/binderator/source/com.urbanairship.android/urbanairship-core/Additions/UAirship.cs
@@ -30,7 +30,7 @@ static UAirship()
if (crossPlatformVersions.Length >= 1)
{
var version = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(UACrossPlatformVersionAttribute), false)[0] as UACrossPlatformVersionAttribute;
- airship.Analytics.RegisterSDKExtension(AnalyticsClass.ExtensionXamarin, version!.Version.ToString());
+ airship.Analytics.RegisterSDKExtension(Extension.DotNet!, version!.Version.ToString());
}
}));
}
diff --git a/binderator/source/com.urbanairship.android/urbanairship-message-center/Additions/Message.cs b/binderator/source/com.urbanairship.android/urbanairship-message-center/Additions/Message.cs
index 7c37c181..529da189 100644
--- a/binderator/source/com.urbanairship.android/urbanairship-message-center/Additions/Message.cs
+++ b/binderator/source/com.urbanairship.android/urbanairship-message-center/Additions/Message.cs
@@ -8,7 +8,7 @@ public partial class Message
{
int Java.Lang.IComparable.CompareTo(Java.Lang.Object obj)
{
- return CompareTo ((Message) obj);
+ return CompareTo((Message) obj);
}
}
}
diff --git a/binderator/source/com.urbanairship.android/urbanairship-preference-center/Transforms/Metadata.xml b/binderator/source/com.urbanairship.android/urbanairship-preference-center/Transforms/Metadata.xml
index 802b43c9..073e07ea 100644
--- a/binderator/source/com.urbanairship.android/urbanairship-preference-center/Transforms/Metadata.xml
+++ b/binderator/source/com.urbanairship.android/urbanairship-preference-center/Transforms/Metadata.xml
@@ -1,4 +1,10 @@
UrbanAirship.PreferenceCenter
+
+ Java.Lang.Object
+ Java.Lang.Object[]
+
+ Java.Lang.Object
+ Java.Lang.Object[]
diff --git a/src/Airship.Net/Platforms/Android/Airship.cs b/src/Airship.Net/Platforms/Android/Airship.cs
index b452c01e..dcd29812 100644
--- a/src/Airship.Net/Platforms/Android/Airship.cs
+++ b/src/Airship.Net/Platforms/Android/Airship.cs
@@ -111,7 +111,7 @@ public bool UserNotificationsEnabled
public Features EnabledFeatures
{
- get => FeaturesFromUAFeatures(UAirship.Shared().PrivacyManager.EnabledFeatures);
+ get => FeaturesFromUAFeatures(UAirship.Shared().PrivacyManager.EnabledFeatures.ToArray()!);
set => UAirship.Shared().PrivacyManager.SetEnabledFeatures(UaFeaturesFromFeatures(value));
}
@@ -123,68 +123,68 @@ public Features EnabledFeatures
public bool IsAnyFeatureEnabled() => EnabledFeatures != Features.None;
- private static int[] UaFeaturesFromFeatures(Features features)
+ private static PrivacyManager.Feature[] UaFeaturesFromFeatures(Features features)
{
- List uAFeatures = new();
+ List uAFeatures = new();
if (features.HasFlag(Features.InAppAutomation))
{
- uAFeatures.Add(PrivacyManager.FeatureInAppAutomation);
+ uAFeatures.Add(PrivacyManager.Feature.InAppAutomation);
}
if (features.HasFlag(Features.MessageCenter))
{
- uAFeatures.Add(PrivacyManager.FeatureMessageCenter);
+ uAFeatures.Add(PrivacyManager.Feature.MessageCenter);
}
if (features.HasFlag(Features.Push))
{
- uAFeatures.Add(PrivacyManager.FeaturePush);
+ uAFeatures.Add(PrivacyManager.Feature.Push);
}
if (features.HasFlag(Features.Analytics))
{
- uAFeatures.Add(PrivacyManager.FeatureAnalytics);
+ uAFeatures.Add(PrivacyManager.Feature.Analytics);
}
if (features.HasFlag(Features.TagsAndAttributes))
{
- uAFeatures.Add(PrivacyManager.FeatureTagsAndAttributes);
+ uAFeatures.Add(PrivacyManager.Feature.TagsAndAttributes);
}
if (features.HasFlag(Features.Contacts))
{
- uAFeatures.Add(PrivacyManager.FeatureContacts);
+ uAFeatures.Add(PrivacyManager.Feature.Contacts);
}
return uAFeatures.ToArray();
}
- private static Features FeaturesFromUAFeatures(int uAFeatures)
+ private static Features FeaturesFromUAFeatures(PrivacyManager.Feature[] uAFeatures)
{
Features features = Features.None;
- if ((uAFeatures & PrivacyManager.FeatureInAppAutomation) == PrivacyManager.FeatureInAppAutomation)
+ if (uAFeatures.Contains(PrivacyManager.Feature.InAppAutomation))
{
features |= Features.InAppAutomation;
}
- if ((uAFeatures & PrivacyManager.FeatureMessageCenter) == PrivacyManager.FeatureMessageCenter)
+ if (uAFeatures.Contains(PrivacyManager.Feature.MessageCenter))
{
features |= Features.MessageCenter;
}
- if ((uAFeatures & PrivacyManager.FeaturePush) == PrivacyManager.FeaturePush)
+ if (uAFeatures.Contains(PrivacyManager.Feature.Push))
{
features |= Features.Push;
}
- if ((uAFeatures & PrivacyManager.FeatureAnalytics) == PrivacyManager.FeatureAnalytics)
+ if (uAFeatures.Contains(PrivacyManager.Feature.Analytics))
{
features |= Features.Analytics;
}
- if ((uAFeatures & PrivacyManager.FeatureTagsAndAttributes) == PrivacyManager.FeatureTagsAndAttributes)
+ if (uAFeatures.Contains(PrivacyManager.Feature.TagsAndAttributes))
{
features |= Features.TagsAndAttributes;
}
- if ((uAFeatures & PrivacyManager.FeatureContacts) == PrivacyManager.FeatureContacts)
+ if (uAFeatures.Contains(PrivacyManager.Feature.Contacts))
{
features |= Features.Contacts;
}
@@ -607,8 +607,18 @@ private void ApplyContactSubscriptionListHelper(List InAppAutomation.Shared().Enabled;
- set => InAppAutomation.Shared().Enabled = value;
+ get => IsFeatureEnabled(Features.InAppAutomation);
+ set
+ {
+ if (value)
+ {
+ EnableFeatures(Features.InAppAutomation);
+ }
+ else
+ {
+ DisableFeatures(Features.InAppAutomation);
+ }
+ }
}
public bool InAppAutomationPaused
@@ -619,8 +629,8 @@ public bool InAppAutomationPaused
public TimeSpan InAppAutomationDisplayInterval
{
- get => TimeSpan.FromMilliseconds(InAppAutomation.Shared().InAppMessageManager!.DisplayInterval);
- set => InAppAutomation.Shared().InAppMessageManager!.SetDisplayInterval((long)value.TotalMilliseconds, TimeUnit.Milliseconds!);
+ get => TimeSpan.FromMilliseconds(InAppAutomation.Shared().InAppMessaging!.DisplayInterval);
+ set => InAppAutomation.Shared().InAppMessaging!.DisplayInterval = (long)value.TotalMilliseconds;
}
public bool OnDeepLink(string deepLink)
diff --git a/src/SharedAssemblyInfo.Common.cs b/src/SharedAssemblyInfo.Common.cs
index 3b09aca7..8308a196 100644
--- a/src/SharedAssemblyInfo.Common.cs
+++ b/src/SharedAssemblyInfo.Common.cs
@@ -6,4 +6,4 @@
// Change them to the values specific to your project.
// Cross-platform version of the plugin
-[assembly: UACrossPlatformVersion ("19.4.1")]
+[assembly: UACrossPlatformVersion ("19.5.0")]
diff --git a/src/SharedAssemblyInfo.CrossPlatform.cs b/src/SharedAssemblyInfo.CrossPlatform.cs
index 8f46f2b1..61381d29 100644
--- a/src/SharedAssemblyInfo.CrossPlatform.cs
+++ b/src/SharedAssemblyInfo.CrossPlatform.cs
@@ -12,5 +12,5 @@
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-[assembly: AssemblyVersion ("19.4.1")]
+[assembly: AssemblyVersion ("19.5.0")]
diff --git a/src/SharedAssemblyInfo.iOS.cs b/src/SharedAssemblyInfo.iOS.cs
index df8aa93a..0cf49b40 100644
--- a/src/SharedAssemblyInfo.iOS.cs
+++ b/src/SharedAssemblyInfo.iOS.cs
@@ -17,4 +17,4 @@
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-[assembly: AssemblyVersion ("19.4.1")]
+[assembly: AssemblyVersion ("19.5.0")]