From 85bd707b6e420acc1b32e4627fd2701f23d88e8e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ABl=20Chiotti?=
<44336112+maelchiotti@users.noreply.github.com>
Date: Sun, 5 Jan 2025 11:44:10 +0100
Subject: [PATCH] v1.11.0 (#332)
* hotfix: typo
* Choose the font (#335)
* [270] feat: add setting to change the app font
* [270] feat: allow to change font
* [333] fix: index existing notes (#334)
* [299] Add more actions on multi-selection (#336)
* [299] feat: allow to share multiple notes
* [299] feat: allow to add labels to multiple notes
* [308] Add swipe actions in the bin (#338)
* [308] feat: add bin tile swipe action
* [308] style: remove prefer_expression_function_bodies
* [308] style: move backup utils to services
* [308] style: refactor dismissible widgets
* [308] feat: add bin swipe actions settings tiles
* [308] fix: exit bin selection mode on back button tap
* [308] style: fix lint
* [308] doc: add README.md section about pre-releases
* [308] doc: add README.md note about conversion scripts
* [dev] fix: remove nullable
* [dev] docs: update README.md
* [dev] fix: uncomment code
* [347] fix: hidden label icon (#348)
* [293] fix: back button for the labels page (#346)
* [325] Build mimir (#339)
* [325] chore: build mimir
* [325] chore: upgrade to flutter 3.27.1
* [325] chore: improve mimir build
* [325] fix: notes shared plural
* [325] chore: fix submodules
* [325] chore: use flutter_mimir from pub.dev
* Prepare v1.11.0 (#352)
* upgrade Flutter and Dart versions
* bump application version
* bump dependencies versions
* fix: lint
* fix: todo
* update localizations
* update changelogs
---
.github/workflows/release.yaml | 2 +-
.gitmodules | 1 -
.isar | 2 +-
.mimir | 2 +-
CHANGELOG.md | 16 +-
README.md | 20 +-
analysis_options.yaml | 2 +-
android/.gitignore | 4 +-
android/app/build.gradle | 13 +-
android/app/proguard-rules.pro | 8 +-
android/app/src/main/AndroidManifest.xml | 11 +
.../app/src/main/res/values-night/styles.xml | 4 -
android/app/src/main/res/values/styles.xml | 4 -
android/build.gradle | 4 +-
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
android/settings.gradle | 2 +-
assets/fonts/Barlow/Barlow-Black.ttf | Bin 0 -> 105888 bytes
assets/fonts/Barlow/Barlow-BlackItalic.ttf | Bin 0 -> 109224 bytes
assets/fonts/Barlow/Barlow-Bold.ttf | Bin 0 -> 102940 bytes
assets/fonts/Barlow/Barlow-BoldItalic.ttf | Bin 0 -> 106540 bytes
assets/fonts/Barlow/Barlow-ExtraBold.ttf | Bin 0 -> 104848 bytes
.../fonts/Barlow/Barlow-ExtraBoldItalic.ttf | Bin 0 -> 107620 bytes
assets/fonts/Barlow/Barlow-ExtraLight.ttf | Bin 0 -> 97076 bytes
.../fonts/Barlow/Barlow-ExtraLightItalic.ttf | Bin 0 -> 102512 bytes
assets/fonts/Barlow/Barlow-Italic.ttf | Bin 0 -> 104252 bytes
assets/fonts/Barlow/Barlow-Light.ttf | Bin 0 -> 97936 bytes
assets/fonts/Barlow/Barlow-LightItalic.ttf | Bin 0 -> 103536 bytes
assets/fonts/Barlow/Barlow-Medium.ttf | Bin 0 -> 98244 bytes
assets/fonts/Barlow/Barlow-MediumItalic.ttf | Bin 0 -> 103848 bytes
assets/fonts/Barlow/Barlow-Regular.ttf | Bin 0 -> 98812 bytes
assets/fonts/Barlow/Barlow-SemiBold.ttf | Bin 0 -> 103016 bytes
assets/fonts/Barlow/Barlow-SemiBoldItalic.ttf | Bin 0 -> 106380 bytes
assets/fonts/Barlow/Barlow-Thin.ttf | Bin 0 -> 96292 bytes
assets/fonts/Barlow/Barlow-ThinItalic.ttf | Bin 0 -> 101800 bytes
assets/fonts/Comic_Sans_MS/ComicSansMS.ttf | Bin 0 -> 126364 bytes
.../DancingScript-VariableFont_wght.ttf | Bin 0 -> 130480 bytes
...JetBrainsMono-Italic-VariableFont_wght.ttf | Bin 0 -> 195496 bytes
.../JetBrainsMono-VariableFont_wght.ttf | Bin 0 -> 191368 bytes
.../fonts/Merriweather/Merriweather-Black.ttf | Bin 0 -> 141700 bytes
.../Merriweather/Merriweather-BlackItalic.ttf | Bin 0 -> 142620 bytes
.../fonts/Merriweather/Merriweather-Bold.ttf | Bin 0 -> 142040 bytes
.../Merriweather/Merriweather-BoldItalic.ttf | Bin 0 -> 143832 bytes
.../Merriweather/Merriweather-Italic.ttf | Bin 0 -> 142648 bytes
.../fonts/Merriweather/Merriweather-Light.ttf | Bin 0 -> 148124 bytes
.../Merriweather/Merriweather-LightItalic.ttf | Bin 0 -> 142056 bytes
.../Merriweather/Merriweather-Regular.ttf | Bin 0 -> 149120 bytes
.../Montserrat-Italic-VariableFont_wght.ttf | Bin 0 -> 701156 bytes
.../Montserrat-VariableFont_wght.ttf | Bin 0 -> 688600 bytes
...NotoSans-Italic-VariableFont_wdth,wght.ttf | Bin 0 -> 2300468 bytes
.../NotoSans-VariableFont_wdth,wght.ttf | Bin 0 -> 2044548 bytes
...OpenSans-Italic-VariableFont_wdth,wght.ttf | Bin 0 -> 580280 bytes
.../OpenSans-VariableFont_wdth,wght.ttf | Bin 0 -> 529700 bytes
...ayfairDisplay-Italic-VariableFont_wght.ttf | Bin 0 -> 280660 bytes
.../PlayfairDisplay-VariableFont_wght.ttf | Bin 0 -> 301576 bytes
.../Raleway-Italic-VariableFont_wght.ttf | Bin 0 -> 306028 bytes
.../Raleway/Raleway-VariableFont_wght.ttf | Bin 0 -> 311856 bytes
.../RobotoMono-Italic-VariableFont_wght.ttf | Bin 0 -> 197012 bytes
.../RobotoMono-VariableFont_wght.ttf | Bin 0 -> 184172 bytes
assets/fonts/Ubuntu/Ubuntu-Bold.ttf | Bin 0 -> 270164 bytes
assets/fonts/Ubuntu/Ubuntu-BoldItalic.ttf | Bin 0 -> 283444 bytes
assets/fonts/Ubuntu/Ubuntu-Italic.ttf | Bin 0 -> 326932 bytes
assets/fonts/Ubuntu/Ubuntu-Light.ttf | Bin 0 -> 362552 bytes
assets/fonts/Ubuntu/Ubuntu-LightItalic.ttf | Bin 0 -> 350208 bytes
assets/fonts/Ubuntu/Ubuntu-Medium.ttf | Bin 0 -> 285136 bytes
assets/fonts/Ubuntu/Ubuntu-MediumItalic.ttf | Bin 0 -> 309648 bytes
assets/fonts/Ubuntu/Ubuntu-Regular.ttf | Bin 0 -> 299684 bytes
docs/data/export_1000_notes.json | 8004 +++++++++++++++++
.../metadata/android/en-US/changelogs/240.txt | 9 +
.../metadata/android/fr-FR/changelogs/240.txt | 9 +
.../android/zh-CN/full_description.yaml | 4 +-
.../app_bars/notes_page_app_bar_test.dart | 9 +-
integration_test/utils.dart | 2 +-
lib/app.dart | 75 +-
lib/common/actions/notes/delete.dart | 9 +-
lib/common/actions/notes/labels.dart | 35 +-
lib/common/actions/notes/restore.dart | 12 +-
lib/common/actions/notes/select.dart | 5 +-
lib/common/actions/notes/share.dart | 11 +-
lib/common/constants/labels.dart | 3 +
lib/common/enums/localization_completion.dart | 18 +-
.../enums/swipe_direction.dart | 0
.../navigation/app_bars/basic_app_bar.dart | 8 +-
.../navigation/app_bars/editor_app_bar.dart | 195 +-
.../navigation/app_bars/error_app_bar.dart | 9 +-
.../app_bars/labels_selection_app_bar.dart | 17 +-
.../navigation/app_bars/notes_app_bar.dart | 26 +-
.../app_bars/notes_selection_app_bar.dart | 45 +-
.../navigation/enums/bin_menu_option.dart | 62 +
.../note_menu_option.dart} | 38 +-
lib/common/navigation/side_navigation.dart | 44 +-
lib/common/navigation/top_navigation.dart | 37 +-
.../preferences/enums/bin_swipe_action.dart | 128 +
lib/common/preferences/enums/font.dart | 74 +
.../preferences/enums/swipe_action.dart | 58 +-
lib/common/preferences/preference_key.dart | 4 +
.../preferences/watched_preferences.dart | 16 +-
lib/common/widgets/labels/label_badge.dart | 23 +-
.../labels/label_placeholder_badge.dart | 15 +-
.../dismissible/bin_note_dismissible.dart | 55 +
.../notes/dismissible/note_dismissible.dart | 59 +
lib/common/widgets/notes/note_tile.dart | 187 +-
.../widgets/notes/note_tile_dismissible.dart | 71 -
.../widgets/notes/note_tile_labels_list.dart | 5 +-
.../placeholders/error_placeholder.dart | 17 +-
.../placeholders/loading_placeholder.dart | 17 +-
lib/l10n/translations/app_cs.arb | 78 +-
lib/l10n/translations/app_de.arb | 48 +-
lib/l10n/translations/app_en.arb | 86 +-
lib/l10n/translations/app_es.arb | 158 +-
lib/l10n/translations/app_fr.arb | 84 +-
lib/l10n/translations/app_hi.arb | 58 +-
lib/l10n/translations/app_pl.arb | 44 +-
lib/l10n/translations/app_pt.arb | 44 +-
lib/l10n/translations/app_ru.arb | 108 +-
lib/l10n/translations/app_tr.arb | 58 +-
lib/l10n/translations/app_zh.arb | 92 +-
lib/main.dart | 3 +-
lib/pages/bin/bin_page.dart | 35 +-
.../dialogs/labels_selection_dialog.dart | 49 +-
lib/pages/editor/editor_page.dart | 131 +-
lib/pages/editor/widgets/editor_button.dart | 37 +-
lib/pages/editor/widgets/editor_field.dart | 46 +-
.../editor/widgets/editor_labels_list.dart | 52 +-
lib/pages/labels/dialogs/label_dialog.dart | 3 +
lib/pages/labels/widgets/label_tile.dart | 14 +-
.../pages/settings_appearance_page.dart | 107 +-
.../settings/pages/settings_backup_page.dart | 10 +-
.../pages/settings_behavior_page.dart | 80 +-
lib/pages/settings/settings_main_page.dart | 4 +-
lib/providers/bin/bin_provider.dart | 2 +-
lib/providers/notes/notes_provider.dart | 28 +-
.../backup/auto_backup_service.dart} | 13 +-
.../backup/backup_service.dart} | 41 +-
lib/services/notes/notes_service.dart | 47 +-
lib/utils/files_utils.dart | 5 +-
lib/utils/theme_utils.dart | 19 +-
pubspec.lock | 157 +-
pubspec.yaml | 111 +-
scripts/isar/fdroid_build_isar.sh | 16 +-
scripts/mimir/fdroid_build_mimir.sh | 87 +-
140 files changed, 10233 insertions(+), 1236 deletions(-)
create mode 100644 assets/fonts/Barlow/Barlow-Black.ttf
create mode 100644 assets/fonts/Barlow/Barlow-BlackItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-Bold.ttf
create mode 100644 assets/fonts/Barlow/Barlow-BoldItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-ExtraBold.ttf
create mode 100644 assets/fonts/Barlow/Barlow-ExtraBoldItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-ExtraLight.ttf
create mode 100644 assets/fonts/Barlow/Barlow-ExtraLightItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-Italic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-Light.ttf
create mode 100644 assets/fonts/Barlow/Barlow-LightItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-Medium.ttf
create mode 100644 assets/fonts/Barlow/Barlow-MediumItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-Regular.ttf
create mode 100644 assets/fonts/Barlow/Barlow-SemiBold.ttf
create mode 100644 assets/fonts/Barlow/Barlow-SemiBoldItalic.ttf
create mode 100644 assets/fonts/Barlow/Barlow-Thin.ttf
create mode 100644 assets/fonts/Barlow/Barlow-ThinItalic.ttf
create mode 100644 assets/fonts/Comic_Sans_MS/ComicSansMS.ttf
create mode 100644 assets/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf
create mode 100644 assets/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf
create mode 100644 assets/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-Black.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-BlackItalic.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-Bold.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-BoldItalic.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-Italic.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-Light.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-LightItalic.ttf
create mode 100644 assets/fonts/Merriweather/Merriweather-Regular.ttf
create mode 100644 assets/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf
create mode 100644 assets/fonts/Montserrat/Montserrat-VariableFont_wght.ttf
create mode 100644 assets/fonts/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf
create mode 100644 assets/fonts/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf
create mode 100644 assets/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf
create mode 100644 assets/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf
create mode 100644 assets/fonts/Playfair_Display/PlayfairDisplay-Italic-VariableFont_wght.ttf
create mode 100644 assets/fonts/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf
create mode 100644 assets/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf
create mode 100644 assets/fonts/Raleway/Raleway-VariableFont_wght.ttf
create mode 100644 assets/fonts/Roboto_Mono/RobotoMono-Italic-VariableFont_wght.ttf
create mode 100644 assets/fonts/Roboto_Mono/RobotoMono-VariableFont_wght.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-Bold.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-BoldItalic.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-Italic.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-Light.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-LightItalic.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-Medium.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-MediumItalic.ttf
create mode 100644 assets/fonts/Ubuntu/Ubuntu-Regular.ttf
create mode 100644 docs/data/export_1000_notes.json
create mode 100644 fastlane/metadata/android/en-US/changelogs/240.txt
create mode 100644 fastlane/metadata/android/fr-FR/changelogs/240.txt
rename lib/common/{preferences => }/enums/swipe_direction.dart (100%)
create mode 100644 lib/common/navigation/enums/bin_menu_option.dart
rename lib/common/navigation/{menu_option.dart => enums/note_menu_option.dart} (68%)
create mode 100644 lib/common/preferences/enums/bin_swipe_action.dart
create mode 100644 lib/common/preferences/enums/font.dart
create mode 100644 lib/common/widgets/notes/dismissible/bin_note_dismissible.dart
create mode 100644 lib/common/widgets/notes/dismissible/note_dismissible.dart
delete mode 100644 lib/common/widgets/notes/note_tile_dismissible.dart
rename lib/{utils/auto_export_utils.dart => services/backup/auto_backup_service.dart} (93%)
rename lib/{utils/database_utils.dart => services/backup/backup_service.dart} (89%)
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index c2b8b2af..dd537a6f 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -109,7 +109,7 @@ jobs:
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
- name: Setup mimir
- run: bash scripts/mimir/fdroid_build_mimir.sh
+ run: bash scripts/mimir/fdroid_build_mimir.sh x64 armv7 arm64
- name: Add keystore
run: echo "${{ secrets.ANDROID_KEYSTORE }}" | base64 -d > android/localmaterialnotes_keystore.jks
- name: Add key properties
diff --git a/.gitmodules b/.gitmodules
index a9ef89b5..ce737fda 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,7 +1,6 @@
[submodule ".isar"]
path = .isar
url = https://github.com/isar-community/isar
-
[submodule ".mimir"]
path = .mimir
url = https://github.com/GregoryConrad/mimir
diff --git a/.isar b/.isar
index 8aab130f..d0de372c 160000
--- a/.isar
+++ b/.isar
@@ -1 +1 @@
-Subproject commit 8aab130f965df2ee3fa1ce8cbbe1cf91a88b6914
+Subproject commit d0de372c7fb5ce656613384fcfa028e9046a4684
diff --git a/.mimir b/.mimir
index c00cdd19..3033b162 160000
--- a/.mimir
+++ b/.mimir
@@ -1 +1 @@
-Subproject commit c00cdd195fc11ef9e9af64d85e607411e792e316
+Subproject commit 3033b1625c9c433544abc5500f456ac88c1e7b01
diff --git a/CHANGELOG.md b/CHANGELOG.md
index decb880a..e275f206 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,9 +4,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## 1.11.0 - 2025-01-05
+
+### Added
+
+- Choose the font of the application and the notes editor
+- More actions on multi-selection: share and add labels
+- Swipe actions in the bin
+
+### Fixed
+
+- Already existing notes missing while searching
+- Back action from the labels pages
+- Wrong icon for hidden labels
+
## 1.10.1 - 2024-12-23
-## Fixed
+### Fixed
- Bin page not displaying the deleted notes
- Missing translation for "No labels" placeholder
diff --git a/README.md b/README.md
index db6486ff..9e78e7b2 100644
--- a/README.md
+++ b/README.md
@@ -95,8 +95,24 @@ All the supported languages are listed here alphabetically. You can see more det
## External imports
+> [!NOTE]
+> The conversion scripts are not part of the application at the moment, they must be run on a computer.
+
The JSON import feature only supports JSON files created by the application. Scripts to convert exports from other applications to the format used by Material Notes are available in the [external_imports](docs/external_imports) directory. Please read [EXTERNAL_IMPORTS.md](docs/external_imports/EXTERNAL_IMPORTS.md) for more details.
+## Pre-releases
+
+> [!CAUTION]
+> Pre-release versions can be buggy. Some features may not work. You might even loose all your data. That's why they are only meant to be installed manually, after making a backup from the settings.
+
+Pre-release versions of the application are available on [GitHub releases](https://github.com/maelchiotti/LocalMaterialNotes/releases). You can filter by pre-releases only by typing `prerelease:true` in the search box.
+
+When using a pre-release version, please report any issue you encounter in the discussion linked to that pre-release.
+
+## Contributing
+
+Please see [CONTRIBUTING.md](CONTRIBUTING.md).
+
## Credits
### Inspiration
@@ -118,7 +134,3 @@ The JSON import feature only supports JSON files created by the application. Scr
### Assets
- [Material Design Icons](https://github.com/google/material-design-icons) for the [notes](https://fonts.google.com/icons?selected=Material+Symbols+Outlined:notes) icon used for the logo.
-
-## Contributing
-
-Please see [CONTRIBUTING.md](CONTRIBUTING.md).
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 3f63d46a..2b97a0f7 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -10,8 +10,8 @@ analyzer:
linter:
rules:
+ - require_trailing_commas
- public_member_api_docs
- prefer_relative_imports
- - prefer_expression_function_bodies
- always_put_control_body_on_new_line
- curly_braces_in_flow_control_structures
\ No newline at end of file
diff --git a/android/.gitignore b/android/.gitignore
index 9eaee1a5..55afd919 100644
--- a/android/.gitignore
+++ b/android/.gitignore
@@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
-**/*.jks
\ No newline at end of file
+**/*.jks
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 0d43d829..1b14148b 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,6 +1,7 @@
plugins {
id "com.android.application"
id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
@@ -35,9 +36,9 @@ android.applicationVariants.all { variant ->
}
android {
- namespace "com.maelchiotti.localmaterialnotes"
- compileSdkVersion flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
+ namespace = "com.maelchiotti.localmaterialnotes"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
@@ -48,10 +49,6 @@ android {
jvmTarget = JavaVersion.VERSION_1_8
}
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
- }
-
dependenciesInfo {
includeInApk = false
includeInBundle = false
@@ -92,7 +89,7 @@ android {
}
flutter {
- source '../..'
+ source = "../.."
}
dependencies {
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
index 116bc22f..1c0c8f8f 100644
--- a/android/app/proguard-rules.pro
+++ b/android/app/proguard-rules.pro
@@ -1 +1,7 @@
--keep class androidx.lifecycle.DefaultLifecycleObserver
\ No newline at end of file
+-keep class androidx.lifecycle.DefaultLifecycleObserver
+
+# TODO: check if this can be removed by removing the dependency to encrypt
+-dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue
+-dontwarn com.google.errorprone.annotations.CheckReturnValue
+-dontwarn com.google.errorprone.annotations.Immutable
+-dontwarn com.google.errorprone.annotations.RestrictedApi
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 30b4988e..c6be90b6 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask"
+ android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
@@ -38,5 +39,15 @@
android:name="flutterEmbedding"
android:value="2" />
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
index dbc9ea9f..06952be7 100644
--- a/android/app/src/main/res/values-night/styles.xml
+++ b/android/app/src/main/res/values-night/styles.xml
@@ -5,10 +5,6 @@
- @drawable/launch_background
- - false
- - false
- - false
- - shortEdges
- @drawable/launch_background
- - false
- - false
- - false
- - shortEdges
6uDJ>;?E7^Gqv8}IUiEtS)nPpW7QF*
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
RG5N{d>)HpMvp$Hk{udT79%ldm
literal 0
HcmV?d00001
diff --git a/assets/fonts/Barlow/Barlow-MediumItalic.ttf b/assets/fonts/Barlow/Barlow-MediumItalic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..62a4fb215c7f25ba12fe233a7b6b679c10f5cff3
GIT binary patch
literal 103848
zcmc${2Vhl2_CG!|_r99m8-$k*q>x@93F-6@N+bc4yc9?f5=;UDA_CIHy4V|w4ZA+j
zbuCfRb=9?CSL|RxS6zEsmAv0)&b{xx7YMH3-*3PFe_qbqb7#)XJ#%K}%$asCF=aJ;f1cDZbIz@$SJyH&vy-vHPbbZ3ta@zJ{eg^SY-cQR-^@AV
zavKY-f0{AA8}u!0%bhD0<(J*VSil{OnX}qf^*a(`f*)i|Aeil5ykg1nU4;=ZGZw!B
z@gtTv`*3B!h(7{X>yl+_7C&tr^#o&E8yF8dsk6h`94Be
z@1W(k%js&he2lo`)Mm93PmoX1{#5=W{~k|fVuxsQ|HP)rD@*66uw0%aNz6K-gCUmB
z-`v?%&1@rMzY3kVCiZU!;}=U3epC$L;$VtTg#V02Gx`aX5I@S8yV#4dlkuCw=7>sg
zI@$ei@4fVaUnP8h_VLH_#Q>#JDV}iuES?u8gqLVfVA0APzE=X9c0YT1cGF(YFKBl0
z2dvD>+E(mkma6+$Z2?O#v9a=|!hfnd-kN1jRiiB?yY5vls?7Q7STV{(Uj9{&gzgXA
z@3-H!-&_HK`hhH@>Je69{G{IlQY1Bdllk^pO|FXVP4d3IX76Zuf4`M!9;~K0Zf~0O
zdeFLoakXN5+gzeVfc&fQpDs$x+3IK!Ycd6ny`Q_cxYYCa3RZKEsol(KY9J5}7%e5k
z{884bSSQY50%f~{DdJpl0pnt~xEUdWC8CDKf_@|`hC3co=B$yefZNY@!o7rD0rx7l
zAMWGqZ*ZSv&%!-`A7?MJkKi8RR>rxVr@~F=xp4FOEVy&{Jh;ug9c~9dl?lF#uL8b?
zp9}YVeihtnIBGAy0cFAYU-;8-pW#TEzsL{5eV4xrUMGr);J!*!0k09YaHolBaN7k^
zM&5QJS291cz6G%dapkHF_)c+^j&l|(Ht4uu{-R&U6;>*WbzEhmMX-*WSSezHP
z7qPk!=D=MK>jtd@rQE|713R74?tqU*p*^t!RDHyc1N?M@uMVW>0DUJg8G8!Sbs+r}
zxbFt$O?f&}Y9n8nLI%Q4!nK!plTUZB9B?SX;ltU`=X$ttvQ^+u=E=!g;mT*9j(f?6
z1Ag+km24K_{g8>{|4Kd{nfB>Y?I)SG;)!d(Wg8^59I~8Bx#$4C2G5!6L*t9fkToO~
z-%`sQQo6onJDhCtSvK0DZ+yp)_(N-ll%y780-ik^@tWC$A+b;VbYD(R{Jd&NUi((Da<@T7;M0I#0{sKy1IGrI2G$2Y
z68K`^JAq#Yv7pePi9
z!=H-?j!2BikEn}iifE5m6|p_yP{g+pgOS0JiIMq{b&*YxuSOn;{5dK!YE#rDQG259
zk9sCLKDsr!KYDBQ711|F-xvLK^jk5>F@-UcW9G*!i&-7BIp(66Yhvz-c`&v%c2?}k
zu|2U{VlR)qHTI#{=VRZD{W$iAI35=e7ZaBfmlIbOHzlrd#K;k2Mih*6jJzX$MEvOZ
z{P^eM55|8qYPloCG1Bo`LV3c}goO#;CJZLp6CH^eiN%REi4BPh6T1`FCT>mKnUt86
zm2_#+(d3}y?i9b2sFX1&1u2!OBU5`*zfKcr;b}|K&P}^K?bfuvq&=4QeA=67AE$kj
zc679Dbj;|K(c4BpH2SGAF=Nul%pBt!vwX~&G3SnXe{9#-7skFl_LKB8(zm4_N&hxO
z%?QpIk&%&6oKcg}kg+hMGowFaLuOd!sLb@tqRi^d#!P4C@+?zUNY==#SH{gB_e%D>
z?0wmfWIvNrl2e;AE9di^pK`l$59Mvi`%~Tz`8+=?KP5jWzbt=Beq+8f|IPf5^S{YI
zT3{=PC`c&CEcm?Or$VJLsPI7Hp~7#A&M&&M=%%7~inEJLizgS)Ep91x75`QeSmG$j
zEh#T)C}}O}FL|WonUdE_J}CLJM{p*Ybe!
znDX@Uvhs%}j+(e};>8nhs>rXXtGKXIsf?%`S$SIJ*_D@8g;k|g6;(~CT2QsT>a*(X
z>T9a+s@`7{RC86$K+S=gLp9&ls+*H*9UVqT#lN
zfm!BR(X+SgU+;8xS-PUS
z8oG9L-O+VmY1-1fr5#JJT>8q=f1heObpn1*Eo)vjxcv6+@b0sF0(*9^NL_LFiZ@pL
zdfK$pR-X1)Z(MIqUwB_-Ur*nbzE}GG+2`)B>fhP_+{(!-&s}-(%J)|}R;^j}#Oe8`
z-?)0_>bBK)ui3SB&e~mPY+RSV?(;MI&V1m^x7SClFJHfP{p)8LcWt<$6fpYf0cjC
zKjHu6UvamH6Qjf!Q6!qhPB9>!68{kIDyrhIgeh@Kk}_H;RxVL)RR)y(@mu2m?Fe>+
zJ7OL2jzmYQBioVZ81JZYta04nxWn28!W6R-N?fKY1qPQJ;&+3~Fh{gwgu_8x<~mBiW&d$pF3`CQ0hcibm+i!*9QASc
z4=~d2CT@o~ga2apY98*zZnK-aV+Mb4r!qG90^sSva|UP0Q1?EaW|h0g-3iM1gOdjH
z1``J3rT+&BAB@n#5C8Z<(FYSh5Qm>TeA(d}4_|rs!o%kuZaX~VaLM7RhaNc8c4+>g
z*^C{+*z(ZCLwScn-v5rVcXqus&kVboQrHc5fY*qz=sg$0-tHFb#by~I-V=w!2NLuA
ziG%QcN4paT#ap<0OME20@PvD>;)wWK-YL73>y