Skip to content

Commit 874090e

Browse files
committed
Jetpack compose [skip ci]
1 parent 71e1cf7 commit 874090e

35 files changed

+837
-378
lines changed

build.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ buildscript {
1313
classpath(Plugins.kotlinGradlePlugin)
1414
classpath(Plugins.navSafeArgsGradlePlugin)
1515
classpath(Plugins.rulerGradlePlugin)
16+
classpath(Plugins.kotlinComposePlugin)
17+
classpath(Plugins.kotlinSerializationPlugin)
1618
}
1719
}
1820

buildSrc/src/main/kotlin/Plugins.kt

+4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ 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"
28+
const val kotlinSerialization = "org.jetbrains.kotlin.plugin.serialization"
2729
const val mavenPublish = "maven-publish"
2830
const val fladle = "com.osacky.fladle"
2931
const val navSafeArgs = "androidx.navigation.safeargs.kotlin"
@@ -37,6 +39,8 @@ object Plugins {
3739
const val benchmarkGradlePlugin =
3840
"androidx.benchmark:benchmark-gradle-plugin:${Versions.benchmarkPlugin}"
3941
const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
42+
const val kotlinComposePlugin = "org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:${Versions.kotlin}"
43+
const val kotlinSerializationPlugin = "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:${Versions.kotlin}"
4044
const val navSafeArgsGradlePlugin = "androidx.navigation:navigation-safe-args-gradle-plugin:2.6.0"
4145
const val rulerGradlePlugin = "com.spotify.ruler:ruler-gradle-plugin:1.2.1"
4246
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)
+32-20
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
plugins {
22
id(Plugins.BuildPlugins.application)
33
id(Plugins.BuildPlugins.kotlinAndroid)
4-
id(Plugins.BuildPlugins.navSafeArgs)
4+
id(Plugins.BuildPlugins.kotlinCompose)
5+
id(Plugins.BuildPlugins.kotlinSerialization)
56
}
67

78
android {
@@ -14,6 +15,7 @@ android {
1415
targetSdk = Sdk.TARGET_SDK
1516
versionCode = 1
1617
versionName = "1.0"
18+
1719
testInstrumentationRunner = Dependencies.androidJunitRunner
1820
}
1921

@@ -34,33 +36,43 @@ android {
3436
}
3537
}
3638
compileOptions {
37-
// Flag to enable support for the new language APIs
38-
// See https://developer.android.com/studio/write/java8-support
3939
isCoreLibraryDesugaringEnabled = true
40+
sourceCompatibility = JavaVersion.VERSION_11
41+
targetCompatibility = JavaVersion.VERSION_11
42+
}
43+
kotlinOptions {
44+
jvmTarget = "11"
45+
}
46+
buildFeatures {
47+
compose = true
4048
}
41-
42-
kotlin { jvmToolchain(11) }
4349

4450
packaging { resources.excludes.addAll(listOf("META-INF/ASL-2.0.txt", "META-INF/LGPL-3.0.txt")) }
51+
52+
kotlin { jvmToolchain(11) }
4553
}
4654

4755
dependencies {
4856
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)
6457
implementation(project(":engine"))
6558

59+
implementation(libs.androidx.core)
60+
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
61+
implementation(libs.androidx.activity.compose)
62+
implementation(platform(libs.androidx.compose.bom))
63+
implementation(libs.androidx.compose.ui)
64+
implementation(libs.androidx.compose.ui.graphics)
65+
implementation(libs.androidx.compose.ui.tooling.preview)
66+
implementation(libs.androidx.compose.material3)
67+
implementation(libs.androidx.navigation.compose)
68+
implementation(libs.bundles.androidx.tracing)
69+
implementation(libs.kotlinx.serialization.json)
70+
71+
testImplementation(libs.junit)
72+
androidTestImplementation(libs.androidx.test.ext.junit)
73+
androidTestImplementation(libs.androidx.test.espresso.core)
74+
androidTestImplementation(platform(libs.androidx.compose.bom))
75+
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
76+
debugImplementation(libs.androidx.compose.ui.tooling)
77+
debugImplementation(libs.androidx.compose.ui.test.manifest)
6678
}
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)