Skip to content
Merged
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
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,22 @@ 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).

# 2.1.0 - 2025-07-18

### Added

- Open links in the markdown editor in read-only mode

### Fixed

- JSON exports missing the note type
- JSON imports failing or creating corrupted notes
- Missing localizations causing crashes
- Force the editor to be writable when adding a new note
- Undo/Redo in the rich text editor
- Links color in the rich text editor
- Empty notes not being removed

# 2.0.0 - 2025-05-18

### Added
Expand Down
Empty file.
Empty file.
11 changes: 11 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/290.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ADDED
- Open links in the markdown editor in read-only mode

FIXED
- JSON exports missing the note type
- JSON imports failing or creating corrupted notes
- Missing localizations causing crashes
- Force the editor to be writable when adding a new note
- Undo/Redo in the rich text editor
- Links color in the rich text editor
- Empty notes not being removed
Empty file.
11 changes: 11 additions & 0 deletions fastlane/metadata/android/fr-FR/changelogs/290.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
AJOUTÉ
- Ouverture des liens dans l'éditeur markdown en mode lecture seule

CORRIGÉ
- Type de note manquant dans les exports JSON
- Imports JSON échouant ou créant des notes corrompues
- Localisations manquantes provoquant des plantages
- Forcer l'éditeur à être en écriture lors de l'ajout d'une nouvelle note
- Annuler/Rétablir dans l'éditeur de texte riche
- Couleur des liens dans l'éditeur de texte riche
- Notes vides non supprimées
1 change: 1 addition & 0 deletions fastlane/metadata/android/he-IL/full_description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<p><b>Material Notes</b> is a text-based note-taking application, aimed at simplicity. It embraces Material Design. It stores the notes locally and doesn't have any internet permissions, so you are the only one that can access the notes.</p><p><b>Take notes</b></p><ul><li>Write text notes (title and content)</li><li>Choose between plain text, markdown, rich text or checklist notes</li><li>Use the quick action from your home screen to quickly add a note</li></ul><p><b>Organize</b></p><ul><li>Search though your notes</li><li>Sort your notes by date or title, in ascending or descending order</li><li>Display your notes in a list or a grid view</li><li>Pin and archive your notes</li><li>Recover your deleted notes from the bin</li></ul><p><b>Categorize</b></p><ul><li>Categorize your notes with tags</li><li>Distinguish your tags with their color</li><li>Pin and hide your tags</li></ul><p><b>Share & backup</b></p><ul><li>Share text from other applications to add it directly to a note</li><li>Share your notes as text</li><li>Export your notes as JSON, manually or automatically, and import them back</li><li>Export your notes as Markdown</li></ul><p><b>Protect</b></p><ul><li>Never worry about how your data is handled: it cannot leave your device as the application doesn't have any internet permissions</li><li>Lock the application, a specific notes, or all notes with a specific tag</li><li>Encrypt your JSON exports</li></ul><p><b>Customize</b></p><ul><li>Choose your language</li><li>Choose your theme (light, dark or black)</li><li>Choose if you want your theme to be dynamic (use colors from your background)</li><li>Choose which notes types you want enabled</li></ul>
Empty file.
1 change: 1 addition & 0 deletions fastlane/metadata/android/he-IL/short_description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Simple, local, material design notes
1 change: 1 addition & 0 deletions fastlane/metadata/android/he-IL/title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Material Notes
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
2 changes: 1 addition & 1 deletion fastlane/metadata/android/ru-RU/full_description.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<p><b>Material Notes</b> is a text-based note-taking application, aimed at simplicity. It embraces Material Design. It stores the notes locally and doesn't have any internet permissions, so you are the only one that can access the notes.</p><p><b>Take notes</b></p><ul><li>Write text notes (title and content)</li><li>Choose between plain text, markdown, rich text or checklist notes</li><li>Use the quick action from your home screen to quickly add a note</li></ul><p><b>Organize</b></p><ul><li>Search though your notes</li><li>Sort your notes by date or title, in ascending or descending order</li><li>Display your notes in a list or a grid view</li><li>Pin and archive your notes</li><li>Recover your deleted notes from the bin</li></ul><p><b>Categorize</b></p><ul><li>Categorize your notes with tags</li><li>Distinguish your tags with their color</li><li>Pin and hide your tags</li></ul><p><b>Share & backup</b></p><ul><li>Share text from other applications to add it directly to a note</li><li>Share your notes as text</li><li>Export your notes as JSON, manually or automatically, and import them back</li><li>Export your notes as Markdown</li></ul><p><b>Protect</b></p><ul><li>Never worry about how your data is handled: it cannot leave your device as the application doesn't have any internet permissions</li><li>Lock the application, a specific notes, or all notes with a specific tag</li><li>Encrypt your JSON exports</li></ul><p><b>Customize</b></p><ul><li>Choose your language</li><li>Choose your theme (light, dark or black)</li><li>Choose if you want your theme to be dynamic (use colors from your background)</li><li>Choose which notes types you want enabled</li></ul>
<p><b>Material Notes</b> - это приложение для создания текстовых заметок, ориентированное на простоту. Оно поддерживает дизайн Material Design. Оно хранит заметки локально и не имеет доступа к Интернету, поэтому доступ к заметкам можете получить только вы.</p><p><b>Делайте заметки</b></p><ul><li>Писать текстовые заметки (заголовок и содержание)</li><li>Выберите между обычным текстом, разметкой, форматированным текстом или списком заметок</li><li>Воспользуйтесь быстрым действием на главном экране, чтобы быстро добавить заметку</li></ul><p><b>Упорядочить</b></p><ul><li>Поиск по вашим заметкам</li><li>Сортировка ваших заметок по дате или названию в порядке возрастания или убывания</li><li>Отображение ваших заметок в виде списка или таблицы</li><li>Закрепите и заархивируйте свои заметки</li><li>Восстановите удаленные заметки из корзины</li></ul><p><b>Классифицировать</b></p><ul><li>Разделяйте свои заметки по категориям с помощью тегов</li><li>Выделяйте теги по цвету</li><li>Закрепляйте и скрывайте теги</li></ul><p><b>Общий доступ и резервное копирование</b></p><ul><li>Делитесь текстом из других приложений, чтобы добавить его непосредственно в заметку</li><li>Делитесь своими заметками в виде текста</li><li>Экспортируйте свои заметки в формате JSON вручную или автоматически и импортируйте их обратно</li><li>Экспортируйте свои заметки в формате Markdown</li></ul><p><b>Защита</b></p><ul><li>Никогда не беспокойтесь о том, как обрабатываются ваши данные: они не могут покинуть ваше устройство, поскольку у приложения нет прав доступа в Интернет</li><li>Заблокируйте приложение, определенные заметки или все заметки с определенным тегом</li><li>Зашифруйте свой экспорт в формате JSON</li></ul><p><b>Настройка</b></p><ul><li>Выберите свой язык</li><li>Выберите свою тему (светлую, темную или черную)</li><li>Выберите, хотите ли вы, чтобы ваша тема была динамичной (используйте цвета вашего фона)</li><li>Выберите, какие типы заметок вы хотите включить</li></ul>
63 changes: 63 additions & 0 deletions fastlane/metadata/android/ru-RU/full_description.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
full_description: |
<p>
<b>Material Notes</b> - это приложение для создания текстовых заметок, ориентированное на простоту. Оно поддерживает дизайн Material Design.
Оно хранит заметки локально и не имеет доступа к Интернету, поэтому доступ к заметкам можете получить только вы.
</p>

