diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index d01d7c487..553ee3ba3 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -128,7 +128,6 @@ steps: - "--device=ANDROID_10|ANDROID_11|ANDROID_12|ANDROID_13" - "--no-tunnel" - "--aws-public-ip" - - "--fail-fast" concurrency: 25 concurrency_group: "bitbar" concurrency_method: eager diff --git a/CHANGELOG.md b/CHANGELOG.md index dc24bd8c7..cabf9c77b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,10 @@ ### Dependencies -Update bugsnag-cocoa to [v6.28.1](https://github.com/bugsnag/bugsnag-cocoa/releases/tag/v6.28.1) [#774](https://github.com/bugsnag/bugsnag-unity/pull/774) +- Update bugsnag-cocoa to [v6.28.1](https://github.com/bugsnag/bugsnag-cocoa/releases/tag/v6.28.1) [#774](https://github.com/bugsnag/bugsnag-unity/pull/774) + +- Update bugsnag-android from [v5.30.0](https://github.com/bugsnag/bugsnag-android/releases/tag/v5.30.0) to [v6.5.0](https://github.com/bugsnag/bugsnag-android/releases/tag/v6.5.0) + ## 7.7.6 (2024-05-17) diff --git a/Rakefile b/Rakefile index 26f49afaf..93f00b67a 100644 --- a/Rakefile +++ b/Rakefile @@ -133,15 +133,15 @@ def assemble_android filter_abis=true # copy unity lib unity_lib = File.join("bugsnag-android-unity", "build", "outputs", "aar", "bugsnag-android-unity-release.aar") - FileUtils.cp android_core_lib, File.join(android_dir, "bugsnag-android-release.aar") - FileUtils.cp ndk_lib, File.join(android_dir, "bugsnag-android-ndk-release.aar") + FileUtils.cp ndk_lib, File.join(android_dir, "bugsnag-plugin-android-ndk-release.aar") FileUtils.cp anr_lib, File.join(android_dir, "bugsnag-plugin-android-anr-release.aar") FileUtils.cp unity_lib, File.join(android_dir, "bugsnag-android-unity-release.aar") FileUtils.mkdir File.join(android_dir, "Kotlin") FileUtils.cp kotlin_stdlib, File.join(android_dir, "Kotlin/kotlin-stdlib.jar") FileUtils.cp kotlin_stdlib_common, File.join(android_dir, "Kotlin/kotlin-stdlib-common.jar") FileUtils.cp kotlin_annotations, File.join(android_dir, "Kotlin/kotlin-annotations.jar") + end namespace :plugin do diff --git a/android-libs/org.jetbrains.kotlin.kotlin-stdlib-1.5.10.jar b/android-libs/org.jetbrains.kotlin.kotlin-stdlib-1.5.10.jar new file mode 100644 index 000000000..5015b3a03 Binary files /dev/null and b/android-libs/org.jetbrains.kotlin.kotlin-stdlib-1.5.10.jar differ diff --git a/android-libs/org.jetbrains.kotlin.kotlin-stdlib-common-1.5.10.jar b/android-libs/org.jetbrains.kotlin.kotlin-stdlib-common-1.5.10.jar new file mode 100644 index 000000000..7999449e8 Binary files /dev/null and b/android-libs/org.jetbrains.kotlin.kotlin-stdlib-common-1.5.10.jar differ diff --git a/bugsnag-android b/bugsnag-android index f9a1219d1..594600185 160000 --- a/bugsnag-android +++ b/bugsnag-android @@ -1 +1 @@ -Subproject commit f9a1219d11db0c02134d692c7ca3a1765281c0df +Subproject commit 59460018551750dfcce4fd4e9f612eae7826559e diff --git a/src/BugsnagUnity/Native/Android/NativeInterface.cs b/src/BugsnagUnity/Native/Android/NativeInterface.cs index 3bcc9adac..ef0f8cda7 100644 --- a/src/BugsnagUnity/Native/Android/NativeInterface.cs +++ b/src/BugsnagUnity/Native/Android/NativeInterface.cs @@ -160,6 +160,7 @@ public NativeInterface(Configuration cfg) { _configuration = cfg; AndroidJavaObject config = CreateNativeConfig(cfg); + ConfigureNotifierInfo(config); Unity2019OrNewer = IsUnity2019OrNewer(); MainThread = Thread.CurrentThread; using (AndroidJavaClass system = new AndroidJavaClass("java.lang.System")) @@ -312,10 +313,9 @@ public NativeInterface(Configuration cfg) activityName = AndroidJNI.GetStringUTFChars(activityNameObject.GetRawObject()); } } - sessionTracker.Call("updateForegroundTracker", activityName, true, 0L); + sessionTracker.Call("updateContext", activityName, true); } - ConfigureNotifierInfo(client); } } @@ -456,7 +456,7 @@ AndroidJavaObject CreateNativeConfig(Configuration config) // set DiscardedClasses if (config.DiscardClasses != null && config.DiscardClasses.Length > 0) { - obj.Call("setDiscardClasses", GetAndroidStringSetFromArray(config.DiscardClasses)); + obj.Call("setDiscardClasses", GetAndroidRegexPatternSetFromArray(config.DiscardClasses)); } // set ProjectPackages @@ -468,7 +468,7 @@ AndroidJavaObject CreateNativeConfig(Configuration config) // set redacted keys if (config.RedactedKeys != null && config.RedactedKeys.Length > 0) { - obj.Call("setRedactedKeys", GetAndroidStringSetFromArray(config.RedactedKeys)); + obj.Call("setRedactedKeys", GetAndroidRegexPatternSetFromArray(config.RedactedKeys)); } // add unity event callback @@ -508,11 +508,24 @@ private AndroidJavaObject GetAndroidStringSetFromArray(string[] array) return set; } - private void ConfigureNotifierInfo(AndroidJavaObject client) + private AndroidJavaObject GetAndroidRegexPatternSetFromArray(string[] array) { - using (AndroidJavaObject notifier = client.Get("notifier")) + AndroidJavaObject set = new AndroidJavaObject("java.util.HashSet"); + AndroidJavaClass patternClass = new AndroidJavaClass("java.util.regex.Pattern"); + + foreach (var item in array) { + AndroidJavaObject pattern = patternClass.CallStatic("compile", item); + set.Call("add", pattern); + } + return set; + } + + private void ConfigureNotifierInfo(AndroidJavaObject config) + { + using (AndroidJavaObject notifier = config.Call("getNotifier")) + { AndroidJavaObject androidNotifier = new AndroidJavaObject("com.bugsnag.android.Notifier"); androidNotifier.Call("setUrl", androidNotifier.Get("url")); androidNotifier.Call("setName", androidNotifier.Get("name")); diff --git a/src/BugsnagUnity/Native/Android/NativeThread.cs b/src/BugsnagUnity/Native/Android/NativeThread.cs index 743c23be8..4b79b01aa 100644 --- a/src/BugsnagUnity/Native/Android/NativeThread.cs +++ b/src/BugsnagUnity/Native/Android/NativeThread.cs @@ -9,7 +9,7 @@ internal class NativeThread : NativePayloadClassWrapper, IThread { public NativeThread(AndroidJavaObject androidJavaObject) : base(androidJavaObject){} - public string Id { get => GetNativeLong("getId").ToString(); set => SetNativeLong("setId",long.Parse(value)); } + public string Id { get => GetNativeString("getId"); set => SetNativeString("setId",value); } public bool? ErrorReportingThread => GetNativeBool("getErrorReportingThread");