Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
1f1c853
chore: update fastlane
superus8r Jul 18, 2023
fe91b07
refactor: use kotlin flow instead of live data to update the terminal…
superus8r Jul 18, 2023
910575d
refactor: replace live data with kotlin flows
superus8r Jul 18, 2023
597c5af
refactor: format code - no changes
superus8r Jul 18, 2023
ca1ef48
refactor: no changes
superus8r Jul 18, 2023
81c5a26
fix: clicking connect button multiple times outputs error regardless …
superus8r Jul 18, 2023
550ba01
chore: update dependencies and add jetpack compse
superus8r Jul 19, 2023
52b6e1a
feature: add a compose view to load a snapshot list of OutputText
superus8r Jul 19, 2023
700194c
feature: hopfully add a composable scrolling list
superus8r Dec 12, 2023
2dbd26d
refactor: remove repeated dependency
superus8r Dec 12, 2023
6a473f6
chore: update gradle
superus8r Dec 12, 2023
d4f8eaa
chore: update compileSdk
superus8r Dec 12, 2023
a661fad
chore: update activity-compose
superus8r Dec 12, 2023
886d10a
refactor: hopefully fix night mode colors
superus8r Dec 18, 2023
a0fa94e
Update .gitignore
superus8r Dec 18, 2023
cf4425d
feature: add UserSettingRepository
superus8r Dec 22, 2023
3bf7e0d
feature: add usecases for getting and setting the custom baudrate
superus8r Dec 22, 2023
60221c8
feature: read current custom baudrate in ArduinoHelper and apply it w…
superus8r Dec 25, 2023
77362b3
feature: add a bottom sheet to show setting content
superus8r Dec 25, 2023
fc4a63b
chore: update fastlane
superus8r Dec 25, 2023
2a842a7
refactor: separate Setting Value Item from the Setting Content
superus8r Mar 30, 2024
5f4c1e1
feature: resetting settings to default dismisses the setting modal
superus8r Mar 30, 2024
9d01a3d
feature: annouce saved state after user changes a setting value
superus8r Mar 30, 2024
ff09069
feature: add a settings header and hints to the setting sheet for bet…
superus8r Mar 30, 2024
429ad37
feature: save settings and dismiss soft keyboard on ime action
superus8r Mar 30, 2024
0f63234
feature: listen for baudrate changes made by the user
superus8r Mar 30, 2024
915ecc1
Merge branch 'develop' into feature/DROID-10/AllowCustomBaudrate
superus8r Mar 30, 2024
8a9e21e
ci: hopefully fix build by updating to zulu 17
superus8r Mar 30, 2024
cd5892e
ci: hopefully fix circleci build
superus8r Mar 30, 2024
1bf07c7
ci: hopefully fix the circleci docker version to another one which su…
superus8r Mar 30, 2024
f5d1aec
refactor: remove unused composable
superus8r Mar 30, 2024
e18c8aa
chore: update fastlane
superus8r Mar 30, 2024
266e506
chore: bump version name
superus8r Mar 30, 2024
98fffc2
chore: update fastlane
superus8r Mar 30, 2024
5dd82dd
ci: add a circleci job to push the release build to playstore interna…
superus8r Mar 30, 2024
e8dc2a5
chore: activate the distribute-internal-testing job
superus8r Mar 30, 2024
8844007
chore: bump version code
superus8r Mar 30, 2024
51eae6d
chore: update fastlane plugins
superus8r Mar 30, 2024
abdd4c0
chore: hopefully fix automated upload to playstore internal release
superus8r Mar 30, 2024
91d2fd5
chore: hopefully fix automated push to playstore internal release lane
superus8r Mar 30, 2024
fa7797d
chore: hopefully fix the google play upload
superus8r Mar 30, 2024
826903c
chore: hopefully fix the google play upload
superus8r Mar 30, 2024
eaa1afb
chore: hopefully fix the google play upload
superus8r Mar 30, 2024
b0faaba
bugfix: allow only numbers as an input for the baud rate
superus8r Mar 30, 2024
0ebc0d6
deps: update firebase and crashlytics
superus8r Apr 1, 2024
b2fd55c
bugfix: fixed a crash when closing connection
superus8r Apr 6, 2024
168649f
refactor: remove extra OptIn annotations
superus8r Apr 6, 2024
3990a97
bugfix: check if connection is initialized before closing it
superus8r Apr 6, 2024
3b4876a
tests: move scope to constructor for testability
superus8r Apr 6, 2024
70e05e5
deps: update lifecycle, coroutines, and compose
superus8r Apr 6, 2024
8e669c1
chore: enable minification
superus8r Apr 7, 2024
0124324
ci: push prod build to firebase app tester as well as playStore inter…
superus8r Apr 7, 2024
6e6c57c
bugfix: fix wrong action title
superus8r Apr 8, 2024
80b5d56
feature: allow sending commands on press of enter button to use on ch…
superus8r Apr 8, 2024
3ab0a47
chore: update gradle
superus8r Apr 8, 2024
6282e4c
chore: update bundler packages, fix the build
superus8r Dec 30, 2024
7cbf6a9
chore: update compileSdk; update config of buildConfig feature
superus8r Jan 11, 2025
464950e
chore: updated dependencies; hopefully fix build
superus8r Jan 11, 2025
9698a5e
ci: update github actions upload-artifact@v1 to v4
superus8r Jan 11, 2025
efbf4a9
ci: use kvm and linux runner instead of macos runner for running the …
superus8r Jan 11, 2025
5f0bc68
ci: update action setup-java@v1 to v4
superus8r Jan 11, 2025
554e9eb
chore: update compileSdk version
superus8r May 1, 2025
b4e2d4e
chore: update targetSdk to 35
superus8r May 1, 2025
f1b8a68
chore: update fastlane
superus8r May 1, 2025
c2cf341
chore: clean Fastfile; use an array of gradle tasks
superus8r May 1, 2025
9a15665
chore: generateKsFile before generating the props for it
superus8r May 1, 2025
5f2bda7
chore: remove unnecessary generateKsFile task
superus8r May 1, 2025
d3a8b4b
chore: explicitly set whether the broadcast receiver is exported or not
superus8r May 1, 2025
93910a7
ui: avoid system navbar or soft keyboard overlapping content
superus8r May 1, 2025
fc38762
refactor: update deprecated getParcelableExtra usage
superus8r May 1, 2025
4e8f231
refactor: update action name
superus8r May 1, 2025
6aeb3d6
refactor: improve debug logs
superus8r May 1, 2025
3298297
refactor: register broadcast receiver before requesting permission
superus8r May 1, 2025
6d778dc
refactor: register the receiver in manifest
superus8r May 1, 2025
dc9a086
deps: update dependencies
superus8r May 1, 2025
fff4ad5
deps: update kotlin and hilt
superus8r May 1, 2025
709e2a4
nitpick: format; no changes
superus8r May 1, 2025
9e21276
nitpick: format; no changes
superus8r May 1, 2025
29682e3
chore: add .aiexclude file
superus8r May 7, 2025
9d8adbc
bugfix: fixed the issue with arduino clones not being able to connect
superus8r May 7, 2025
8be6ceb
refactor: remove unused methods, improve readability of ArduinoHelper
superus8r May 7, 2025
b553abb
refactor: rename ArduinoHelper to ArduinoRepository
superus8r May 7, 2025
748fe74
refactor: update ArduinoRepository TAG
superus8r May 7, 2025
86a3c60
refactor: hopefully separate usb specific and arduino logic
superus8r May 7, 2025
f13bb76
nitpick: remove commented code
superus8r May 7, 2025
48657d4
nitpick: update naming
superus8r May 7, 2025
83645ce
nitpick: remove unnecessary intermediate variable
superus8r May 7, 2025
cbdc071
nitpick: remove commented code
superus8r May 7, 2025
ba0cffa
nitpick: remove unused import
superus8r May 7, 2025
8b4d53d
nitpick: remove unused import
superus8r May 7, 2025
e8460c0
refactor: use launch instead of deprecated launchWhenResumed
superus8r May 7, 2025
d2e4db6
refactor: rename extensions package to util
superus8r May 7, 2025
ec36a09
nitpick: add file comment
superus8r May 7, 2025
e3a0b00
refactor: log the output of onPermissionResult
superus8r May 7, 2025
e4c7403
chore: hopefully update AGP to 8.10
superus8r May 24, 2025
eabd45d
chore(deps): add mockk; organize dependencies
superus8r May 24, 2025
7455801
tests: make sure scanForArduinoDevices works as expected
superus8r May 24, 2025
e1261fd
tests: make sure requestUsbPermission works as expected
superus8r May 24, 2025
75aab03
tests: make sure onPermissionResult works as expected
superus8r May 24, 2025
5a15f87
tests: make sure onDisconnect works as expected
superus8r May 24, 2025
957a140
fix: unregister receiver once the permission result is received
superus8r May 25, 2025
388e2bb
refactor: use sharedFlow for the usbDevice
superus8r May 25, 2025
cf689cb
tests: update tests to match the new changes to sharedFlow usage in u…
superus8r May 25, 2025
4a7e21c
fix: avoid having to click connect twice for connecting to usb device
superus8r May 25, 2025
a269f7e
refactor: create an interface for ArduinoRepository
superus8r May 25, 2025
9cbab87
refactor: use the IArduinoRepository
superus8r May 25, 2025
c632777
refactor: provide coroutine scope to reuse it
superus8r May 25, 2025
0973cd6
refactor: improve formatting and order of imports
superus8r May 25, 2025
bf49fd5
refactor: remove unnecessary singleton annotation on ProvideArduinoRe…
superus8r May 25, 2025
41e43b3
refactor: remove unnecessary activity context
superus8r May 25, 2025
9c2bbdc
refactor: update tests to match changes onPermissionResult without it…
superus8r May 25, 2025
58b0ad2
refactor: keep usb repository's emitted messages consistent with the …
superus8r May 25, 2025
07cd7e1
refactor: remove ArduinoPermissionBroadcastReceiver.kt because it is …
superus8r May 25, 2025
0ee4a41
tests: make sure onDeviceAttached, onDeviceDetached, and onUnknownAct…
superus8r May 25, 2025
9a4b944
ci: bump ruby version
superus8r May 25, 2025
3617f7e
tests: test has permission
superus8r May 25, 2025
7a0d50e
nitpick: remove commented code
superus8r May 25, 2025
f3d0f13
nitpick: use Unit instead of empty block
superus8r May 25, 2025
e77c9a5
refactor: remove unused import
superus8r May 25, 2025
4258cbb
nitpick: change IResourceProvider to a functional interface
superus8r May 25, 2025
9155c9b
tests: make sure ResourceProvider works as expected
superus8r May 25, 2025
46e1da9
tests: make sure ArduinoUseCaseTest works as expected
superus8r May 25, 2025
32e887d
refactor: move ArduinoRepository to repository package
superus8r May 25, 2025
e06fc23
refactor: move ArduinoSerialReceiver to repository package
superus8r May 25, 2025
063a264
tests: make sure UsbUseCase works as expected
superus8r May 25, 2025
de88407
tests: make sure ArduinoDevice type gets detected as expected
superus8r May 25, 2025
e906678
ci: use layout for accessing project dir and build dir
superus8r May 25, 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
89 changes: 89 additions & 0 deletions .aiexclude
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/
# Uncomment the following line in case you need and you don't have the release build type files in your app
# release/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/*

# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

# Version control
vcs.xml

# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/
app/src/main/res/values/api_keys.xml
.idea/compiler.xml
.idea/compiler.xml
.idea/compiler.xml
.idea/jarRepositories.xml
.idea/misc.xml
app/build.gradle
.idea/misc.xml
.idea/misc.xml
.idea/misc.xml
.idea/misc.xml
.idea/misc.xml
.idea/.name
.idea/codeStyles/Project.xml
.idea/misc.xml
.idea/misc.xml
26 changes: 23 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ commands:
executors:
android-machine:
machine:
image: android:2022.12.1
image: android:2024.01.1
android-docker:
docker:
- image: cimg/android:2023.02
- image: cimg/android:2024.01

jobs:
android-test:
Expand Down Expand Up @@ -64,15 +64,35 @@ jobs:
name: Prepare Fastlane
command: sudo bundle update
- run:
name: Distribute to Firebase AppTester
name: Distribute to Firebase AppTester Dev
command: bundle exec fastlane distDev
- store_artifacts:
path: /home/circleci/project/app/build/outputs/apk/debug/app-debug.apk
destination: fastlane-output-debug

distribute-internal-testing:
executor: android-docker
resource_class: large
steps:
- checkout
- restore_gradle_cache
- run:
name: Prepare Fastlane
command: sudo bundle update
- run:
name: Distribute to Google PlayStore Internal Testing
command: bundle exec fastlane deploy
- run:
name: Distribute to Firebase AppTester Prod
command: bundle exec fastlane distProd
- store_artifacts:
path: /home/circleci/project/app/build/outputs/bundle/release/app-release.aab
destination: fastlane-output-release

