Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0d220f0
Migrate catalog app to Kotlin Multiplatform
ellykits Feb 2, 2026
14905d0
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 2, 2026
b0a950a
Fix minor UI issues on catalog and support overriding view with custo…
ellykits Feb 4, 2026
919834d
Fix padding and color issues on questionnaire UI
ellykits Feb 4, 2026
a9e8dc5
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 11, 2026
f7d11cc
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 12, 2026
f971938
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 13, 2026
79eb175
Implement error state bottom sheet and submit confirmation dialog
ellykits Feb 13, 2026
2561b66
Redesign error state components
ellykits Feb 17, 2026
eede199
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 17, 2026
ab7b3d0
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 24, 2026
beea8da
Merge branch 'master' into catalog-kmp-migration
ellykits Feb 24, 2026
0fb221a
Fix expression evaluation
ellykits Feb 25, 2026
33327c1
Refactore implementation for setting context variables for fhirpath
ellykits Feb 27, 2026
b86ca22
Implement FhirPathService utility object
ellykits Mar 2, 2026
5f450dd
Clean up unused code
ellykits Mar 3, 2026
25c93bd
KMP datacapture fixes (WIP) (#9)
LZRS Mar 3, 2026
8e79566
Cleanup unused Android resources
ellykits Mar 9, 2026
ef36005
Merge branch 'catalog-kmp-migration' of github.com:ellykits/android-f…
ellykits Mar 9, 2026
49b5584
Move info card placement to bottom (#12)
LZRS Mar 9, 2026
840b333
Fix validation for group paginated questionnaires (#10)
LZRS Mar 9, 2026
e9b2217
Set catalog app theme to app compats no actionbar theme
ellykits Mar 9, 2026
bfd96a0
Add catalog-iosApp module
ellykits Mar 9, 2026
f26f113
Fix text not showing in QuestionnaireResponse.Item (#13)
LZRS Mar 9, 2026
da8edab
Delete unused dependencies
ellykits Mar 10, 2026
2e09858
Reinstate required dependencies
ellykits Mar 10, 2026
679e310
Skip wasmJS build for catalog in CI (#14)
LZRS Mar 18, 2026
927dfc6
Migrate contrib barcode to kmp
LZRS Mar 17, 2026
2b65bf9
Use kscan library for barcode scanning
LZRS Mar 19, 2026
9dda999
Upgrade kscan to 0.8.1 to support desktopTarget
LZRS Mar 24, 2026
dd1a88f
Use moko for permission handling
LZRS Mar 24, 2026
fbf12b2
Update compose multiplatform plugin to v1.10.3
LZRS Mar 25, 2026
081a2cb
Revert custom test applicationId
LZRS Mar 25, 2026
f832538
Update dependency licenses
LZRS Mar 25, 2026
b6f9d86
Replace contrib:barcode with its kmp version
LZRS Mar 25, 2026
53b16c2
Revert to extending from ComponentActivity
LZRS Mar 25, 2026
9c57df5
Migrate locationwidget to kmp using compass library
LZRS Mar 30, 2026
4d1d8fe
Add jai-imageio-core license for redistribution
LZRS Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ jobs:
run: ./gradlew spotlessCheck --scan --full-stacktrace

- name: Build (full) with Gradle
run: ./gradlew build -x :datacapture-kmp:build -x :sdc-kmp-demo:build --scan --full-stacktrace
run: ./gradlew build -Pcatalog.wasm.enabled=false -x :datacapture-kmp:build -x :sdc-kmp-demo:build --scan --full-stacktrace

- name: Check with Gradle
run: ./gradlew check -x :datacapture-kmp:check -x :sdc-kmp-demo:check --scan --full-stacktrace
run: ./gradlew check -Pcatalog.wasm.enabled=false -x :datacapture-kmp:check -x :sdc-kmp-demo:check --scan --full-stacktrace

- name: Run tests for datacapture Kotlin Multiplatform desktop environment with X Virtual Framebuffer
run: |
Expand Down
39 changes: 39 additions & 0 deletions LICENSES-3RD-PARTY/LICENSE-JAI-IMAGEIO
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Copyright (c) 2005 Sun Microsystems, Inc.
Copyright © 2010-2014 University of Manchester
Copyright © 2010-2015 Stian Soiland-Reyes
Copyright © 2015 Peter Hull
All Rights Reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistribution of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

- Redistribution in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.

Neither the name of Sun Microsystems, Inc. or the names of
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

This software is provided "AS IS," without a warranty of any
kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL
NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF
USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR
ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

You acknowledge that this software is not designed or intended for
use in the design, construction, operation or maintenance of any
nuclear facility.
12 changes: 11 additions & 1 deletion buildSrc/src/main/kotlin/LicenseeConfig.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2025 Google LLC
* Copyright 2023-2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -224,6 +224,11 @@ private fun Project.configureLicensee() {

// Logback
allowDependency("ch.qos.logback", "logback-core", "1.4.14") { because("LGPL") }

// jai-imageio-core in zxing
allowDependency("com.github.jai-imageio", "jai-imageio-core", "1.4.0") {
because("https://github.com/jai-imageio/jai-imageio-core/blob/master/LICENSE.txt")
}
}
}

Expand All @@ -234,4 +239,9 @@ private val nonStandardLicenseUrls =
"http://www.opensource.org/licenses/bsd-license.php",
"https://asm.ow2.io/license.html",
"https://developer.android.com/studio/terms.html",
"https://github.com/vinceglb/FileKit/blob/main/LICENSE",
"https://github.com/hypfvieh/dbus-java/blob/master/LICENSE",
"https://developers.google.com/ml-kit/terms",
"https://github.com/icerockdev/moko-permissions/blob/master/LICENSE.md",
"https://github.com/jordond/compass/blob/master/LICENSE",
)
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Releases.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2025 Google LLC
* Copyright 2023-2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
4 changes: 4 additions & 0 deletions catalog-iosApp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## User settings
xcuserdata/

Configuration/LocalConfig.xcconfig
14 changes: 14 additions & 0 deletions catalog-iosApp/Configuration/Config.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
TEAM_ID=

CURRENT_PROJECT_VERSION=1
MARKETING_VERSION=1.0

// Optionally include `LocalConfig.xcconfig`
// that includes local overrides if it exists.
// `#include?` is supported as of Xcode 8

#include? "LocalConfig.xcconfig"

PRODUCT_NAME=Catalog
DEVELOPMENT_TEAM=$(TEAM_ID)
PRODUCT_BUNDLE_IDENTIFIER=com.google.android.fhir.catalog$(TEAM_ID)
64 changes: 64 additions & 0 deletions catalog-iosApp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#### Running on a real iOS device

To run in a real iOS device, you'll need the following:

* The `TEAM_ID` associated with your [Apple ID](https://support.apple.com/en-us/HT204316)
* The iOS device registered in Xcode

> **Note**
> Before you continue, we suggest creating a simple "Hello, world!" project in Xcode to ensure you can successfully run
> apps on your device.
> You can follow the instructions below or watch
> this [Stanford CS193P lecture recording](https://youtu.be/bqu6BquVi2M?start=716&end=1399).

<details>
<summary>How to create and run a simple project in Xcode</summary>

1. On the Xcode welcome screen, select **Create a new project in Xcode**.
2. On the **iOS** tab, choose the **App** template. Click **Next**.
3. Specify the product name and keep other settings default. Click **Next**.
4. Select where to store the project on your computer and click **Create**. You'll see an app that displays "Hello,
world!" on the device screen.
5. At the top of your Xcode screen, click on the device name near the **Run** button.
6. Plug your device into the computer. You'll see this device in the list of run options.
7. Choose your device and click **Run**.

</details>

##### Finding your Team ID

Install KDoctor with [Homebrew](https://brew.sh/):

```text
brew install kdoctor
```

Run `kdoctor --team-ids` to find your Team ID.
KDoctor will list all Team IDs currently configured on your system, for example:

```text
3ABC246XYZ (Max Sample)
ZABCW6SXYZ (SampleTech Inc.)
```

<details>
<summary>Alternative way to find your Team ID</summary>

If KDoctor doesn't work for you, try this alternative method:

1. In Android Studio, run the `iosApp` configuration with the selected real device. The build should fail.
2. Go to Xcode and select **Open a project or file**.
3. Navigate to the `iosApp/iosApp.xcworkspace` file of your project.
4. In the left-hand menu, select `iosApp`.
5. Navigate to **Signing & Capabilities**.
6. In the **Team** list, select your team.

If you haven't set up your team yet, use the **Add account** option and follow the steps.

</details>

To run the application, set the `TEAM_ID`:

1. Navigate to the `Configuration/LocalConfig.xcconfig` file.
2. Set your `TEAM_ID`.
3. Re-open the project in Android Studio. It should show the registered iOS device in the `iosApp` run configuration.
Loading
Loading