Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
49 changes: 49 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build and Test

on:
pull_request:
push:
branches: [ "main" ]

permissions:
contents: read

env:
MAIN_MODULE: app

jobs:
build-and-test:
runs-on: ubuntu-latest

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

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"

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

- name: Make Gradle executable
run: chmod +x ./gradlew

- name: Create local.properties
run: |
echo "MAPS_API_KEY=${{ secrets.MAPS_API_KEY }}" > local.properties

- name: Ktlint Check
run: ./gradlew ktlintCheck

- name: Build Debug
run: ./gradlew :${{ env.MAIN_MODULE }}:assembleDebug

- name: Unit Tests
run: ./gradlew testDebugUnitTest

- name: Cleanup
if: always()
run: rm -f local.properties
82 changes: 82 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Build & Publish Signed Release

on:
workflow_dispatch:
push:
tags:
- "v*.*.*"

permissions:
contents: write

env:
MAIN_MODULE: app

jobs:
release:
runs-on: ubuntu-latest

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

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

- name: Make Gradle executable
run: chmod +x ./gradlew

- name: Create local.properties
run: |
echo "MAPS_API_KEY=${{ secrets.MAPS_API_KEY }}" > local.properties

- name: Build Release APK + AAB
run: |
./gradlew :${{ env.MAIN_MODULE }}:assembleRelease :${{ env.MAIN_MODULE }}:bundleRelease

- name: Sign release APK
id: sign_apk
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: ${{ env.MAIN_MODULE }}/build/outputs/apk/release
signingKeyBase64: ${{ secrets.SIGNING_KEYSTORE_BASE64 }}
alias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyStorePassword: ${{ secrets.SIGNING_STORE_PASSWORD }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}

- name: Sign release AAB
id: sign_aab
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: ${{ env.MAIN_MODULE }}/build/outputs/bundle/release
signingKeyBase64: ${{ secrets.SIGNING_KEYSTORE_BASE64 }}
alias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyStorePassword: ${{ secrets.SIGNING_STORE_PASSWORD }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}

- name: Upload artifacts (Actions)
uses: actions/upload-artifact@v4
with:
name: release-build
path: |
${{ steps.sign_apk.outputs.signedReleaseFile }}
${{ steps.sign_aab.outputs.signedReleaseFile }}

- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: |
${{ steps.sign_apk.outputs.signedReleaseFile }}
${{ steps.sign_aab.outputs.signedReleaseFile }}
generate_release_notes: true
draft: true
prerelease: true

- name: Cleanup secrets
if: always()
run: rm -f local.properties
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ plugins {
id("com.mikepenz.aboutlibraries.plugin")
id("com.google.gms.google-services")
id("org.jlleitschuh.gradle.ktlint")
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
alias(libs.plugins.compose.compiler)
alias(libs.plugins.hilt)
alias(libs.plugins.kotlin.ksp)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
</activity>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
android:value="${MAPS_API_KEY}" />

<service
android:name=".util.services.FirebaseService"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import androidx.compose.material.icons.outlined.Code
import androidx.compose.material.icons.outlined.Contrast
import androidx.compose.material.icons.outlined.Info
import androidx.compose.material.icons.outlined.RestartAlt
import androidx.compose.material.icons.outlined.Visibility
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
Expand All @@ -21,7 +20,6 @@ import androidx.compose.material3.SegmentedButtonDefaults
import androidx.compose.material3.SingleChoiceSegmentedButtonRow
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
Expand Down Expand Up @@ -128,23 +126,6 @@ fun SettingsScreen(
}
}

@Composable
fun ColorBlindSettingItem(
colorBlindMode: Boolean,
updateColorBlindMode: (Boolean) -> Unit,
) {
SettingsItem(
icon = Icons.Outlined.Visibility,
stringResource(R.string.color_blind_mode),
stringResource(R.string.color_blind_description),
) {
Switch(
checked = colorBlindMode,
onCheckedChange = { updateColorBlindMode(it) },
)
}
}

@Composable
fun ThemeModeSettingItem(
themeMode: ThemeMode,
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,6 @@
<string name="base_url">Base URL</string>
<string name="change_url_warning">Changing the URL will restart the app and stop all running services</string>
<string name="invalid_url">Invalid URL</string>
<string name="color_blind_description">More accessible shuttle icons</string>
<string name="color_blind_mode">Colorblind mode</string>
<string name="current_meters">%1$d meters</string>
<string name="libraries_used">Libraries used</string>
<string name="dev_options_activated">Dev options activated</string>
Expand Down
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
buildscript {
dependencies {
classpath(libs.google.services)
classpath(libs.secrets.gradle.plugin)
}
}

Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ retrofit = "3.0.0"

room-runtime = "2.8.4"

secrets-gradle-plugin = "2.0.1"
work-runtime-ktx = "2.11.0"

compose-bom = "2026.01.00"
Expand Down Expand Up @@ -98,6 +99,7 @@ play-services-maps = { module = "com.google.android.gms:play-services-maps", ver
network-reponse = { module = "com.github.haroldadmin:NetworkResponseAdapter", version.ref = "network-respose" }
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }

secrets-gradle-plugin = { module = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin", version.ref = "secrets-gradle-plugin" }
ui = { module = "androidx.compose.ui:ui" }

[plugins]
Expand Down