Skip to content

Commit 9295473

Browse files
authored
Merge pull request #377 from flow-mn/develop
fix geo permission never requesting
2 parents 12036f0 + c6b32ec commit 9295473

95 files changed

Lines changed: 2429 additions & 610 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.idx/dev.nix

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{pkgs}: {
2+
channel = "stable-24.05";
3+
packages = [
4+
pkgs.jdk17
5+
pkgs.unzip
6+
];
7+
idx.extensions = [
8+
"Dart-Code.dart-code"
9+
"Dart-Code.flutter"
10+
];
11+
idx.previews = {
12+
previews = {
13+
android = {
14+
command = [
15+
"flutter"
16+
"run"
17+
"--machine"
18+
"-d"
19+
"android"
20+
"-d"
21+
"localhost:5555"
22+
];
23+
manager = "flutter";
24+
};
25+
};
26+
};
27+
}

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Changelog
22

3+
## Beta 0.12.1
4+
5+
### New features
6+
7+
* Now you can setup daily reminders, so you won't forget to track your expenses
8+
* Added French (fr_FR), it's totally AI generated, but it'll help me cuz I'm trying to learn french
9+
* Added App lock in response to a popular request, closes [#348](https://github.com/flow-mn/flow/issues/348)
10+
11+
### Fixes
12+
13+
* In transaction/account/category, and other pages with forms, clicking back button multiple times
14+
after changing data no longer shows multiple modal sheets. This mostly affected android.
15+
* Platforms other than iOS no longer shows "App icon follows theme" option as it's not available, closes [#345](https://github.com/flow-mn/flow/issues/345)
16+
* App no longer hangs when re-opening in some cases, closes [#370](https://github.com/flow-mn/flow/issues/370)
17+
* Thanks @tossj for submitting a fix
18+
19+
### Changes and improvements
20+
21+
* Now Flow shows warnings for ungranted notification/location permissions
22+
* Flow now saves logs on-device. Logs contain information about certain actions being
23+
executed, and information about failures and errors in the app, and could be used
24+
for debugging.
25+
26+
You can find logs at the end of Backup > Backup history page
27+
28+
> At the moment, most sensitive information stored on the app is transaction UUID,
29+
> which doesn't reveal any sensitive information without the data.
30+
331
## Beta 0.12.0
432

533
### New features

android/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ GeneratedPluginRegistrant.java
1111
key.properties
1212
**/*.keystore
1313
**/*.jks
14+
build

android/app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
1010
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
1111

12+
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
13+
1214
<application
1315
android:label="Flow"
1416
android:icon="@mipmap/ic_launcher">
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package mn.flow.flow
22

3-
import io.flutter.embedding.android.FlutterActivity
3+
import io.flutter.embedding.android.FlutterFragmentActivity
44

5-
class MainActivity: FlutterActivity() {
5+
class MainActivity: FlutterFragmentActivity() {
66
}

android/app/src/main/res/values-night/styles.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
33
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
4-
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
4+
<style name="LaunchTheme" parent="Theme.AppCompat.NoActionBar">
55
<!-- Show a splash screen on the activity. Automatically removed when
66
the Flutter engine draws its first frame -->
77
<item name="android:windowBackground">@drawable/launch_background</item>
@@ -15,4 +15,4 @@
1515
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
1616
<item name="android:windowBackground">?android:colorBackground</item>
1717
</style>
18-
</resources>
18+
</resources>

android/app/src/main/res/values/styles.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
33
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
4-
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
4+
<style name="LaunchTheme" parent="Theme.AppCompat.NoActionBar">
55
<!-- Show a splash screen on the activity. Automatically removed when
66
the Flutter engine draws its first frame -->
77
<item name="android:windowBackground">@drawable/launch_background</item>
@@ -15,4 +15,4 @@
1515
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
1616
<item name="android:windowBackground">?android:colorBackground</item>
1717
</style>
18-
</resources>
18+
</resources>

assets/l10n/en_US.json

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"general.selectLocation": "Choose location",
3232
"general.nextNDays": "Next {} day(s)",
3333
"general.flow": "Flow",
34+
"general.unlockToOpen": "Unlock to open Flow",
3435

3536
"setup.getStarted": "Get started",
3637
"setup.next": "Next",
@@ -229,7 +230,7 @@
229230
"preferences.transactionGeo.auto.enable": "Auto-attach",
230231
"preferences.transactionGeo.auto.enabled": "Auto-attach enabled",
231232
"preferences.transactionGeo.auto.description": "Automatically attach your current location to new transactions. Even if you have this turned off, you can still choose a location on a map to attach it.",
232-
"preferences.transactionGeo.auto.permissionDenied": "Location permission was denied. You can enable it from your settings if you wish.",
233+
"preferences.transactionGeo.auto.permissionDenied": "Location permission isn't granted",
233234
"preferences.pendingTransactions": "Pending transactions",
234235
"preferences.pendingTransactions.homeTimeframe": "Show on home",
235236
"preferences.pendingTransactions.requireConfirmation": "Require confirmation",
@@ -241,13 +242,22 @@
241242
"preferences.pendingTransactions.notify.earlyReminder.none": "None",
242243
"preferences.pendingTransactions.notify.schedulingUnsupported": "Notifications won't work when Flow isn't open",
243244
"preferences.pendingTransactions.notify.schedulingUnsupported.description": "Scheduled notifications are only available on Android, iOS, and macOS",
244-
"preferences.privacyMode": "Privacy mode",
245-
"preferences.privacyMode.enableAtStartup": "Enable at startup",
245+
"preferences.privacy": "Privacy",
246+
"preferences.privacy.maskAtStartup": "Mask numbers (*) at startup",
247+
"preferences.privacy.appLock": "Lock app",
248+
"preferences.privacy.appLock.description#iOS": "Require Face ID or Touch ID to open the app",
249+
"preferences.privacy.appLock.description#Android": "Require biometric authentication to open the app",
246250
"preferences.moneyFormatting": "Money formatting",
247251
"preferences.moneyFormatting.preferFull": "Prefer full amounts",
248252
"preferences.moneyFormatting.preferFull.description": "Don't abbreviate numbers when possible",
249253
"preferences.moneyFormatting.useCurrencySymbol": "Use currency symbol",
250254
"preferences.moneyFormatting.useCurrencySymbol.description": "e.g., \"$5\" instead of \"5 USD\"",
255+
"preferences.reminders": "Reminder",
256+
"preferences.reminders.remindDaily": "Remind daily",
257+
"preferences.reminders.remindDaily.description": "Remind to track expenses daily",
258+
"preferences.reminders.remindDaily.time": "Remind me at",
259+
"preferences.reminders.remindDaily.expiryWarning": "Reminders will stop if you don't open Flow for 7 consecutive days",
260+
"preferences.reminders.unsupportedPlatform": "Scheduling notifications is not supported on this platform",
251261

252262
"tabs.home": "Home",
253263
"tabs.home.greetings": "Hi, {name}!",
@@ -329,6 +339,13 @@
329339

330340
"notifications.permissionNotGranted": "Notifications permission not granted",
331341
"notifications.openSettingsToGrantPermission": "Grant notification permission from system settings",
342+
"notifications.reminderText#1": "Did you track your expenses today?",
343+
"notifications.reminderText#2": "Don't forget to record your transactions!",
344+
"notifications.reminderText#3": "Time to record your expenses for today.",
345+
"notifications.reminderText#4": "Keep your finances in check, add your transactions!",
346+
"notifications.reminderText#5": "Flow reminds you to track your expenses!",
347+
"notifications.reminderText#6": "Update your transactions and stay on top of your finances.",
348+
"notifications.reminderText#7": "Don't forget to add your transactions today!",
332349

333350
"sync.import": "Import",
334351
"sync.import.pickFile": "Select a file",
@@ -470,5 +487,6 @@
470487
"error.transaction.missingAccount": "Please select an account",
471488
"error.url.cannotOpen": "Can't open the link",
472489
"error.exchangeRates.inaccurateDataDueToMissingRates": "Failed to fetch exchange rates, transaction data might not be fully accurate",
473-
"error.exchangeRates.cannotFetch": "Failed to fetch, please check your internet connection."
490+
"error.exchangeRates.cannotFetch": "Failed to fetch, please check your internet connection.",
491+
"error.failedLocalAuth": "Authentication failed, please try again."
474492
}

assets/l10n/fr_FR.json

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"general.selectLocation": "Choisir un lieu",
3232
"general.nextNDays": "Prochain(s) {} jour(s)",
3333
"general.flow": "Flow",
34+
"general.unlockToOpen": "Déverrouiller pour ouvrir Flow",
3435

3536
"setup.getStarted": "Commencer",
3637
"setup.next": "Suivant",
@@ -229,7 +230,7 @@
229230
"preferences.transactionGeo.auto.enable": "Attacher automatiquement",
230231
"preferences.transactionGeo.auto.enabled": "Attachement automatique activé",
231232
"preferences.transactionGeo.auto.description": "Attache automatiquement votre position actuelle aux nouvelles transactions. Même si vous avez désactivé cette option, vous pouvez toujours choisir un lieu sur une carte pour l'attacher.",
232-
"preferences.transactionGeo.auto.permissionDenied": "La permission de localisation a été refusée. Vous pouvez l'activer dans vos paramètres si vous le souhaitez.",
233+
"preferences.transactionGeo.auto.permissionDenied": "L'autorisation de localisation n'est pas accordée",
233234
"preferences.pendingTransactions": "Transactions en attente",
234235
"preferences.pendingTransactions.homeTimeframe": "Afficher sur l'accueil",
235236
"preferences.pendingTransactions.requireConfirmation": "Nécessite une confirmation",
@@ -241,13 +242,22 @@
241242
"preferences.pendingTransactions.notify.earlyReminder.none": "Aucun",
242243
"preferences.pendingTransactions.notify.schedulingUnsupported": "Les notifications ne fonctionneront pas lorsque Flow n'est pas ouvert",
243244
"preferences.pendingTransactions.notify.schedulingUnsupported.description": "Les notifications programmées ne sont disponibles que sur Android, iOS et macOS",
244-
"preferences.privacyMode": "Mode confidentialité",
245-
"preferences.privacyMode.enableAtStartup": "Activer au démarrage",
245+
"preferences.privacy": "Confidentialité",
246+
"preferences.privacy.maskAtStartup": "Masquer les nombres (*) au démarrage",
247+
"preferences.privacy.appLock": "Verrouiller l'application",
248+
"preferences.privacy.appLock.description#iOS": "Exiger Face ID ou Touch ID pour ouvrir l'application",
249+
"preferences.privacy.appLock.description#Android": "Exiger l'authentification biométrique pour ouvrir l'application",
246250
"preferences.moneyFormatting": "Formatage de l'argent",
247251
"preferences.moneyFormatting.preferFull": "Préférer les montants complets",
248252
"preferences.moneyFormatting.preferFull.description": "Ne pas abréger les nombres lorsque c'est possible",
249253
"preferences.moneyFormatting.useCurrencySymbol": "Utiliser le symbole de la devise",
250254
"preferences.moneyFormatting.useCurrencySymbol.description": "par exemple, \"5 €\" au lieu de \"5 EUR\"",
255+
"preferences.reminders": "Rappel quotidien",
256+
"preferences.reminders.remindDaily": "Rappel quotidien",
257+
"preferences.reminders.remindDaily.description": "Rappeler de suivre les dépenses quotidiennement",
258+
"preferences.reminders.remindDaily.time": "Me rappeler à",
259+
"preferences.reminders.remindDaily.expiryWarning": "Les rappels s'arrêteront si vous n'ouvrez pas Flow pendant 7 jours consécutifs",
260+
"preferences.reminders.unsupportedPlatform": "La planification des notifications n'est pas prise en charge sur cette plateforme",
251261

252262
"tabs.home": "Accueil",
253263
"tabs.home.greetings": "Salut, {name}!",
@@ -280,8 +290,8 @@
280290
"tabs.stats.chart.select.clickToSelect": "Cliquez pour sélectionner",
281291
"tabs.stats.chart.noExchangeRatesWarning": "Données de taux de change manquantes. Les transactions dans des devises non principales ne sont pas affichées.",
282292
"tabs.stats.chart.noExchangeRatesWarning.retry": "Réessayer",
283-
"tabs.stats.dailyReport.dailyAvgExpense": "Dépense moyenne quotidienne",
284-
"tabs.stats.dailyReport.dailyAvgIncome": "Revenu moyen quotidien",
293+
"tabs.stats.dailyReport.dailyAvgExpense": "Dépense moy./jour",
294+
"tabs.stats.dailyReport.dailyAvgIncome": "Revenu moy./jour",
285295
"tabs.stats.dailyReport.forecastFor": "Prévision des dépenses pour {}",
286296
"tabs.stats.dailyReport.totalExpenseFor": "{} dépense totale",
287297
"tabs.stats.summaryByAccount": "Résumé par compte",
@@ -329,6 +339,13 @@
329339

330340
"notifications.permissionNotGranted": "Notifications permission not granted",
331341
"notifications.openSettingsToGrantPermission": "Grant notification permission from system settings",
342+
"notifications.reminderText#1": "Avez-vous suivi vos dépenses aujourd'hui ?",
343+
"notifications.reminderText#2": "N'oubliez pas d'enregistrer vos transactions !",
344+
"notifications.reminderText#3": "Il est temps d'enregistrer vos dépenses pour aujourd'hui.",
345+
"notifications.reminderText#4": "Gardez vos finances sous contrôle, ajoutez vos transactions !",
346+
"notifications.reminderText#5": "Flow vous rappelle de suivre vos dépenses !",
347+
"notifications.reminderText#6": "Mettez à jour vos transactions et maîtrisez vos finances.",
348+
"notifications.reminderText#7": "N'oubliez pas d'ajouter vos transactions aujourd'hui !",
332349

333350
"sync.import": "Importer",
334351
"sync.import.pickFile": "Sélectionner un fichier",
@@ -470,5 +487,6 @@
470487
"error.transaction.missingAccount": "Veuillez sélectionner un compte",
471488
"error.url.cannotOpen": "Impossible d'ouvrir le lien",
472489
"error.exchangeRates.inaccurateDataDueToMissingRates": "Échec de la récupération des taux de change, les données de transaction peuvent ne pas être entièrement précises",
473-
"error.exchangeRates.cannotFetch": "Échec de la récupération, veuillez vérifier votre connexion internet."
490+
"error.exchangeRates.cannotFetch": "Échec de la récupération, veuillez vérifier votre connexion internet.",
491+
"error.failedLocalAuth": "L'authentification a échoué, veuillez réessayer."
474492
}

assets/l10n/it_IT.json

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"general.selectLocation": "Scegli la posizione",
3232
"general.nextNDays": "Prossimi {} giorni",
3333
"general.flow": "Flusso",
34+
"general.unlockToOpen": "Sblocca per aprire Flow",
3435

3536
"setup.getStarted": "Iniziare",
3637
"setup.next": "Avanti",
@@ -241,13 +242,22 @@
241242
"preferences.pendingTransactions.notify.earlyReminder.none": "Nessuno",
242243
"preferences.pendingTransactions.notify.schedulingUnsupported": "Le notifiche non funzioneranno quando Flow non è aperto",
243244
"preferences.pendingTransactions.notify.schedulingUnsupported.description": "Le notifiche programmate sono disponibili solo su Android, iOS e macOS",
244-
"preferences.privacyMode": "Modalità privacy",
245-
"preferences.privacyMode.enableAtStartup": "Attiva all'avvio",
245+
"preferences.privacy": "Privacy",
246+
"preferences.privacy.maskAtStartup": "Nascondi i numeri (*) all'avvio",
247+
"preferences.privacy.appLock": "Blocca app",
248+
"preferences.privacy.appLock.description#iOS": "Richiedi Face ID o Touch ID per aprire l'app",
249+
"preferences.privacy.appLock.description#Android": "Richiedi autenticazione biometrica per aprire l'app",
246250
"preferences.moneyFormatting": "Formato valuta",
247251
"preferences.moneyFormatting.preferFull": "Preferisci importo completo",
248252
"preferences.moneyFormatting.preferFull.description": "Non abbreviare i numeri quando possibile",
249253
"preferences.moneyFormatting.useCurrencySymbol": "Usa simbolo valuta",
250254
"preferences.moneyFormatting.useCurrencySymbol.description": "Ad esempio, \"€5\" invece di \"5 EUR\"",
255+
"preferences.reminders": "Promemoria giornaliero",
256+
"preferences.reminders.remindDaily": "Ricorda quotidianamente",
257+
"preferences.reminders.remindDaily.description": "Ricorda di tenere traccia delle spese quotidianamente",
258+
"preferences.reminders.remindDaily.time": "Ricordami alle",
259+
"preferences.reminders.remindDaily.expiryWarning": "I promemoria si interromperanno se non apri Flow per 7 giorni consecutivi",
260+
"preferences.reminders.unsupportedPlatform": "La pianificazione delle notifiche non è supportata su questa piattaforma",
251261

252262
"tabs.home": "Home",
253263
"tabs.home.greetings": "Ciao, {name}!",
@@ -329,6 +339,13 @@
329339

330340
"notifications.permissionNotGranted": "Permesso di notifica non concesso",
331341
"notifications.openSettingsToGrantPermission": "Concedi il permesso di notifica dalle impostazioni di sistema",
342+
"notifications.reminderText#1": "Hai registrato le tue spese oggi?",
343+
"notifications.reminderText#2": "Non dimenticare di registrare le tue transazioni!",
344+
"notifications.reminderText#3": "È ora di registrare le tue spese per oggi.",
345+
"notifications.reminderText#4": "Tieni sotto controllo le tue finanze, aggiungi le tue transazioni!",
346+
"notifications.reminderText#5": "Flow ti ricorda di tenere traccia delle tue spese!",
347+
"notifications.reminderText#6": "Aggiorna le tue transazioni e tieni sotto controllo le tue finanze.",
348+
"notifications.reminderText#7": "Non dimenticare di aggiungere le tue transazioni oggi!",
332349

333350
"sync.import": "Importa",
334351
"sync.import.pickFile": "Seleziona un file",
@@ -470,5 +487,6 @@
470487
"error.transaction.missingAccount": "Selezionare un account",
471488
"error.url.cannotOpen": "Impossibile aprire il collegamento",
472489
"error.exchangeRates.inaccurateDataDueToMissingRates": "Impossibile recuperare i tassi di cambio, i dati delle transazioni potrebbero non essere completamente accurati.",
473-
"error.exchangeRates.cannotFetch": "Impossibile recuperare i dati, si prega di verificare la connessione internet."
490+
"error.exchangeRates.cannotFetch": "Impossibile recuperare i dati, si prega di verificare la connessione internet.",
491+
"error.failedLocalAuth": "Autenticazione fallita, riprova."
474492
}

0 commit comments

Comments
 (0)