Skip to content

Commit

Permalink
Update dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
simonnorberg committed Mar 28, 2024
1 parent f6d7cb1 commit a4832cf
Show file tree
Hide file tree
Showing 30 changed files with 484 additions and 337 deletions.
20 changes: 20 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.{json,yml}]
indent_size = 2

[*.{kt,kts}]
ktlint_code_style = android_studio
max_line_length = 120
compose_allowed_composition_locals = LocalDimensions
ktlint_function_naming_ignore_when_annotated_with = Composable
ktlint_standard_function-signature = disabled
ij_kotlin_line_break_after_multiline_when_entry = false
33 changes: 27 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,42 @@ name: Android CI

on: [ push ]

concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
env:
TERM: dumb
if: github.repository == 'simonnorberg/dmach'
timeout-minutes: 60

strategy:
matrix:
api-level: [ 28, 34 ]

steps:
- uses: actions/checkout@v3
- name: Checkout
uses: actions/checkout@v4.1.1

- name: Set up JDK
uses: actions/setup-java@v3
uses: actions/setup-java@v4.2.1
with:
distribution: 'zulu'
java-version: 17

- 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
- name: Build and check
run: ./gradlew spotlessCheck assemble bundle check
run: ./gradlew ktlintCheck assemble bundle check

- name: Run tests
uses: reactivecircus/android-emulator-runner@v2.30.1
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
script: ./gradlew connectedCheck
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
*.iml
.gradle
local.properties
/.idea/*
!/.idea/codeStyles
.idea/*
!.idea/codeStyles/
!.idea/icon.svg
.DS_Store
build
captures
Expand Down
9 changes: 9 additions & 0 deletions .idea/icon.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 12 additions & 20 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.cacheFixPlugin)
alias(libs.plugins.cachefix)
alias(libs.plugins.hilt.android)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.kapt)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.ksp)
}

kapt {
correctErrorTypes = true
useBuildCache = true
javacOptions {
option("-Adagger.ignoreProvisionKeyWildcards=ENABLED")
}
hilt {
enableAggregatingTask = true
}

ksp {
arg("room.schemaLocation", "$projectDir/schemas")
arg("room.incremental", "true")
}

hilt {
enableAggregatingTask = true
arg("room.generateKotlin", "true")
}

android {
Expand All @@ -33,8 +25,8 @@ android {
applicationId = "net.simno.dmach"
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.targetSdk.get().toInt()
versionCode = 30007
versionName = "3.4"
versionCode = 30008
versionName = "3.5"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
ndk.abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64"))
}
Expand All @@ -45,10 +37,6 @@ android {
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
buildFeatures {
buildConfig = true
compose = true
Expand All @@ -70,6 +58,7 @@ android {
warningsAsErrors = true
abortOnError = true
disable += "GradleDependency"
disable += "ObsoleteLintCustomCheck"
}
}

Expand All @@ -87,15 +76,18 @@ dependencies {
debugImplementation(libs.compose.ui.tooling)
debugImplementation(libs.compose.ui.testmanifest)
lintChecks(libs.compose.lint)
ktlintRuleset(libs.ktlint.compose)

implementation(libs.androidx.activity)
implementation(libs.androidx.core)
implementation(libs.androidx.datastore)
ksp(libs.androidx.hilt.compiler)
implementation(libs.androidx.hilt.navigation)
implementation(libs.androidx.media)
implementation(libs.androidx.navigation)

implementation(libs.androidx.lifecycle.runtime)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.lifecycle.viewmodel.ktx)

Expand All @@ -109,7 +101,7 @@ dependencies {
ksp(libs.androidx.room.compiler)

implementation(libs.hilt.android)
kapt(libs.hilt.compiler)
ksp(libs.hilt.compiler)

implementation(libs.dmach.externals)
implementation(libs.kortholt)
Expand Down
98 changes: 98 additions & 0 deletions app/schemas/net.simno.dmach.db.PatchDatabase/5.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"formatVersion": 1,
"database": {
"version": 5,
"identityHash": "d7464484e9457b6c5837b91fc673c599",
"entities": [
{
"tableName": "patch",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `title` TEXT NOT NULL, `sequence` TEXT NOT NULL, `muted` TEXT NOT NULL, `channels` TEXT NOT NULL, `selected` INTEGER NOT NULL, `tempo` INTEGER NOT NULL, `swing` INTEGER NOT NULL, `steps` INTEGER NOT NULL, `active` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "sequence",
"columnName": "sequence",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "muted",
"columnName": "muted",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "channels",
"columnName": "channels",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "selected",
"columnName": "selected",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "tempo",
"columnName": "tempo",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "swing",
"columnName": "swing",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "steps",
"columnName": "steps",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "active",
"columnName": "active",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"_id"
]
},
"indices": [
{
"name": "index_patch_title",
"unique": true,
"columnNames": [
"title"
],
"orders": [],
"createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_patch_title` ON `${TABLE_NAME}` (`title`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'd7464484e9457b6c5837b91fc673c599')"
]
}
}
2 changes: 1 addition & 1 deletion app/src/androidTest/java/net/simno/dmach/db/DbTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class DbTests {

migrationTestHelper.runMigrationsAndValidate(
PatchDatabase.NAME,
4,
5,
true,
PatchDatabase.MIGRATION_2_3,
PatchDatabase.MIGRATION_3_4,
Expand Down
7 changes: 5 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />

<application
android:name=".App"
Expand All @@ -18,7 +19,8 @@
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="sensorLandscape"
android:theme="@style/Theme.App">
android:theme="@style/Theme.App"
tools:ignore="DiscouragedApi">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
Expand All @@ -27,7 +29,8 @@

<service
android:name=".playback.PlaybackService"
android:exported="false" />
android:exported="false"
android:foregroundServiceType="mediaPlayback" />

<provider
android:name="androidx.core.content.FileProvider"
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/net/simno/dmach/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import android.os.Bundle
import android.view.WindowManager
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.material3.Surface
import androidx.core.view.WindowCompat
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
Expand All @@ -23,8 +23,8 @@ class MainActivity : ComponentActivity() {
lateinit var playbackController: PlaybackController

override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

lifecycle.addObserver(playbackController)
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/net/simno/dmach/StateViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ abstract class StateViewModel<Action, Result, ViewState>(
vararg startActions: Action
) : ViewModel() {

private val _actions = Channel<Action>(BUFFERED)
private val actionsChannel = Channel<Action>(BUFFERED)

private val actions: Flow<Action> = flow {
emitAll(flowOf(*startActions))
emitAll(_actions.receiveAsFlow())
emitAll(actionsChannel.receiveAsFlow())
}

val viewState: StateFlow<ViewState> = actions
Expand All @@ -45,6 +45,6 @@ abstract class StateViewModel<Action, Result, ViewState>(
.stateIn(viewModelScope, SharingStarted.Lazily, startViewState)

fun onAction(action: Action) {
_actions.trySend(action)
actionsChannel.trySend(action)
}
}
25 changes: 0 additions & 25 deletions app/src/main/java/net/simno/dmach/core/DrawableCircle.kt

This file was deleted.

0 comments on commit a4832cf

Please sign in to comment.