Skip to content

Commit c8caff9

Browse files
committed
General improvements and bugfixes
1 parent 1efc64c commit c8caff9

File tree

8 files changed

+61
-4
lines changed

8 files changed

+61
-4
lines changed

.github/workflows/firefly-companion.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ jobs:
2727
- name: Gradle cache
2828
uses: gradle/actions/setup-gradle@v4
2929

30+
- name: Prepare signing keystore
31+
run: |
32+
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > keystore.jks
33+
echo "ANDROID_KEYSTORE_PATH=$PWD/keystore.jks" >> $GITHUB_ENV
34+
echo "ANDROID_KEYSTORE_PASSWORD=${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" >> $GITHUB_ENV
35+
echo "ANDROID_KEY_ALIAS=${{ secrets.ANDROID_KEY_ALIAS }}" >> $GITHUB_ENV
36+
echo "ANDROID_KEY_PASSWORD=${{ secrets.ANDROID_KEY_PASSWORD }}" >> $GITHUB_ENV
37+
3038
- name: Build Release APK
3139
run: ./gradlew :android:assembleRelease --stacktrace --no-daemon
3240

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ local.properties
1616
.kotlin/
1717
**/*.private.env.json
1818
.idea/
19+
firefly-companion.keystore

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<h1 align="center">
2+
Firefly Companion
3+
</h1>
4+
<p align="center">
5+
<img src="docs/firefly-companion-screens.png" alt="" />
6+
</p>
7+
8+
An unofficial Android companion app for Firefly III — the open‑source, self‑hosted personal finance manager.
9+
This project aims to provide an intuitive, mobile‑first experience to browse your balances, accounts, and transactions,
10+
perform common actions on the go, gain insights from an integrated AI‑powered personal finance assistant, and more.
11+
12+
Please note that this project is highly opinionated and is intended as an on‑the‑go companion for quick actions.
13+
Not all Firefly III features will be available by design.
14+
15+
To get started, check the Releases page and download the APK file. The app will guide you through connecting to your
16+
Firefly III server and getting started.
17+
18+
For now, suggestions, issues, and pull requests will not be accepted, but feel free to fork the repository and modify
19+
the app to best fit your needs.

android/build.gradle.kts

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,39 @@ android {
4747
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
4848
}
4949

50+
signingConfigs {
51+
val keystorePath = System.getenv("ANDROID_KEYSTORE_PATH")
52+
val keystorePassword = System.getenv("ANDROID_KEYSTORE_PASSWORD")
53+
val keyAlias = System.getenv("ANDROID_KEY_ALIAS")
54+
val keyPassword = System.getenv("ANDROID_KEY_PASSWORD")
55+
val enableSigning =
56+
!keystorePath.isNullOrBlank() &&
57+
!keystorePassword.isNullOrBlank() &&
58+
!keyAlias.isNullOrBlank() &&
59+
!keyPassword.isNullOrBlank()
60+
61+
if (enableSigning) {
62+
register("release") {
63+
storeFile = file(keystorePath!!)
64+
storePassword = keystorePassword
65+
this.keyAlias = keyAlias
66+
this.keyPassword = keyPassword
67+
enableV1Signing = true
68+
enableV2Signing = true
69+
enableV3Signing = true
70+
enableV4Signing = true
71+
}
72+
}
73+
}
74+
5075
buildTypes {
5176
release {
52-
isMinifyEnabled = true
77+
isMinifyEnabled = false
5378
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
79+
80+
val hasReleaseSigning = signingConfigs.findByName("release") != null
81+
if (hasReleaseSigning)
82+
signingConfig = signingConfigs.getByName("release")
5483
}
5584
}
5685

android/src/main/kotlin/br/com/dillmann/fireflycompanion/android/core/router/Navigator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ package br.com.dillmann.fireflycompanion.android.core.router
33
import java.io.Serializable
44

55
fun navigate(route: Route, bag: Serializable? = null) {
6-
RouterState.stack + NavigationEvent(route, bag)
6+
RouterState.stack += NavigationEvent(route, bag)
77
}

android/src/main/kotlin/br/com/dillmann/fireflycompanion/android/onboarding/components/OnboardingServerFormHeader.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ fun OnboardingServerFormHeader() {
1616
text = i18n(R.string.onboarding_server_title),
1717
style = MaterialTheme.typography.headlineMedium,
1818
textAlign = TextAlign.Left,
19-
modifier = Modifier.padding(top = 64.dp, bottom = 16.dp)
19+
modifier = Modifier.padding(top = 96.dp, bottom = 16.dp)
2020
)
2121

2222
Text(

business/src/main/kotlin/br/com/dillmann/fireflycompanion/business/subscription/Subscription.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ data class Subscription(
1515
data class Payment(
1616
val paidAt: LocalDate,
1717
val amount: BigDecimal,
18-
)
18+
) : Serializable
1919
}

docs/firefly-companion-screens.png

239 KB
Loading

0 commit comments

Comments
 (0)