workflows:
workflow:
jobs:
- android-test:
context: SonarCloud
- distribute-dev
- distribute-internal-testing
99 changes: 52 additions & 47 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -1,61 +1,61 @@
name: Android CI

on: [push]
on: [ push ]

jobs:

unit-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: set up JDK 11
uses: actions/setup-java@v1
with:
distribution: 'zulu'
java-version: '11'
- name: Cache Gradle wrapper
uses: actions/cache@v3
with:
path: ~/.gradle/wrapper
key: ${{ runner.OS }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.OS }}-gradle-wrapper-cache-
- name: Cache Gradle caches
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.OS }}-gradle-caches-cache-${{ hashFiles('build.gradle') }}
restore-keys: |
${{ runner.OS }}-gradle-caches-cache-
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
run: ./gradlew generateGoogleServicesJson
env:
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
- name: setup fastlane
run: bundle install
- name: run unit tests
run: bundle exec fastlane android run_unit_tests
- name: Unit tests results
uses: actions/upload-artifact@v1
with:
name: unit-test-results
path: app/build/reports/tests/testDebugUnitTest/index.html
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1'
bundler-cache: true
- name: set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Cache Gradle wrapper
uses: actions/cache@v3
with:
path: ~/.gradle/wrapper
key: ${{ runner.OS }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.OS }}-gradle-wrapper-cache-
- name: Cache Gradle caches
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.OS }}-gradle-caches-cache-${{ hashFiles('build.gradle') }}
restore-keys: |
${{ runner.OS }}-gradle-caches-cache-
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
run: ./gradlew generateGoogleServicesJson
env:
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
- name: setup fastlane
run: bundle install
- name: run unit tests
run: bundle exec fastlane android run_unit_tests
- name: Unit tests results
uses: actions/upload-artifact@v4
with:
name: unit-test-results
path: app/build/reports/tests/testDebugUnitTest/index.html

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: set up JDK 11
- name: set up JDK 17
uses: actions/setup-java@v1
with:
distribution: 'zulu'
java-version: '11'
java-version: '17'
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
Expand All @@ -65,27 +65,32 @@ jobs:
- name: Lint
run: bash ./gradlew lintDebug
- name: Lint results
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: app
path: app/build/reports/lint-results-debug.html

ui-test:
runs-on: macos-latest
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: set up JDK 11
uses: actions/setup-java@v1
- name: set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '11'
java-version: '17'
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
run: ./gradlew generateGoogleServicesJson
env:
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
- name: Enable KVM group perms
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
- name: run tests
uses: reactivecircus/android-emulator-runner@v2
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,4 @@ app/build.gradle
.idea/.name
.idea/codeStyles/Project.xml
.idea/misc.xml
.idea/misc.xml
Loading
Loading