-
-
Notifications
You must be signed in to change notification settings - Fork 31
/
AutoInstallState.kt
49 lines (40 loc) · 1.32 KB
/
AutoInstallState.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@file:Suppress("UnstableApiUsage")
package io.sentry.android.gradle.autoinstall
import io.sentry.android.gradle.SentryPlugin.Companion.SENTRY_SDK_VERSION
import io.sentry.android.gradle.util.getBuildServiceName
import java.io.Serializable
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.gradle.api.services.BuildService
import org.gradle.api.services.BuildServiceParameters
abstract class AutoInstallState :
BuildService<BuildServiceParameters.None>,
AutoCloseable,
Serializable {
@get:Synchronized
@set:Synchronized
var sentryVersion: String = SENTRY_SDK_VERSION
@get:Synchronized
@set:Synchronized
var installOkHttp: Boolean = false
@get:Synchronized
@set:Synchronized
var installFragment: Boolean = false
@get:Synchronized
@set:Synchronized
var installTimber: Boolean = false
override fun close() {
sentryVersion = SENTRY_SDK_VERSION
installTimber = false
installFragment = false
installOkHttp = false
}
companion object {
fun register(project: Project): Provider<AutoInstallState> {
return project.gradle.sharedServices.registerIfAbsent(
getBuildServiceName(AutoInstallState::class.java),
AutoInstallState::class.java
) {}
}
}
}