<p>
<b>Делайте заметки</b>
</p>
<ul>
<li>Писать текстовые заметки (заголовок и содержание)</li>
<li>Выберите между обычным текстом, разметкой, форматированным текстом или списком заметок</li>
<li>Воспользуйтесь быстрым действием на главном экране, чтобы быстро добавить заметку</li>
</ul>

<p>
<b>Упорядочить</b>
</p>
<ul>
<li>Поиск по вашим заметкам</li>
<li>Сортировка ваших заметок по дате или названию в порядке возрастания или убывания</li>
<li>Отображение ваших заметок в виде списка или таблицы</li>
<li>Закрепите и заархивируйте свои заметки</li>
<li>Восстановите удаленные заметки из корзины</li>
</ul>

<p>
<b>Классифицировать</b>
</p>
<ul>
<li>Разделяйте свои заметки по категориям с помощью тегов</li>
<li>Выделяйте теги по цвету</li>
<li>Закрепляйте и скрывайте теги</li>
</ul>

<p>
<b>Общий доступ и резервное копирование</b>
</p>
<ul>
<li>Делитесь текстом из других приложений, чтобы добавить его непосредственно в заметку</li>
<li>Делитесь своими заметками в виде текста</li>
<li>Экспортируйте свои заметки в формате JSON вручную или автоматически и импортируйте их обратно</li>
<li>Экспортируйте свои заметки в формате Markdown</li>
</ul>

