Skip to content

Tags: D4vidDf/HyperBridge

Tags

v0.4.0

Toggle v0.4.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
0.4.0 Update (#100)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

* feat(app): add backup system, language selector, and UI refresh

- **Backup & Restore**: Implemented a complete system to export/import settings, blocklists, and priorities via `.hbr` JSON files.
- **Localization**: Added an in-app Language Selector and support for German (de) and Russian (ru).
- **UI Overhaul**: Updated the entire settings and onboarding experience to **Material 3 Expressive** design (Large Top Bars, increased roundness, surface colors).
- **Onboarding**: Added a Privacy Page explaining offline architecture and improved HyperOS 3.0 compatibility checks.
- **Fixes**: Resolved Navigation "Exit" button rendering as an icon instead of text, and fixed App Icon loading in the Settings screen.
- **Changelog**: Updated release notes for v0.3.1.

Closes #41

* Feature/ru de language (#52)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Added Russian and German to the language selector.

Fixed strings tags

* Feature/ru de language (#54)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

* de fix

* ru fix

* uk fix

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* fix(app): Fixed bold tags on russian strings.xml and updated the AppListItem.kt behaviour

* fix(app): Fixed language

* fix(app): fixed log modal

* update dev branch (#59)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Dev (#57)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

* feat(app): add backup system, language selector, and UI refresh

- **Backup & Restore**: Implemented a complete system to export/import settings, blocklists, and priorities via `.hbr` JSON files.
- **Localization**: Added an in-app Language Selector and support for German (de) and Russian (ru).
- **UI Overhaul**: Updated the entire settings and onboarding experience to **Material 3 Expressive** design (Large Top Bars, increased roundness, surface colors).
- **Onboarding**: Added a Privacy Page explaining offline architecture and improved HyperOS 3.0 compatibility checks.
- **Fixes**: Resolved Navigation "Exit" button rendering as an icon instead of text, and fixed App Icon loading in the Settings screen.
- **Changelog**: Updated release notes for v0.3.1.

Closes #41

* Feature/ru de language (#52)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Added Russian and German to the language selector.

Fixed strings tags

* Feature/ru de language (#54)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

* de fix

* ru fix

* uk fix

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* fix(app): Fixed bold tags on russian strings.xml and updated the AppListItem.kt behaviour

* fix(app): Fixed language

* fix(app): fixed log modal

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>
Co-authored-by: kilo3528 <71942463+kilo3528@users.noreply.github.com>

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>
Co-authored-by: kilo3528 <71942463+kilo3528@users.noreply.github.com>

* feat(app): Updated library to version 0.4.3

Added support for Widgets inside notifications and HyperIsland.

Updated colored icons for calls.
Added timer to call islands.

* fix(app): Show firstisland expand

* feat: add snapshot mode, per-widget settings, and revamp design screen

- Implement `WidgetRenderMode` (Snapshot vs. Interactive) to fix empty lists in RemoteViews.
- Refactor `AppPreferences` to store configuration per widget ID using dynamic keys.
- Revamp `DesignScreen` UI: grouped category cards and restored FAB bottom sheet.
- Implement nested navigation for Design tab (Dashboard -> App List -> Widget Detail).
- Fix `SecurityException` crash by safely handling non-exported widget config activities.
- Remove illegal `ACTION_APPWIDGET_UPDATE` broadcast causing `DeadObjectException`.
- Add `getWidgetBitmap` to `WidgetManager` for capturing view-based snapshots.
- Update `WidgetConfigScreen` with scrollable layout, live preview updates, and M3 styling.

* feat(widget): overhaul config UI, add search, and improve performance

- Redesign `WidgetConfigScreen` with tabbed settings (Appearance/Behavior), live preview, and floating toolbar.
- Revamp `WidgetPickerScreen` with app search, expandable groups, and async preview loading.
- Implement `WidgetConfig` data model to centralize settings (Size, Render Mode, Timeout, Auto Update).
- Add "Auto Refresh" capability for Snapshot mode to periodically update static views.
- Optimize `NotificationReaderService` by caching app labels and moving junk checks to IO dispatcher.
- Fix service initialization crash by ensuring translators load before `WidgetManager`.
- Improve `WidgetManager` bitmap capture quality and refactor `RemoteViews` caching mechanism.
- Add English and Spanish translat…

0.4.0_rc2

Toggle 0.4.0_rc2's commit message
fix(nav): correct notification layout and improve state handling

This commit resolves a critical layout issue with navigation notifications and improves UI state management and localization.

-   **Navigation Notification Fix**:
    -   In `NavTranslator`, navigation notifications have been reverted to use the standard `setBaseInfo` (Type 1) layout.
    -   This fixes a bug where action buttons (like "Exit") were not being displayed in the notification shade because the custom `setCoverInfo` layout does not support them.
    -   The implementation now correctly builds a standard notification with a title, content (ETA • Distance), and properly attached `HyperAction` buttons.
    -   The island layout and progress bar functionality remain unchanged.

-   **State Handling in `HomeScreen`**:
    -   Fixed a potential crash in the `AppConfigBottomSheet` by safely handling a nullable state variable (`configApp`).
    -   A local, non-null variable is now used within lambdas to prevent race conditions where the state could become null before the click listener is executed.

-   **Localization Updates**:
    -   Refined and improved translations for Brazilian Portuguese (`pt-rBR`) and Polish (`pl-rPL`) to enhance clarity and provide more natural phrasing.
    -   Corrected untranslated strings, such as the search hint, in both language files.
    -   Updated changelogs for version 0.4.0 to use translated text instead of English.

-   **Version Bump**:
    -   Incremented the `versionCode` to 12.

0.4.0_rc1

Toggle 0.4.0_rc1's commit message
docs(changelog): add version 0.4.0 update notes

This commit introduces localized changelog strings for the "Customization Update" (version 0.4.0) across multiple languages.

- **New Strings**: Added `title_0_4_0` and `changelog_0_4_0` to the `strings.xml` files for default English and various localizations (de, es, in, ko, pl, pt, ru, tr, uk).
- **Changelog Content**: The new strings detail major features and improvements in version 0.4.0, including the Theme Engine, Widget Support, Notification Engine 2.0 rewrite, and a visual refresh.
- **Localization Cleanup**: Removed redundant, non-English keywords from the `status_download_complete_words` string array in several language files to improve clarity and maintainability.

0.4.0-dev08

Toggle 0.4.0-dev08's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Feat/theme engine (#79)

* feat(theme): implement theme engine, creator UI, and import logic

- Implement `ThemeRepository` to manage JSON-based `.hbr` theme packages, including Zip import/export logic via `FileProvider`.
- Add `RulesEngine` to `NotificationReaderService` for intercepting notifications via regex/package rules to enforce layouts or overrides.
- Introduce `ThemeManagerScreen` and `ThemeCreatorScreen` for managing installed themes and building new ones with live previews.
- Add `ThemeInstallerActivity` to handle external theme file intents.
- Refactor all translators (`Call`, `Nav`, `Progress`, `Standard`) to dynamically load assets and colors from the active `HyperTheme`.
- Implement per-app overrides for highlight colors and custom action icons.
- Integrate Kotlin Serialization for theme configuration parsing.

* feat(theme): implement advanced theme creation and overhaul installer

- Introduce `ThemeCreatorScreen` and sub-screens (`ColorsScreen`, `IconsScreen`, `ThemeAppScreen`) for granular control over colors, icon shapes, and app-specific overrides.
- Implement `ThemePreviews` to visualize changes to notifications, calls, and action buttons in real-time within the creator UI.
- Update `ThemeModels` to support advanced configuration: customizable icon shapes (`GlobalConfig`), detailed call styling (`CallModule`), and per-app action overrides.
- Refactor `ThemeViewModel` to manage creator state, handle asset staging (icons, shapes), and persist themes with the updated JSON structure.
- Enhance `ThemeInstallerActivity` to detect system theme (light/dark) and use dynamic colors, while adopting a transparent activity style for a dialog-like experience.
- Update `BaseTranslator` and subclasses (`Standard`, `Nav`, `Call`, `Progress`) to apply theme-defined shapes and padding to action icons using `applyThemeToActionIcon`.
- Add `IconsScreen` logic to toggle between full and minimal modes, adjust icon padding, and select from preset shapes (Circle, Square, Squircle, etc.).
- Add localization strings for all new creator UI elements, shape names, and installer dialogs.
- Bump application version to `0.4.0-dev08`.

0.4.0-dev06

Toggle 0.4.0-dev06's commit message
fix(service): enhance notification content resolution and lifecycle h…

…andling

- Implement `resolveTitle` and `resolveText` to intelligently fallback to `EXTRA_TITLE_BIG` and `EXTRA_BIG_TEXT` when standard fields are missing or resemble the package name.
- Add immediate cancellation of processing jobs in `onNotificationRemoved` to prevent "ghost" notifications.
- Introduce a final existence check against active notifications before displaying to handle race conditions during processing.
- Bump application version to `0.4.0-dev06`.

0.4.0_dev05

Toggle 0.4.0_dev05's commit message
refactor(design): overhaul widget management and navigation flow

- Replace `SavedWidgetsListScreen` with a revamped `SavedAppWidgetsScreen` featuring search, collapsible app groups, and pull-to-refresh.
- Implement `AnimatedContent` for smooth transitions in `HomeScreen` and dynamic visibility for system bars during navigation.
- Update `StandardTranslator` to map notification actions to text buttons and hidden actions instead of footer actions.
- Add "Show on Island" trigger and improved preview measurement in widget list items.
- Introduce "BETA" labeling across widget picker and design entry points.
- Add localization strings for new widget management UI.

0.4.0-dev09

Toggle 0.4.0-dev09's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Dev (#57)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

* feat(app): add backup system, language selector, and UI refresh

- **Backup & Restore**: Implemented a complete system to export/import settings, blocklists, and priorities via `.hbr` JSON files.
- **Localization**: Added an in-app Language Selector and support for German (de) and Russian (ru).
- **UI Overhaul**: Updated the entire settings and onboarding experience to **Material 3 Expressive** design (Large Top Bars, increased roundness, surface colors).
- **Onboarding**: Added a Privacy Page explaining offline architecture and improved HyperOS 3.0 compatibility checks.
- **Fixes**: Resolved Navigation "Exit" button rendering as an icon instead of text, and fixed App Icon loading in the Settings screen.
- **Changelog**: Updated release notes for v0.3.1.

Closes #41

* Feature/ru de language (#52)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Added Russian and German to the language selector.

Fixed strings tags

* Feature/ru de language (#54)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

* de fix

* ru fix

* uk fix

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* fix(app): Fixed bold tags on russian strings.xml and updated the AppListItem.kt behaviour

* fix(app): Fixed language

* fix(app): fixed log modal

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>
Co-authored-by: kilo3528 <71942463+kilo3528@users.noreply.github.com>

0.4.0-dev07

Toggle 0.4.0-dev07's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Dev (#57)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

* feat(app): add backup system, language selector, and UI refresh

- **Backup & Restore**: Implemented a complete system to export/import settings, blocklists, and priorities via `.hbr` JSON files.
- **Localization**: Added an in-app Language Selector and support for German (de) and Russian (ru).
- **UI Overhaul**: Updated the entire settings and onboarding experience to **Material 3 Expressive** design (Large Top Bars, increased roundness, surface colors).
- **Onboarding**: Added a Privacy Page explaining offline architecture and improved HyperOS 3.0 compatibility checks.
- **Fixes**: Resolved Navigation "Exit" button rendering as an icon instead of text, and fixed App Icon loading in the Settings screen.
- **Changelog**: Updated release notes for v0.3.1.

Closes #41

* Feature/ru de language (#52)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Added Russian and German to the language selector.

Fixed strings tags

* Feature/ru de language (#54)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

* de fix

* ru fix

* uk fix

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* fix(app): Fixed bold tags on russian strings.xml and updated the AppListItem.kt behaviour

* fix(app): Fixed language

* fix(app): fixed log modal

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>
Co-authored-by: kilo3528 <71942463+kilo3528@users.noreply.github.com>

0.3.1

Toggle 0.3.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Dev (#57)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

* feat(app): add backup system, language selector, and UI refresh

- **Backup & Restore**: Implemented a complete system to export/import settings, blocklists, and priorities via `.hbr` JSON files.
- **Localization**: Added an in-app Language Selector and support for German (de) and Russian (ru).
- **UI Overhaul**: Updated the entire settings and onboarding experience to **Material 3 Expressive** design (Large Top Bars, increased roundness, surface colors).
- **Onboarding**: Added a Privacy Page explaining offline architecture and improved HyperOS 3.0 compatibility checks.
- **Fixes**: Resolved Navigation "Exit" button rendering as an icon instead of text, and fixed App Icon loading in the Settings screen.
- **Changelog**: Updated release notes for v0.3.1.

Closes #41

* Feature/ru de language (#52)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Added Russian and German to the language selector.

Fixed strings tags

* Feature/ru de language (#54)

* Dev (#47)

* Add Brazilian Portuguese translation (#14) (#16)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(nav): add layout customization and fix text alignment (#18)

- Added `NavCustomizationScreen` with live preview to configure Navigation Island layout.
- Implemented options to customize Left/Right content (Instruction, Distance, ETA) globally or per app.
- Fixed text misalignment bug caused by newline characters in notification extras.
- Updated `NavTranslator` to sanitize inputs and respect new layout configs.
- Added Spanish translations for new settings.

Closes #4

* Add Brazilian Portuguese translation (#14) (#22)

Primeiro commit para adicionar a tradução para português brasileiro

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>

* feat(a11y): improve TalkBack support and semantic navigation (#24)

- Implemented custom accessibility actions for the App Priority List (Move Up/Down) to allow reordering without drag gestures.
- Added dynamic content descriptions to App List switches and buttons (e.g., "Toggle [App Name]" instead of just "Switch").
- Marked settings group titles as Semantic Headings for faster screen reader navigation.
- Added state descriptions to the Navigation Layout Preview to describe the current configuration audibly.
- Improved labeling for expand/collapse actions in the Version History screen.
- Fixed missing content descriptions on navigation and edit icon buttons.

Closes #17

* fix(service): ignore notifications showing package name as content (#28)

- Implemented strict check in `isJunkNotification` to block notifications where Title or Text equals the Package Name.
- This prevents 'placeholder' notifications (e.g. 'com.whatsapp') from overwriting valid content on the Island.
- Logs ignored placeholders for debugging.

Closes #7

* fix(deps): downgrade DataStore to resolve boot persistence issues (#29)

- Downgraded `androidx.datastore:datastore-preferences` from 1.2.0 to 1.1.7.
- The 1.2.0 update introduced a regression on HyperOS/MIUI devices where preference files were not readable immediately after boot, causing the app to reset to the Onboarding screen and lose saved configurations.
- Reverting to the stable 1.1.x release restores reliable data persistence across reboots.

Closes #5

* Updating PTBR translation (#30)

Atualização da tradução com a versão mais recente da branch 'dev'

* Added Korean translation (#26)

* fix(service): ignore placeholder notifications containing package name (#31)

- Updated `isJunkNotification` logic in `NotificationReaderService`.
- Now filters out notifications where the Title or Text contains the package name (case-insensitive), rather than just exact matches.
- This prevents the Dynamic Island from displaying raw package strings (e.g., "com.whatsapp checking...") during background updates.

Closes #7

* feat(blocklist): add spoiler and privacy protection and redesign config sheet (#32)

- Implemented Blocked Terms logic: Users can now define words to block globally or per-app to prevent spoilers or unwanted notifications.
- Redesigned `AppConfigBottomSheet`: Replaced the tabbed layout with a vertical list using expandable cards. This fixes the "bouncy" animation issues when switching sections.
- Added `GlobalBlocklistScreen` as a central hub for managing filters.
- Added `BlocklistAppListScreen` to configure rules for specific apps, displaying active rule counts per app.
- Updated `NotificationReaderService` to filter notifications based on effective blocked terms (Global + App Specific).
- Standardized UI: App list items in the blocklist settings now use consistent Card styling.

Closes #6

* fix(ui): update library and clarify settings UX

- Updated `hyperisland-kit` to 0.3.3 to resolve Issue #9 (Shade visibility bug).
- Redesigned `IslandSettingsControl`:
  - Updated text descriptions to clearly explain 'Float' (Heads-up) vs 'Shade' (System Panel) behavior.
  - Improved Timeout Slider: Now displays seconds (0-10s) clearly in the header and uses full width for easier adjustment.
- Updated English and Spanish translations.

Closes #9

* feat(onboarding): enforce HyperOS 3 requirement and improve device info

- Updated `CompatibilityPage` to strictly block the "Next" button if the OS is older than HyperOS 3.0.
- Added logic to `DeviceUtils` to detect HyperOS 3.0 on Android 15 (API 35) to future-proof against base OS updates.
- Implemented `getDeviceMarketName` to display readable model names (e.g., "Xiaomi 14") instead of model codes.
- Added a specific UI warning for users on China ROMs regarding potential stability issues.
- Updated the Autostart permission description to clarify that the app cannot automatically verify if the permission is granted.

Closes #11

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Update PL translation for 0.3.0 (#34)

* Add Ukrainian translation (#37)

* Updating PTBR translation for v0.3.0 (#38)

Atualizando para a versão 0.3.0

* docs(release): update changelog resources for v0.3.0 "The Global Update"

- Added comprehensive release notes for version 0.3.0 in English and Spanish.
- Highlighted key features: "Hidden Notification" (Shade toggle), Navigation Customization, and Spoiler Protection.
- Added acknowledgments for community contributions regarding new language support (Portuguese, Polish, Korean).
- Updated version title to "The Global Update".

* Add missing 0.3.0 Ukrainian strings (#42)

(additionally mention Ukrainian translation in changelog)

* feat(data): migrate preference storage from DataStore to Room (#43)

- Replaced Jetpack DataStore with Room (SQLite) to resolve persistence instability and file locking issues observed on HyperOS devices during boot.
- Implemented `AppDatabase`, `SettingsDao`, and `AppSetting` entity to store key-value pairs reliably.
- Rewrote `AppPreferences` to interface with the database while maintaining the existing Flow API for the UI.
- Added a one-time migration mechanism in `AppPreferences` to automatically transfer existing settings from the legacy DataStore file to the new Room database, ensuring no data loss for current users.
- Updated build configuration to include KSP and Room dependencies, and resolved dependency conflicts.

Closes #40

* fix(service): enable blocked terms filtering logic

- Connected the Blocked Terms data layer to the `NotificationReaderService`.
- Previously, terms defined in the UI were saved but ignored by the service.
- Implemented Global Blocklist check in `isJunkNotification` (Synchronous) to drop spam immediately.
- Implemented App-Specific Blocklist check in `processAndPost` (Asynchronous) to handle per-app spoiler protection.

Closes #6, Closes #39

* Updated changelog to add support for Ukrainian

* Fixed text buttons and custom actions.

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* Update README with new features and localization info

Enhanced features section with new capabilities and improved language support.

* Add files

* Add Russian localization strings

Added Russian localization strings for the application.

* Update

* Update

* Update

* Update

* Update

* Update 2

* Update 2

* Update 2

* Update 2

* Add German localization to strings.xml

Added German localization strings for the app.

* Korean translation addition

* Update 2

* u

* Add German translations

* Delete app/src/main/res/values-deu directory

* Update 2

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

Removed Russian and German language options from the strings.

* Update strings.xml

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

Removed Russian and German language options from the list.

* Update strings.xml

* -</resources>

Updated privacy strings to clarify offline processing and security.

* Update Ukrainian

Added new strings for privacy settings, backup options, and language selection in the Ukrainian localization.

* Update Russian

* Update Português Brasileiro

Added new strings for privacy, backup, and language settings.

* Update polski

Added new strings for privacy, language options, backup, and UI updates.

* Fix polski

Corrected the capitalization of language names in Polish localization.

* Update Korean

Added Korean localization strings for backup, privacy, and optimization features.

* fix español

Updated privacy title and description strings in Spanish.

* Update Deutsch

* fix Polish

* de fix

* ru fix

* uk fix

---------

Co-authored-by: David Df <dominguezfondodavid@gmail.com>
Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>

* fix(app): Fixed bold tags on russian strings.xml and updated the AppListItem.kt behaviour

* fix(app): Fixed language

* fix(app): fixed log modal

---------

Co-authored-by: Daniel Ramos <69496904+NIICKTCHUNS@users.noreply.github.com>
Co-authored-by: AlexKoala <alexkoala@alexkoala.com>
Co-authored-by: Kacper Skrzypek <kacper@miuipolska.pl>
Co-authored-by: Denys <80550709+ItzDFPlayer@users.noreply.github.com>
Co-authored-by: kilo3528 <71942463+kilo3528@users.noreply.github.com>

0.3.1-rc4

Toggle 0.3.1-rc4's commit message
fix(app): fixed log modal