diff --git a/sdk/android/sample/build.gradle.kts b/sdk/android/sample/build.gradle.kts new file mode 100644 index 0000000..f505cd9 --- /dev/null +++ b/sdk/android/sample/build.gradle.kts @@ -0,0 +1,36 @@ +plugins { + id("com.android.application") version "8.11.0" + kotlin("android") version "2.1.21" +} + +android { + namespace = "dev.uatu.sample" + compileSdk = 35 + + defaultConfig { + applicationId = "dev.uatu.sample" + minSdk = 24 + targetSdk = 35 + versionCode = 1 + versionName = "0.0.1" + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = "17" + } + + buildTypes { + debug { + isDebuggable = true + } + } +} + +dependencies { + implementation(project(":sdk-android")) +} diff --git a/sdk/android/sample/src/main/AndroidManifest.xml b/sdk/android/sample/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a4328c4 --- /dev/null +++ b/sdk/android/sample/src/main/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/sdk/android/sample/src/main/kotlin/dev/uatu/sample/MainActivity.kt b/sdk/android/sample/src/main/kotlin/dev/uatu/sample/MainActivity.kt new file mode 100644 index 0000000..9fe9d02 --- /dev/null +++ b/sdk/android/sample/src/main/kotlin/dev/uatu/sample/MainActivity.kt @@ -0,0 +1,48 @@ +package dev.uatu.sample + +import android.app.Activity +import android.graphics.Color +import android.os.Bundle +import android.view.Gravity +import android.widget.Button +import android.widget.LinearLayout +import android.widget.TextView + +class MainActivity : Activity() { + companion object { + @Volatile var clickCount: Int = 0 + } + + private lateinit var label: TextView + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val layout = LinearLayout(this).apply { + orientation = LinearLayout.VERTICAL + gravity = Gravity.CENTER + setBackgroundColor(Color.parseColor("#FAFAFA")) + setPadding(64, 96, 64, 64) + } + + label = TextView(this).apply { + text = "Clicks: 0" + textSize = 28f + setTextColor(Color.BLACK) + gravity = Gravity.CENTER + } + layout.addView(label) + + val button = Button(this).apply { + text = "Click me" + textSize = 18f + setOnClickListener { + clickCount++ + label.text = "Clicks: $clickCount" + } + } + layout.addView(button) + + setContentView(layout) + } +} diff --git a/sdk/android/sample/src/main/kotlin/dev/uatu/sample/SampleApplication.kt b/sdk/android/sample/src/main/kotlin/dev/uatu/sample/SampleApplication.kt new file mode 100644 index 0000000..99a6e91 --- /dev/null +++ b/sdk/android/sample/src/main/kotlin/dev/uatu/sample/SampleApplication.kt @@ -0,0 +1,16 @@ +package dev.uatu.sample + +import android.app.Application +import dev.uatu.sdk.Uatu + +class SampleApplication : Application() { + override fun onCreate() { + super.onCreate() + Uatu.start(this) + Uatu.extract("app_state") { "running" } + Uatu.extract("click_count") { MainActivity.clickCount } + Uatu.extract("uptime_millis") { System.currentTimeMillis() - startedAt } + } + + private val startedAt: Long = System.currentTimeMillis() +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 030f14c..9ac8aed 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,3 +19,5 @@ rootProject.name = "uatu" include(":sidecar") include(":sdk-android") project(":sdk-android").projectDir = file("sdk/android") +include(":sdk-android-sample") +project(":sdk-android-sample").projectDir = file("sdk/android/sample")