<p>
<b>Защита</b>
</p>
<ul>
<li>Никогда не беспокойтесь о том, как обрабатываются ваши данные: они не могут покинуть ваше устройство, поскольку у приложения нет прав доступа в Интернет</li>
<li>Заблокируйте приложение, определенные заметки или все заметки с определенным тегом</li>
<li>Зашифруйте свой экспорт в формате JSON</li>
</ul>

<p>
<b>Настройка</b>
</p>
<ul>
<li>Выберите свой язык</li>
<li>Выберите свою тему (светлую, темную или черную)</li>
<li>Выберите, хотите ли вы, чтобы ваша тема была динамичной (используйте цвета вашего фона)</li>
<li>Выберите, какие типы заметок вы хотите включить</li>
</ul>
Empty file.
Empty file.
2 changes: 1 addition & 1 deletion fastlane/metadata/android/zh-TW/full_description.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<p><b>Material Notes</b> is a text-based note-taking application, aimed at simplicity. It embraces Material Design. It stores the notes locally and doesn't have any internet permissions, so you are the only one that can access the notes.</p><p><b>Take notes</b></p><ul><li>Write text notes (title and content)</li><li>Choose between plain text, markdown, rich text or checklist notes</li><li>Use the quick action from your home screen to quickly add a note</li></ul><p><b>Organize</b></p><ul><li>Search though your notes</li><li>Sort your notes by date or title, in ascending or descending order</li><li>Display your notes in a list or a grid view</li><li>Pin and archive your notes</li><li>Recover your deleted notes from the bin</li></ul><p><b>Categorize</b></p><ul><li>Categorize your notes with tags</li><li>Distinguish your tags with their color</li><li>Pin and hide your tags</li></ul><p><b>Share & backup</b></p><ul><li>Share text from other applications to add it directly to a note</li><li>Share your notes as text</li><li>Export your notes as JSON, manually or automatically, and import them back</li><li>Export your notes as Markdown</li></ul><p><b>Protect</b></p><ul><li>Never worry about how your data is handled: it cannot leave your device as the application doesn't have any internet permissions</li><li>Lock the application, a specific notes, or all notes with a specific tag</li><li>Encrypt your JSON exports</li></ul><p><b>Customize</b></p><ul><li>Choose your language</li><li>Choose your theme (light, dark or black)</li><li>Choose if you want your theme to be dynamic (use colors from your background)</li><li>Choose which notes types you want enabled</li></ul>
<p><b>Material Notes</b> 乃一款以文字為本的筆記應用程式,秉承簡約之風,擁抱 Material 設計。 筆記於本機儲存,並不索取任何網際網路權限,只有您可以存取筆記。</p><p><b>記事</b></p><ul><li>撰寫文字筆記 (標題與內容)</li><li>自選純文字、Markdown、格式化文字或勾選清單筆記</li><li>從您的主畫面使用快速動作以便快速新增筆記</li></ul><p><b>整理</b></p><ul><li>搜尋您的筆記</li><li>按日期或標題、順序或倒序排序您的筆記</li><li>以清單或網格檢視顯示您的筆記</li><li>釘選與封存您的筆記</li><li>從垃圾桶還原您已刪除的筆記</li></ul><p><b>分類</b></p><ul><li>以標籤分類您的筆記</li><li>以色彩區別您的標籤</li><li>釘選與隱藏您的標籤</li></ul><p><b>分享與備份</b></p><ul><li>從其他應用程式分享文字,並直接新增至筆記</li><li>以文字形式分享您的筆記</li><li>手動或自動將您的筆記匯出成 JSON,以便日後可重新匯入</li><li>將您的筆記匯出成 Markdown</li></ul><p><b>保護</b></p><ul><li>不必擔心您的資料如何處理:應用程式沒有任何網際網路權限, 故數據不能流出您的裝置</li><li>鎖定應用程式、特定筆記又或特定標籤的所有筆記</li><li>加密您的 JSON 匯出</li></ul><p><b>自訂</b></p><ul><li>自選您的語言</li><li>自選您的佈景主題 (淺色、深色或黑色)</li><li>選擇是否使用動態佈景主題 (從您的背景選用色彩)</li><li>自選您想啟用的筆記類型</li></ul>
64 changes: 64 additions & 0 deletions fastlane/metadata/android/zh-TW/full_description.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
full_description: |
<p>
<b>Material Notes</b> 乃一款以文字為本的筆記應用程式,秉承簡約之風,擁抱 Material 設計。
筆記於本機儲存,並不索取任何網際網路權限,只有您可以存取筆記。
</p>

