diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 110f01e..4698623 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,14 +24,14 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Cache gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} restore-keys: | ${{ runner.os }}-gradle- - name: Cache konan - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.konan key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 87eb9c2..ed2421e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,7 +29,7 @@ jobs: uses: gradle/wrapper-validation-action@v1 - name: Cache gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} @@ -37,7 +37,7 @@ jobs: ${{ runner.os }}-gradle- - name: Cache konan - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.konan key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c57f597..c16e282 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Cache gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} @@ -32,7 +32,7 @@ jobs: ${{ runner.os }}-gradle- - name: Cache konan - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.konan key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} diff --git a/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt b/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt index 7a603b7..d7a1830 100644 --- a/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt +++ b/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt @@ -32,4 +32,8 @@ actual class CrashlyticsCallsActual : CrashlyticsCalls { override fun setUserId(identifier: String) { FirebaseCrashlytics.getInstance().setUserId(identifier) } + + override fun setCollectionEnabled(enabled: Boolean) { + FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(enabled) + } } \ No newline at end of file diff --git a/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt b/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt index 6e289ef..390bbfe 100644 --- a/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt +++ b/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt @@ -38,4 +38,8 @@ actual class CrashlyticsCallsActual : CrashlyticsCalls { override fun setUserId(identifier: String) { FIRCrashlyticsSetUserID(identifier) } + + override fun setCollectionEnabled(enabled: Boolean) { + FIRCrashlyticsSetCollectionEnabled(enabled) + } } diff --git a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt index 454b99f..c954a55 100644 --- a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt +++ b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt @@ -6,6 +6,7 @@ interface CrashlyticsCalls { fun sendFatalException(throwable: Throwable) fun setCustomValue(key: String, value: Any) fun setUserId(identifier: String) + fun setCollectionEnabled(enabled: Boolean) } expect class CrashlyticsCallsActual() : CrashlyticsCalls diff --git a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt index 9db53cd..9763f58 100644 --- a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt +++ b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt @@ -24,6 +24,10 @@ object CrashlyticsKotlin { fun setUserId(identifier: String) { implementation.setUserId(identifier) } + + fun setCollectionEnabled(enabled: Boolean) { + implementation.setCollectionEnabled(enabled) + } } /** @@ -54,4 +58,8 @@ internal object EmptyCalls : CrashlyticsCalls { override fun setUserId(identifier: String) { } + + override fun setCollectionEnabled(enabled: Boolean) { + + } } \ No newline at end of file diff --git a/crashlytics/src/nativeInterop/cinterop/crashlytics.def b/crashlytics/src/nativeInterop/cinterop/crashlytics.def index 9cb9892..309b9ee 100644 --- a/crashlytics/src/nativeInterop/cinterop/crashlytics.def +++ b/crashlytics/src/nativeInterop/cinterop/crashlytics.def @@ -136,6 +136,13 @@ void FIRCrashlyticsSetUserID(NSString* _Nonnull identifier) { setUserID(crashlytics, selector, identifier); } +void FIRCrashlyticsSetCollectionEnabled(BOOL enabled) { + id crashlytics = FIRCrashlyticsInstance(); + SEL selector = NSSelectorFromString(@"setCrashlyticsCollectionEnabled:"); + void (*setCrashlyticsCollectionEnabled)(id, SEL, BOOL) = FIRMethodForSelector(crashlytics, selector); + setCrashlyticsCollectionEnabled(crashlytics, selector, enabled); +} + void FIRCrashlyticsSetCustomValue(NSString* _Nonnull key, id __nullable value) { id crashlytics = FIRCrashlyticsInstance(); SEL selector = NSSelectorFromString(@"setCustomValue:forKey:");