Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
799efa8
[UNTIL-14107] started migration to KMP
SloInfinity Jun 16, 2025
8fb04a2
[UNTIL-14107] working android prototype
SloInfinity Jun 19, 2025
369e1fa
[UNTIL-14107] added IOS implementation for qr scanning, not working yet
SloInfinity Jun 23, 2025
963d966
[UNTIL-14107] test commit, after ios camera implementation
SloInfinity Jun 24, 2025
a7956ca
[UNTIL-14107] code cleanup
SloInfinity Jun 24, 2025
57d80c4
[UNTIL-14107] added error display for issues with camera view
SloInfinity Jun 30, 2025
62d951f
[UNTIL-14107] fixed issue with ios camera
SloInfinity Jul 1, 2025
e7bf236
[UNTIL-14107] Added comments to the IOS implementation
SloInfinity Jul 1, 2025
cb2ba80
[UNTIL-14107] reworked library building to be in line with input engine
SloInfinity Jul 2, 2025
98bf298
[UNTIL-14107] added documentation and made some classes internal
SloInfinity Jul 3, 2025
f2a6987
[UNTIL-14107] set up testing and added some tests
SloInfinity Jul 7, 2025
6874ee6
[UNTIL-14107] applied spotless fixes
SloInfinity Jul 8, 2025
866437d
[UNTIL-14107] setup unit testing, wrote some IOS unit tests
SloInfinity Jul 10, 2025
291a3d9
[UNTIL-14107] added some android implementation tests
SloInfinity Jul 16, 2025
487e5ac
[UNTIL-14107] fixed spotless
SloInfinity Jul 16, 2025
f0fbf64
Common fixed and test covered
djordjeh Sep 11, 2025
d2355e0
Commons tests migration
djordjeh Sep 11, 2025
a19bc9e
Android part test coverage
djordjeh Sep 11, 2025
f128baa
Spotless fix
djordjeh Sep 11, 2025
fed386a
Merge pull request #39 from tillhub/msirok/task/UNTIL-14107/kmp-migra…
SloInfinity Sep 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"permissions": {
"allow": [
"Bash(./gradlew:*)",
"Bash(gh auth:*)",
"Bash(gh pr diff:*)",
"Bash(find:*)"
],
"deny": [],
"ask": []
}
}
54 changes: 0 additions & 54 deletions .editorconfig

This file was deleted.

69 changes: 69 additions & 0 deletions .github/workflows/develop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Android CI - Develop

on:
push:
branches: [ "develop" ]

jobs:
ui-tests:
name: Run android tests and build staging
runs-on: ubuntu-latest
timeout-minutes: 60

steps:

- name: Checking out branch
uses: actions/checkout@v4

- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Setup Android SDK
uses: android-actions/setup-android@v3

# Hardware accelerated Android virtualization on Actions Linux larger hosted runners
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

# Significantly reduce emulator startup time by setting up AVD snapshot caching
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-30

- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: ReactiveCircus/android-emulator-runner@v2.33.0
with:
api-level: 30
target: google_atd
arch: x86
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."

- name: Run Android tests
uses: ReactiveCircus/android-emulator-runner@v2.33.0
with:
api-level: 30
target: google_atd
arch: x86
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew :scan-engine:connectedAndroidTest
4 changes: 2 additions & 2 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ jobs:
- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Run Detekt Code Analysis
run: ./gradlew detekt
- name: Run Spotless Code Analysis
run: ./gradlew spotlessCheck

- name: Run Unit tests
run: ./gradlew testDebug
122 changes: 49 additions & 73 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,77 +1,53 @@
name: Android CI - Release
name: Publish to Maven Central

on:
push:
branches: [ "master" ]
push:
branches: [ "master" ]

jobs:
basic-tests:
name: Run all tests

runs-on: ubuntu-latest
strategy:
matrix:
api-level: [ 30 ]
target: [ google_apis ]

steps:

- name: Checking out branch
uses: actions/checkout@v4

- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Run Detekt Code Analysis
run: ./gradlew detekt

- name: Run Unit tests
run: ./gradlew testDebug

# Hardware accelerated Android virtualization on Actions Linux larger hosted runners
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

# Significantly reduce emulator startup time by setting up AVD snapshot caching
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.api-level }}

- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: ReactiveCircus/android-emulator-runner@v2.30.1
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."

- name: Run Android tests
uses: ReactiveCircus/android-emulator-runner@v2.30.1
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew scan-engine:connectedCheck
publish:
name: Build and publish to Maven Central
runs-on: macos-latest
timeout-minutes: 60

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'

- name: Install GPG
env:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
run: |
brew install gpg
echo "$SIGNING_KEY" | gpg --dearmor > ${HOME}/secring.gpg

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Add Gradle Properties
env:
MAVEN_CENTRAL_USER_NAME: ${{ secrets.MAVEN_CENTRAL_USER_NAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: |
echo "mavenCentralUsername=${MAVEN_CENTRAL_USER_NAME}" >> gradle.properties
echo "mavenCentralPassword=${MAVEN_CENTRAL_PASSWORD}" >> gradle.properties
echo "signing.keyId=${SIGNING_KEY_ID}" >> gradle.properties
echo "signing.password=${SIGNING_KEY_PASSWORD}" >> gradle.properties
echo "signing.secretKeyRingFile=${HOME}/secring.gpg" >> gradle.properties

- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Publish To Maven Central
run: |
./gradlew publishAndReleaseToMavenCentral --no-configuration-cache
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ out/
.gradle/
/build
/scan-engine/build
/sample/build
/buildSrc/build

# Local configuration file (sdk path, etc)
Expand Down Expand Up @@ -59,3 +60,16 @@ out/
/.idea/navEditor.xml
.externalNativeBuild
.cxx
/.kotlin

# CocoaPods
Pods/
*.xcworkspace

# ============================
# Xcode / iOS
# ============================
iosApp/Pods/
/iosApp/iosApp.xcodeproj/xcuserdata/
/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/
**/xcuserdata/
Loading
Loading