Tags: D4vidDf/HyperBridge
Tags
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…
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.
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.
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`.
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`.
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.
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>
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>
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>
PreviousNext