<p>
<b>記事</b>
</p>
<ul>
<li>撰寫文字筆記 (標題與內容)</li>
<li>自選純文字、Markdown、格式化文字或勾選清單筆記</li>
<li>從您的主畫面使用快速動作以便快速新增筆記</li>
</ul>

<p>
<b>整理</b>
</p>
<ul>
<li>搜尋您的筆記</li>
<li>按日期或標題、順序或倒序排序您的筆記</li>
<li>以清單或網格檢視顯示您的筆記</li>
<li>釘選與封存您的筆記</li>
<li>從垃圾桶還原您已刪除的筆記</li>
</ul>

<p>
<b>分類</b>
</p>
<ul>
<li>以標籤分類您的筆記</li>
<li>以色彩區別您的標籤</li>
<li>釘選與隱藏您的標籤</li>
</ul>

<p>
<b>分享與備份</b>
</p>
<ul>
<li>從其他應用程式分享文字,並直接新增至筆記</li>
<li>以文字形式分享您的筆記</li>
<li>手動或自動將您的筆記匯出成 JSON,以便日後可重新匯入</li>
<li>將您的筆記匯出成 Markdown</li>
</ul>

<p>
<b>保護</b>
</p>
<ul>
<li>不必擔心您的資料如何處理:應用程式沒有任何網際網路權限,
故數據不能流出您的裝置</li>
<li>鎖定應用程式、特定筆記又或特定標籤的所有筆記</li>
<li>加密您的 JSON 匯出</li>
</ul>

<p>
<b>自訂</b>
</p>
<ul>
<li>自選您的語言</li>
<li>自選您的佈景主題 (淺色、深色或黑色)</li>
<li>選擇是否使用動態佈景主題 (從您的背景選用色彩)</li>
<li>自選您想啟用的筆記類型</li>
</ul>
5 changes: 3 additions & 2 deletions lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import 'common/preferences/preference_key.dart';
import 'common/system_utils.dart';
import 'common/ui/theme_utils.dart';
import 'l10n/app_localizations/app_localizations.g.dart';
import 'l10n/fallback_localization_delegate.dart';
import 'navigation/router.dart';
import 'providers/labels/labels_list/labels_list_provider.dart';
import 'providers/labels/labels_navigation/labels_navigation_provider.dart';
Expand Down Expand Up @@ -139,8 +140,8 @@ class _AppState extends ConsumerState<App> with AfterLayoutMixin<App> {
themeMode: themeMode,
localizationsDelegates: [
...AppLocalizations.localizationsDelegates,
ChecklistLocalizations.delegate,
FleatherLocalizations.delegate,
FallbackLocalizationDelegate<ChecklistLocalizations>(target: ChecklistLocalizations.delegate),
FallbackLocalizationDelegate<FleatherLocalizations>(target: FleatherLocalizations.delegate),
],
supportedLocales: SupportedLanguage.locales,
locale: SystemUtils().appLocale,
Expand Down
6 changes: 3 additions & 3 deletions lib/common/enums/supported_language.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ enum SupportedLanguage {
fr(Locale('fr'), 1),

/// German.
de(Locale('de'), .79),
de(Locale('de'), .85),

/// Hindi.
hi(Locale('hi'), .52),

/// Italian.
it(Locale('it'), .61),
it(Locale('it'), .86),

/// Polish.
pl(Locale('pl'), .37),
Expand All @@ -32,7 +32,7 @@ enum SupportedLanguage {
pt(Locale('pt'), .54),

/// Russian.
ru(Locale('ru'), .61),
ru(Locale('ru'), .78),

/// Turkish.
tr(Locale('tr'), .48),
Expand Down
28 changes: 28 additions & 0 deletions lib/l10n/fallback_localization_delegate.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:flutter/material.dart';

/// Localization delegate with a fallback.
class FallbackLocalizationDelegate<T> extends LocalizationsDelegate<T> {
/// The fallback locale.
final Locale _fallbackLocale = Locale('en');

/// The target locale.
final LocalizationsDelegate<T> target;

/// Localization delegate of the [target] locale that falls back to `en` if the localizations are not available.
FallbackLocalizationDelegate({required this.target});

@override
bool isSupported(Locale locale) => true;

@override
Future<T> load(Locale locale) async {
try {
return await target.load(locale);
} catch (e) {
return await target.load(_fallbackLocale);
}
}

@override
bool shouldReload(covariant LocalizationsDelegate<T> old) => false;
}
Loading
Loading