Skip to content

Commit 979ac86

Browse files
committed
Jetpack compose [skip ci]
1 parent 71e1cf7 commit 979ac86

29 files changed

+554
-378
lines changed

build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ buildscript {
1313
classpath(Plugins.kotlinGradlePlugin)
1414
classpath(Plugins.navSafeArgsGradlePlugin)
1515
classpath(Plugins.rulerGradlePlugin)
16+
classpath(Plugins.kotlinComposePlugin)
1617
}
1718
}
1819

buildSrc/src/main/kotlin/Plugins.kt

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ object Plugins {
2323
const val dokka = "org.jetbrains.dokka"
2424
const val kotlin = "kotlin"
2525
const val kotlinAndroid = "kotlin-android"
26+
const val kotlinCompose = "org.jetbrains.kotlin.plugin.compose"
2627
const val kotlinKsp = "com.google.devtools.ksp"
2728
const val mavenPublish = "maven-publish"
2829
const val fladle = "com.osacky.fladle"
@@ -37,6 +38,7 @@ object Plugins {
3738
const val benchmarkGradlePlugin =
3839
"androidx.benchmark:benchmark-gradle-plugin:${Versions.benchmarkPlugin}"
3940
const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
41+
const val kotlinComposePlugin = "org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:${Versions.kotlin}"
4042
const val navSafeArgsGradlePlugin = "androidx.navigation:navigation-safe-args-gradle-plugin:2.6.0"
4143
const val rulerGradlePlugin = "com.spotify.ruler:ruler-gradle-plugin:1.2.1"
4244
const val flankGradlePlugin = "com.osacky.flank.gradle:fladle:0.17.4"

demo/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies {
5050
implementation(libs.androidx.datastore.preferences)
5151
implementation(libs.androidx.fragment)
5252
implementation(libs.androidx.lifecycle.livedata)
53-
implementation(libs.androidx.lifecycle.runtime)
53+
implementation(libs.androidx.lifecycle.runtime.ktx)
5454
implementation(libs.androidx.lifecycle.viewmodel)
5555
implementation(libs.androidx.navigation.fragment)
5656
implementation(libs.androidx.navigation.ui)
+30-20
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
22
id(Plugins.BuildPlugins.application)
33
id(Plugins.BuildPlugins.kotlinAndroid)
4-
id(Plugins.BuildPlugins.navSafeArgs)
4+
id(Plugins.BuildPlugins.kotlinCompose)
55
}
66

77
android {
@@ -14,6 +14,7 @@ android {
1414
targetSdk = Sdk.TARGET_SDK
1515
versionCode = 1
1616
versionName = "1.0"
17+
1718
testInstrumentationRunner = Dependencies.androidJunitRunner
1819
}
1920

@@ -34,33 +35,42 @@ android {
3435
}
3536
}
3637
compileOptions {
37-
// Flag to enable support for the new language APIs
38-
// See https://developer.android.com/studio/write/java8-support
3938
isCoreLibraryDesugaringEnabled = true
39+
sourceCompatibility = JavaVersion.VERSION_11
40+
targetCompatibility = JavaVersion.VERSION_11
41+
}
42+
kotlinOptions {
43+
jvmTarget = "11"
44+
}
45+
buildFeatures {
46+
compose = true
4047
}
41-
42-
kotlin { jvmToolchain(11) }
4348

4449
packaging { resources.excludes.addAll(listOf("META-INF/ASL-2.0.txt", "META-INF/LGPL-3.0.txt")) }
50+
51+
kotlin { jvmToolchain(11) }
4552
}
4653

4754
dependencies {
4855
coreLibraryDesugaring(Dependencies.desugarJdkLibs)
49-
implementation(libs.androidx.activity)
50-
implementation(libs.androidx.appcompat)
51-
implementation(libs.androidx.constraintlayout)
52-
implementation(libs.androidx.datastore.preferences)
53-
implementation(libs.androidx.fragment)
54-
implementation(libs.androidx.lifecycle.livedata)
55-
implementation(libs.androidx.lifecycle.runtime)
56-
implementation(libs.androidx.lifecycle.viewmodel)
57-
implementation(libs.androidx.profileinstaller)
58-
implementation(libs.androidx.work.runtime)
59-
implementation(libs.bundles.androidx.tracing)
60-
implementation(libs.kotlin.stdlib)
61-
implementation(libs.kotlinx.coroutines.android)
62-
implementation(libs.kotlinx.coroutines.core)
63-
implementation(libs.material)
6456
implementation(project(":engine"))
6557

58+
implementation(libs.androidx.core)
59+
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
60+
implementation(libs.androidx.activity.compose)
61+
implementation(platform(libs.androidx.compose.bom))
62+
implementation(libs.androidx.compose.ui)
63+
implementation(libs.androidx.compose.ui.graphics)
64+
implementation(libs.androidx.compose.ui.tooling.preview)
65+
implementation(libs.androidx.compose.material3)
66+
implementation(libs.androidx.navigation.compose)
67+
implementation(libs.bundles.androidx.tracing)
68+
69+
testImplementation(libs.junit)
70+
androidTestImplementation(libs.androidx.test.ext.junit)
71+
androidTestImplementation(libs.androidx.test.espresso.core)
72+
androidTestImplementation(platform(libs.androidx.compose.bom))
73+
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
74+
debugImplementation(libs.androidx.compose.ui.tooling)
75+
debugImplementation(libs.androidx.compose.ui.test.manifest)
6676
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.google.android.fhir.engine.benchmarks.app
2+
3+
import androidx.test.ext.junit.runners.AndroidJUnit4
4+
import androidx.test.platform.app.InstrumentationRegistry
5+
import org.junit.Assert
6+
import org.junit.Test
7+
import org.junit.runner.RunWith
8+
9+
/**
10+
* Instrumented test, which will execute on an Android device.
11+
*
12+
* See [testing documentation](http://d.android.com/tools/testing).
13+
*/
14+
@RunWith(AndroidJUnit4::class)
15+
class ExampleInstrumentedTest {
16+
@Test
17+
fun useAppContext() {
18+
// Context of the app under test.
19+
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20+
Assert.assertEquals("com.google.android.fhir.engine", appContext.packageName)
21+
}
22+
}

engine/benchmarks/app/src/main/AndroidManifest.xml

+5-4
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,23 @@
55
<uses-permission android:name="android.permission.INTERNET" />
66

77
<application
8-
android:name=".BenchmarkApplication"
8+
android:name=".MainApplication"
99
android:allowBackup="true"
1010
android:icon="@mipmap/ic_launcher"
1111
android:label="@string/app_name"
1212
android:networkSecurityConfig="@xml/network_security_config"
1313
android:roundIcon="@mipmap/ic_launcher_round"
1414
android:supportsRtl="true"
15-
android:theme="@style/AppTheme">
15+
android:theme="@style/Theme.Androidfhir">
1616

1717
<profileable
1818
android:shell="true"
1919
tools:targetApi="29" />
2020

2121
<activity
22-
android:name=".BenchmarkActivity"
23-
android:exported="true">
22+
android:name=".MainActivity"
23+
android:exported="true"
24+
android:theme="@style/Theme.Androidfhir">
2425
<intent-filter>
2526
<action android:name="android.intent.action.MAIN" />
2627

engine/benchmarks/app/src/main/java/com/google/android/fhir/engine/benchmarks/app/BenchmarkActivity.kt

-63
This file was deleted.

engine/benchmarks/app/src/main/java/com/google/android/fhir/engine/benchmarks/app/BenchmarkApplication.kt

-65
This file was deleted.

engine/benchmarks/app/src/main/java/com/google/android/fhir/engine/benchmarks/app/BenchmarkViewModel.kt

-52
This file was deleted.

0 commit comments

Comments
 (0)