[{"content":"We welcome all contributions to Hyper Bridge!\nGetting Started # Clone the repo. Open in Android Studio (Ladybug or newer recommended). Sync Gradle and run on a device/emulator (API 26+). Code Style # We use Kotlin exclusively. UI must be written in Jetpack Compose (Material 3). Follow the existing package structure: ui/: Screens and Components. service/: Background logic and Translators. data/: Preferences and Models. Pull Requests # Do not push directly to main. Create a branch for your feature/fix. Provide a clear description of what you changed. If you are adding a UI feature, attach a screenshot to the PR. Reporting Bugs # Please use the Issues tab and provide:\nDevice Model \u0026amp; MIUI/HyperOS Version. Steps to reproduce. Crash logs (if applicable). ","externalUrl":null,"permalink":"/docs/contributing/contributing-guide/","section":"Documentation","summary":"We welcome all contributions to Hyper Bridge!\nGetting Started # Clone the repo. Open in Android Studio (Ladybug or newer recommended). Sync Gradle and run on a device/emulator (API 26+). Code Style # We use Kotlin exclusively. UI must be written in Jetpack Compose (Material 3). Follow the existing package structure: ui/: Screens and Components. service/: Background logic and Translators. data/: Preferences and Models. Pull Requests # Do not push directly to main. Create a branch for your feature/fix. Provide a clear description of what you changed. If you are adding a UI feature, attach a screenshot to the PR. Reporting Bugs # Please use the Issues tab and provide:\n","title":"Contributing Guide","type":"docs"},{"content":"The Design Hub (DesignScreen) in Hyper Bridge 0.6.0 is your creative control center. Located in the bottom navigation bar alongside Active Apps and Library, the Design screen brings together all personalization aspects of your Xiaomi HyperOS HyperIsland experience in a unified Material 3 Expressive interface.\nflowchart TD Hub[\"Design Hub (Design Screen)\"] --\u003e Hero[\"Hero Showcase \u0026 Quick Docs\"] Hub --\u003e Bento[\"Design Variant Bento Grid\"] Bento --\u003e ThemesCard[\"🎨 Themes \u0026 Styles\\nActive theme, custom colors, masks\"] Bento --\u003e WidgetsCard[\"🧩 System Widgets\\nAppWidget host, size, timeouts\"] Bento --\u003e DesignsCard[\"📐 Custom Designs\\n10 Official Xiaomi Island Templates\"] Bento --\u003e TranslatorsCard[\"⚡ Smart Translators\\nRule engine, regex, actions\"] Hub --\u003e FAB[\"➕ Expressive Action Sheet (FAB)\"] FAB --\u003e OptDesign[\"Add Custom Design\"] FAB --\u003e OptWidget[\"Add System Widget\"] FAB --\u003e OptTheme[\"Create Theme\"] FAB --\u003e OptTranslator[\"Create Smart Translator\"] 1. Navigating the Design Hub # When you switch to the Design tab, the screen is organized into clear visual zones:\nTop App Bar \u0026amp; Quick Settings # App Title: Displays the current workspace status. Settings Shortcut: A top-right quick-action button provides instant access to Global Settings, island timeouts, diagnostics, and system setup guides. Figure 1: Design Hub overview with Hero Showcase, Bento Grid (Themes, Widgets, Designs, Translators), and active tabs. Hero Showcase Carousel # At the very top, a responsive hero carousel highlights key personalization features with interactive links:\nCustomization Guide: Quick access to official styling documentation. Theme Creator Pro: Direct walkthrough for building and distributing .hbr and .htheme packages. Community Discussions: Connect directly with fellow creators on GitHub Discussions to share ideas, templates, and icons. 2. The Bento Grid: What Each Section Does # Directly below the hero carousel sits the Design Variant Bento Grid — four distinct modular cards that display real-time status and provide one-tap access to your customization libraries.\nBento Card Active Status Displayed Card Tap Action Action Button Tap 🎨 Themes \u0026amp; Styles Displays active theme name (or \u0026ldquo;Default\u0026rdquo;) Opens Theme Manager Launches In-App Theme Creator (+) 🧩 System Widgets Displays number of saved widgets Opens Saved App Widgets list Opens Widget Picker Sheet (+) 📐 Custom Designs Shows active template design count Opens Design Manager gallery Opens Add Design Flow modal ⚡ Translators Shows active custom translator count Opens Translator Manager Launches Translator Visual Editor 3. The Central FAB (+ Add Action Sheet) # Tapping the prominent Floating Action Button (+) in the bottom-right corner reveals an expressive Material 3 modal sheet with four core creation pathways:\nFigure 2: The Add to Island sheet providing one-tap access to create custom designs, widgets, themes, and translators. Custom Design: Build spatial micro-widgets from scratch element by element using the Micro-Widgets Studio, or choose from 10 official Xiaomi HyperIsland layout presets (delivery waypoints, payment cards, timers, boarding passes). System Widget: Browse all Android widgets installed on your device (Spotify, weather, calendar, clock) and mount them directly inside your HyperOS HyperIsland. Theme \u0026amp; Styles: Create a new visual style, adjusting primary accents, call button designs, icon padding, and geometric shapes. Smart Translator: Launch the comprehensive declarative rule builder to intercept, reformat, and enhance notifications with regex, custom actions, and smart buttons. 4. Featured \u0026amp; Community Section # Below the Bento Grid, the Design Hub showcases:\nActive Designs Carousel: Scroll through your enabled template cards and preview how they appear in expanded and compact status bar states. Installed Themes: Quickly switch between installed .htheme / .hbr theme packs with a single tap. Guides \u0026amp; Video Tutorials: In-app links to help documentation, permission guides, and the troubleshooting diagnostics console. Next Steps # Learn how to use the built-in In-App Theme Creator. Explore Island Templates \u0026amp; Designs to see all 10 official Xiaomi presets. Add your favorite Android home-screen widgets to the island with the System Widgets Guide. Build advanced regex rules and action slots with the Custom Translators Guide. ","externalUrl":null,"permalink":"/docs/customization/design-hub/","section":"Documentation","summary":"The Design Hub (DesignScreen) in Hyper Bridge 0.6.0 is your creative control center. Located in the bottom navigation bar alongside Active Apps and Library, the Design screen brings together all personalization aspects of your Xiaomi HyperOS HyperIsland experience in a unified Material 3 Expressive interface.\n","title":"Design Studio \u0026 Hub","type":"docs"},{"content":"The core engine maps notifications into 6 main categories:\nMedia Playback: Track title, artist, live audio waveforms, and playback buttons. Active Calls: Call duration, contact avatar, mute and hangup buttons. Downloads \u0026amp; Progress: Dynamic progress bars with percentage tracking. Navigation: Turn-by-turn directions and distance metrics. Timers: Live countdown indicators. Standard Notifications: Instant island preview with smart dismissal. ","externalUrl":null,"permalink":"/docs/features/dynamic-islands/","section":"Documentation","summary":"The core engine maps notifications into 6 main categories:\nMedia Playback: Track title, artist, live audio waveforms, and playback buttons. Active Calls: Call duration, contact avatar, mute and hangup buttons. Downloads \u0026 Progress: Dynamic progress bars with percentage tracking. Navigation: Turn-by-turn directions and distance metrics. Timers: Live countdown indicators. Standard Notifications: Instant island preview with smart dismissal. ","title":"Dynamic Island Engine","type":"docs"},{"content":"Find answers to common questions about how Hyper Bridge works, its architecture, compatibility, and privacy guarantees.\nWhat does Hyper Bridge do? # Hyper Bridge is an application that acts as a bridge, reading standard Android notifications and translating them into native, featured notifications for Xiaomi HyperOS to display seamlessly on the HyperIsland (HyperIsland / Dynamic Island).\nWhat does Hyper Bridge use under the hood? # Hyper Bridge uses the Hyper Island ToolKit (ToolKit documentation) to generate native notifications following the official Xiaomi HyperOS HyperIsland specifications.\nHyper Island ToolKit was created and is actively maintained by D4vidDf (the developer of Hyper Bridge). It was originally built via reverse engineering before official documentation was made public by Xiaomi, and now adheres strictly to official HyperOS guidelines and best practices to ensure optimal performance and stability.\nWhy does the island still show when I uninstall Hyper Bridge? # Xiaomi introduced Hyper Island natively starting in HyperOS 3, allowing system applications and approved third-party apps to display status cards directly in the island area.\nBecause Hyper Bridge only functions as a translation layer, native OS features—such as multimedia playback, the built-in Clock and timer apps, or charging status animations—will continue to appear on the island even when Hyper Bridge is uninstalled, as they are part of the core operating system.\nWhy can\u0026rsquo;t Hyper Bridge work on other OEMs or non-Xiaomi devices? # Hyper Bridge operates purely as a translation layer specifically tailored to Xiaomi\u0026rsquo;s native Hyper Island specification. It does not draw a custom overlay or inject a simulated UI layer on your screen. Because other manufacturers (such as Samsung, Google, or OnePlus) do not have the native Xiaomi HyperIsland framework, Hyper Bridge cannot render islands on non-Xiaomi devices.\nWhy can\u0026rsquo;t I have an island on the lock screen? # Xiaomi restricts the display of Hyper Island strictly to when the device is unlocked; the island is deliberately hidden on the lock screen by the operating system. Because Hyper Bridge relies 100% on the native OS framework rather than drawing custom overlays over your lock screen, it cannot display notifications on the lock screen.\nDoes Hyper Bridge collect my personal data? # No, absolutely not. Hyper Bridge operates entirely on-device and does not collect, log, or share any personal data with the developers or third parties.\nFurthermore, the Hyper Bridge application does not request or contain network permissions (android.permission.INTERNET), making external communication technically impossible.\nDoes Hyper Bridge drain battery? # No. Hyper Bridge is designed to be lightweight and event-driven. It only processes notifications at the moment they are posted or updated by Android. When no notification is actively updating or displayed, background CPU usage is 0%.\nIf you ever experience abnormal or heavy battery drain, please report the issue on GitHub Issues or contact us directly via email at d4viddf@d4viddf.com so we can investigate and address it promptly.\nIs Hyper Bridge free and open source? # Yes! Hyper Bridge is 100% free and open-source under the Apache 2.0 license. You can inspect the source code, contribute, or track releases on our official GitHub repository.\n","externalUrl":null,"permalink":"/docs/troubleshooting/faq/","section":"Documentation","summary":"Find answers to common questions about how Hyper Bridge works, its architecture, compatibility, and privacy guarantees.\nWhat does Hyper Bridge do? # Hyper Bridge is an application that acts as a bridge, reading standard Android notifications and translating them into native, featured notifications for Xiaomi HyperOS to display seamlessly on the HyperIsland (HyperIsland / Dynamic Island).\n","title":"Frequently Asked Questions (FAQ)","type":"docs"},{"content":"Learn about system requirements and how to install Hyper Bridge on your device.\nSystem Requirements # Operating System: Xiaomi HyperOS 3.0 or Xiaomi HyperOS 4.0 (Android 15 / Android 16 / Android 17). Supported ROMs: Global, EEA, India, Taiwan, and CN (China) ROMs (CN ROMs require Shizuku or Sui for the Xiaomi bypass). Root: Not required! Hyper Bridge operates without root access. Download \u0026amp; Installation # You can install Hyper Bridge from the Google Play Store or download the APK directly from GitHub Releases.\nOption 1: Google Play Store (Recommended) # Get Hyper Bridge directly from the Google Play Store for verified downloads and automatic background updates:\nDownload on Google Play: Hyper Bridge on Google Play Store Option 2: GitHub Releases (Direct APK) # Visit the official GitHub Releases page. Download the latest HyperBridge-vX.X.X.apk. Open the downloaded file on your Xiaomi device and grant installation permission to your package installer. Important: Only download Hyper Bridge from official sources (the Google Play Store or our verified GitHub repository) to ensure APK integrity. ","externalUrl":null,"permalink":"/docs/getting-started/installation/","section":"Documentation","summary":"Learn about system requirements and how to install Hyper Bridge on your device.\nSystem Requirements # Operating System: Xiaomi HyperOS 3.0 or Xiaomi HyperOS 4.0 (Android 15 / Android 16 / Android 17). Supported ROMs: Global, EEA, India, Taiwan, and CN (China) ROMs (CN ROMs require Shizuku or Sui for the Xiaomi bypass). Root: Not required! Hyper Bridge operates without root access. Download \u0026 Installation # You can install Hyper Bridge from the Google Play Store or download the APK directly from GitHub Releases.\n","title":"Installation \u0026 Requirements","type":"docs"},{"content":" Note: This page is currently Work in Progress. HyperBridge needs access to system notifications to detect active music, downloads, timers, and messages.\nPrivacy \u0026amp; Security # HyperBridge processes notification data 100% locally in ephemeral memory. No notification contents are ever logged, sent to servers, or shared with third parties.\nHow to Enable # ","externalUrl":null,"permalink":"/docs/permissions/notification-listener/","section":"Documentation","summary":" Note: This page is currently Work in Progress. HyperBridge needs access to system notifications to detect active music, downloads, timers, and messages.\n","title":"Notification Listener Access","type":"docs"},{"content":"Setting up Shizuku is completely rootless and takes less than two minutes using Android\u0026rsquo;s built-in Wireless Debugging.\nPrerequisites # Connect your Xiaomi device to a Wi-Fi network. Enable Developer options (tap OS Version 7 times in About phone). Setup Steps # 1. Install Shizuku # Install Shizuku from Google Play or GitHub.\n2. Enable Wireless Debugging # Go to Developer options \u0026gt; Enable USB debugging (Security settings) and Wireless debugging.\n3. Pair Shizuku # In Shizuku, tap Pairing, then enter the 6-digit Wi-Fi pairing code displayed in the developer options notification.\n4. Start Shizuku # Return to the Shizuku app and tap Start. Once running, grant HyperBridge access under Authorized applications.\n","externalUrl":null,"permalink":"/docs/shizuku/shizuku-setup/","section":"Documentation","summary":"Setting up Shizuku is completely rootless and takes less than two minutes using Android’s built-in Wireless Debugging.\nPrerequisites # Connect your Xiaomi device to a Wi-Fi network. Enable Developer options (tap OS Version 7 times in About phone). Setup Steps # 1. Install Shizuku # Install Shizuku from Google Play or GitHub.\n","title":"Shizuku Setup Guide","type":"docs"},{"content":"Xiaomi HyperOS is known for its strict background memory management and multi-tiered permission system. To ensure that Hyper Bridge can reliably intercept incoming notifications, render islands seamlessly, and stay alive in the background, the app includes a central System Health Dashboard (SetupHealthScreen) and a dedicated Floating Notification Setup manager.\nThis guide walks you through every step required to achieve a 100% Healthy setup.\n1. The System Health Dashboard # In Hyper Bridge, open Settings → System Health (or tap the Health card in Diagnostics):\nflowchart TD H[\"System Health Dashboard\"] --\u003e P1[\"1. Notification Listener Access\"] H --\u003e P2[\"2. Android 13+ Restricted Settings\"] H --\u003e P3[\"3. HyperOS Focus Notifications\"] H --\u003e P4[\"4. Battery Saver: No Restrictions\"] H --\u003e P5[\"5. Autostart Whitelist\"] H --\u003e P6[\"6. Floating Notification Setup\"] At the top of the screen, an expressive Hero Banner tracks your setup progress:\nGreen (\u0026ldquo;System Health: Good\u0026rdquo;): All essential permissions are granted and the listener watchdog is active. Amber / Orange (\u0026ldquo;Needs Attention\u0026rdquo;): One or more required permissions are missing or restricted, preventing islands from displaying properly. Figure 1: Core system permissions checklist on the System Health screen. 2. Essential Permissions Checklist # Each card on the System Health screen provides a 1-tap shortcut directly to the corresponding Xiaomi system settings page:\nFigure 2: Battery Saver (\u0026lsquo;No restrictions\u0026rsquo;) and Autostart configuration cards. Step 1: Notification Listener Access # Why it is required: Android prohibits regular apps from reading alerts from other apps. Notification Listener access allows Hyper Bridge to observe incoming notifications and forward them to the island engine. How to grant: Tap Grant Permission → Locate Hyper Bridge in the device list → Toggle the switch ON → Accept Xiaomi\u0026rsquo;s standard 10-second security confirmation. Detailed guide: Notification Listener Access Guide. Step 2: Android 13+ Restricted Settings # The Issue: On Android 13, 14, and 15, Google introduced a security measure that automatically greys out Notification Listener and Accessibility permissions for apps installed from outside the Google Play Store (e.g., APK downloads from GitHub). How to resolve: Open your phone\u0026rsquo;s Settings → Apps → Manage apps. Search for and select Hyper Bridge. Tap the three dots (⋮) in the top-right corner of the App Info screen. Tap Allow restricted settings. Verify your device PIN or fingerprint when prompted. Return to Hyper Bridge; the Notification Listener toggle will now be interactive. Step 3: HyperOS Focus Notifications # Why it is required: Xiaomi HyperOS manages dynamic island elements through the native Focus Notifications channel. Without this permission, Hyper Bridge cannot render floating cards over other applications. How to grant: Tap Configure Focus Notifications on the health card → Ensure that Allow floating notifications and Focus notifications are enabled for Hyper Bridge. Detailed guide: HyperOS Focus Notifications Guide. Step 4: Battery Saver: \u0026ldquo;No Restrictions\u0026rdquo; # The Issue: Xiaomi\u0026rsquo;s MIUI/HyperOS power manager automatically kills background services after 10–15 minutes of screen-off time if left on the default \u0026ldquo;Smart\u0026rdquo; battery profile. How to configure: Tap Configure Battery Saver on the health card. Select No restrictions. Hyper Bridge can now maintain its event-driven listener indefinitely without being terminated. Detailed guide: Battery Saver \u0026amp; Autostart Guide. Step 5: Autostart Whitelist # Why it is required: Allows the Hyper Bridge background service to automatically initialize whenever you reboot your phone. How to grant: Tap Enable Autostart → Toggle the switch next to Hyper Bridge to ON. 3. Floating Notification Setup (Optional: Avoid Duplicate Popups) # This step is completely optional: It does not affect Hyper Bridge\u0026rsquo;s ability to bridge notifications. Its sole purpose is to help you hide duplicate native pop-up animations if you prefer seeing only the HyperIsland. Why Does This Exist? # When an app (such as WhatsApp, Telegram, or Spotify) posts a notification while your screen is on, Android / HyperOS normally drops down a native system floating pop-up banner at the top of your screen.\nAt the exact same time, Hyper Bridge renders the HyperIsland card. This can result in two overlapping popups appearing simultaneously:\nThe native Xiaomi floating notification banner. The custom Hyper Bridge HyperIsland card. flowchart TD A[\"Incoming App Notification\"] --\u003e B{\"Both Popups Active?\"} B -- Default Behavior --\u003e C[\"Native HyperOS Floating Banner ⚠️\"] B -- Default Behavior --\u003e D[\"Hyper Bridge Island Card 🏝️\"] C -. \"Causes duplicate visual clutter\" .-\u003e D B -- \"After Disabling Native Floating\" --\u003e E[\"Native Floating Banner Hidden 🚫\"] B -- \"After Disabling Native Floating\" --\u003e F[\"Clean HyperIsland Only ✅\"] How to Prevent Duplicate Popups # You have two easy choices:\nChoice A: Keep Only the Island (Recommended) # Navigate to Settings → Floating Notification Setup in Hyper Bridge. Tap any app card to jump directly to that app\u0026rsquo;s system notification settings. Turn OFF the system switch for \u0026ldquo;Floating notifications\u0026rdquo; (keep standard notifications and badges enabled). Return to Hyper Bridge and tap the checkmark to mark it as confirmed. Incoming messages will now display only on the HyperIsland, without the intrusive native system banner. Choice B: Prefer Native Floating Banners # If you prefer Xiaomi\u0026rsquo;s native floating heads-up popups over the island\u0026rsquo;s floating banner:\nLeave native floating notifications enabled on your apps. Go to Hyper Bridge Settings → Global Configuration and turn off Heads-up Popup (Notificación Emergente). Hyper Bridge will still bridge your notifications into the compact status bar pill and notification shade without drawing a floating island card. Using the Floating Setup Screen # Navigate to Settings → Floating Notification Setup (or tap the checklist card in System Health):\nFigure 3: Floating Notification Setup manager with review filters and confirmation toggles. Status Filter Chips: All: Displays all applications enabled in your Hyper Bridge library. Needs Review: Highlights apps where native floating banners have not yet been reviewed. Confirmed: Shows apps you have already reviewed and confirmed. Instant Search: Quickly search for any app by name or package identifier. 1-Tap App Settings Shortcut: Tap any app in the list to open its native Xiaomi notification channel page. Batch \u0026ldquo;Mark All as Confirmed\u0026rdquo;: If you are satisfied with your current notifications or prefer not to customize apps individually, toggle Mark all as confirmed in the top bar to dismiss all review badges at once. Next Steps # Want to verify your service connection in real time? Open the Diagnostics \u0026amp; System Health Monitor. Running into persistent background drops? Read Known Issues \u0026amp; HyperOS Quirks. Explore advanced capabilities like Shizuku automation in the Shizuku Setup Guide. ","externalUrl":null,"permalink":"/docs/permissions/system-setup/","section":"Documentation","summary":"Xiaomi HyperOS is known for its strict background memory management and multi-tiered permission system. To ensure that Hyper Bridge can reliably intercept incoming notifications, render islands seamlessly, and stay alive in the background, the app includes a central System Health Dashboard (SetupHealthScreen) and a dedicated Floating Notification Setup manager.\n","title":"System Health \u0026 Setup Guide","type":"docs"},{"content":"This guide covers how to customize and create themes using the In-App Theme Creator in Hyper Bridge:\nBuild, preview, and customize colors, geometric masks, call styles, and engine behaviors directly on your device. Export your creations or import themes shared by the community. Looking for the developer package specification or Android Intent API?\nSee the Theme Packaging Specification (.hbr) in the Advanced \u0026amp; Developer documentation. Visual Theme Creator (In-App) # Hyper Bridge 0.6.0 includes a full-featured Visual Theme Creator (ThemeCreatorScreen). You can build, preview, edit, and apply beautiful custom island themes directly on your phone without touching JSON or ZIP files.\nflowchart TD Hub[\"Design Hub\"] --\u003e Create[\"Create Theme / Edit Theme\"] Create --\u003e LivePrev[\"Interactive Island Preview\\n(Accept/Decline, App Colors, Masks)\"] Create --\u003e Sections[\"Theme Creator Sub-Menus\"] Sections --\u003e SecColors[\"🎨 Colors \u0026 Color Mode\\nHex picker, App Icon color sampling\"] Sections --\u003e SecIcons[\"📐 Icons \u0026 Shapes\\nCircle, Squircle, Cookie, Clover, Padding\"] Sections --\u003e SecCalls[\"📞 Call Controls\\nAnswer \u0026 Decline colors, shapes, custom icons\"] Sections --\u003e SecBeh[\"⚡ Engine \u0026 Behavior\\nFloat duration, timeout, Live Update engine\"] Sections --\u003e SecNav[\"🧭 Navigation \u0026 Reply\\nTurn-by-turn colors, inline reply appearance\"] Sections --\u003e SecActions[\"🔘 Default Actions\\nReply, Archive button styles \u0026 icons\"] Sections --\u003e SecApps[\"📱 App-Specific Overrides\\nPer-app highlight \u0026 button customizations\"] 1. Accessing Theme Management # Open Design Hub → tap the Themes \u0026amp; Styles Bento card:\nFigure 1: The Theme Manager library showing installed themes, active selection checkmark, and edit/export actions. From here you can:\nSwitch Active Theme: Tap any theme card to activate it immediately. Manage Custom Themes: Tap the Edit (Pencil) icon to modify an existing theme, Share to export as an .hbr bundle, or Trash to delete it. Add New Theme: Tap the + (Floating Action Button) in the bottom right corner: Figure 2: Add New Theme sheet with options to Create New Theme, Search online catalog, or Import from file. Choose Create New Theme to launch the visual studio, Import to load a local .hbr/.htheme archive, or Search to browse community creations.\n2. The Theme Creator Studio Overview # When you create or edit a theme, the Theme Creator Studio (ThemeCreatorScreen) opens with an interactive live canvas at the top:\nFigure 3: Theme Creator main studio featuring the live island simulator, Theme Info button, and module navigation. Theme Info \u0026amp; Metadata # Tap Edit Theme Info to brand your creation:\nFigure 4: Setting the theme icon, name, author credits, and description. Select Icon: Pick an emblem or custom artwork for your theme card. Theme Name \u0026amp; Author Name: Give your theme a distinctive identity. Description: Add release notes or styling tips. 3. Step-by-Step Theme Modules # The creator organizes theme properties into modular, focused subscreens:\n⚡ Behavior \u0026amp; Triggers (CreatorRoute.BEHAVIOR_MENU) # Configure how the notification engine treats this theme:\nFigure 5: Engine mode selection, island behavior timeouts, and triggered notification event types. Engine: Switch between Live Updates (Custom Island Engine) and Native Xiaomi Live Updates. Island Behavior: Fine-tune auto-dismiss durations, duplicate handling, and lock screen visibility. Notification Types: Choose which event categories trigger islands for this theme. 🎨 Colors \u0026amp; Color Mode (CreatorRoute.COLORS) # Define the visual color palette across your island:\nFigure 6: Preset color chips, dynamic app color extraction, and Material You system wallpaper matching. Preset Colors: Tap quick accent swatches (Green, Red, Blue, Orange, Purple). Dynamic Colors: Use App Colors: Automatically extracts and applies the dominant color from each notification app\u0026rsquo;s icon for a customized look. Material You (System): Extracts tonal palettes directly from your Android wallpaper. Custom Color Picker: Tap the Custom tab to choose any precise hex code: Figure 7: Custom hex color selection. 📐 Icons \u0026amp; Shapes (CreatorRoute.ICONS) # Style the geometric framing and proportions of notification avatars and status indicators:\nFigure 8: Icon Size slider adjusting proportions between Full and Minimal. Icon Size Slider: Scale notification icons between full-bleed and compact minimalism. Live State Previews: Swipe horizontally on the preview card at the top to see your changes across notifications, calls, and media: Figure 9: Real-time simulator rendering call buttons and status icons with active theme settings. Navigation \u0026amp; Progress Icons: Choose custom vector glyphs for turn-by-turn guidance and completion badges: Figure 10: Customizable navigation waypoints and progress success icons. Geometric Mask Picker: Apply custom corner masks to all icons: Figure 11: Geometric shape masks: Circle, Rounded Squircle, Cookie, Arch, and Clover. 📞 Call Controls Style (CreatorRoute.CALLS) # Customize incoming and ongoing phone call cards:\nFigure 12: Customizing Answer button color (#34C759) and geometric shape mask. Answer Button: Configure custom hex colors (default #34C759) and geometric masks. Decline Button: Configure end-call accents (default #FF3B30) and button shapes: Figure 13: Customizing Decline button color (#FF3B30) and geometric shape mask. 🧭 Navigation Layout (CreatorRoute.NAVIGATION) # Fine-tune turn-by-turn GPS heads-up islands:\nFigure 14: Navigation layout configuration for distance, time, and maneuver instructions. Left Side: Distance \u0026amp; Remaining Time. Right Side: Maneuver instruction (e.g., Turn Right). Note: In the Native Live Update engine, right-side content is prioritized to maintain status bar alignment. 🔘 Global Actions \u0026amp; Quick Buttons (CreatorRoute.ACTIONS) # Configure smart action buttons attached to notifications (such as Reply, Archive, Like, Mark as Read):\nFigure 15: Global Actions manager for styling action buttons based on label keywords. Tap the + (Add Action) button to create keyword matching rules:\nFigure 16: Action styling rule: keyword trigger, display mode (Icon Only, Text, Both), background color, and text color. Keyword Matching: Enter keywords (e.g. 'Reply', 'Archive', 'Skip'). Display Mode: Choose between Icon Only, Text, or Both. Colors: Set custom button background and text/icon contrast colors. 📱 Per-App Custom Overrides (CreatorRoute.APPS) # Override theme rules for specific individual applications:\nFigure 17: App-specific styling override manager. Tap + to select an app from your device:\nFigure 18: Selecting an installed application to apply custom per-app styling. You can assign unique highlight colors, distinct geometric shapes, or special button layouts for specific apps (e.g., WhatsApp in emerald green, Spotify in neon green, YouTube Music in crimson).\n4. Saving \u0026amp; Applying Your Theme # Tap the Save button in the top-right corner of the studio. In the dialog: Save \u0026amp; Apply: Immediately activates your new theme as the default system style. Save Only: Saves the theme to your library without applying it. Your theme is saved locally and can be exported as an .hbr package at any time! Exporting, Importing \u0026amp; Sharing Themes # Hyper Bridge makes it easy to back up, share, and import themes without touching code:\nExporting an In-App Theme # Navigate to Design Hub → Themes \u0026amp; Styles. Tap the menu (⋮) or the Export icon on any custom theme card. Choose a destination folder using Android\u0026rsquo;s file picker. Hyper Bridge generates an .hbr theme package containing all your colors, button rules, and bundled translators. Importing a Community Theme # Download any .hbr or .htheme file from the community, Discord, Telegram, or GitHub. In Hyper Bridge, go to Design Hub → Themes \u0026amp; Styles and tap Import Theme in the top bar. Select your .hbr file. Hyper Bridge will preview the theme palette and install it into your library with one tap. Packaging Themes for Distribution (Developers) # If you are an icon pack developer, designer, or Android modder interested in:\nManually creating .hbr / .htheme ZIP packages with custom icons, Bundling custom .htrans translators inside your theme, Triggering 1-tap theme installation from your companion Android app via com.d4viddf.hyperbridge.APPLY_THEME intents, Please refer to the dedicated Theme Packaging Specification (.hbr) in the Advanced \u0026amp; Developer documentation.\nNext Steps # Browse the official 10 Xiaomi Island Templates to see how themes render across delivery, music, and boarding pass cards. Add live home-screen widgets into your islands with the System Widgets Guide. Create custom notification rules with the Custom Translators Guide. ","externalUrl":null,"permalink":"/docs/customization/theme-creator/","section":"Documentation","summary":"This guide covers how to customize and create themes using the In-App Theme Creator in Hyper Bridge:\nBuild, preview, and customize colors, geometric masks, call styles, and engine behaviors directly on your device. Export your creations or import themes shared by the community. Looking for the developer package specification or Android Intent API?\nSee the Theme Packaging Specification (.hbr) in the Advanced \u0026 Developer documentation. Visual Theme Creator (In-App) # Hyper Bridge 0.6.0 includes a full-featured Visual Theme Creator (ThemeCreatorScreen). You can build, preview, edit, and apply beautiful custom island themes directly on your phone without touching JSON or ZIP files.\n","title":"Theme Creator Guide","type":"docs"},{"content":"This document provides the authoritative technical reference for the Custom Translators Framework (.htrans) in Hyper Bridge 0.6.0. It is designed for developers, theme authors, and power users building custom notification pipelines, automation tools, or community packages.\nArchitectural Overview # Hyper Bridge operates as an event-driven translation engine that intercepts incoming StatusBarNotification events from the Android Notification Listener Service and transforms them into native Xiaomi HyperOS HyperIsland specifications.\nflowchart TD A[\"Incoming Android Notification (StatusBarNotification)\"] --\u003e B[\"NotificationReaderService\"] B --\u003e C[\"TranslatorRegistry Query\"] C --\u003e D{\"Active Match Found?\"} D -- Yes --\u003e E[\"DynamicTranslator Engine\"] D -- No --\u003e F[\"Built-in Fallback Translators (Media, Call, Standard)\"] E --\u003e G[\"Extract Type-Specific Data (Messaging, Media, Calls, Progress)\"] G --\u003e H[\"Resolve Variable Templating ({notif.title}, {notif.sender}, etc.)\"] H --\u003e I[\"Resolve Action Slots \u0026 Smart Actions (OTP, Map, Reply)\"] I --\u003e J[\"Resolve Theme Binding \u0026 Highlight Accents\"] J --\u003e K{\"Engine Mode\"} K -- \"CUSTOM_ISLAND (Default)\" --\u003e L[\"HyperIslandNotification.Builder\"] K -- \"NATIVE_LIVE_UPDATE\" --\u003e M[\"LiveUpdateTranslator (Xiaomi Live Channel)\"] L --\u003e N[\"Xiaomi HyperIsland Framework (HyperIsland)\"] M --\u003e N F --\u003e N Interception Pipeline Rules # Allowlist Bypass: If a Custom Translator explicitly targets a specific package (via SPECIFIC_APPS or SYSTEM_APPS), the application bypasses the global app allowlist. It is processed even if the user has not enabled the app in the global library list. Evaluation Precedence: The in-memory TranslatorRegistry indexes all active rules into prioritized buckets: $$\\text{SPECIFIC_APPS} \\succ \\text{SYSTEM_APPS} \\succ \\text{NOTIFICATION_TYPE} \\succ \\text{GLOBAL}$$ Within each scope tier, translators are evaluated in descending order of their priority integer (e.g. 200 executes before 100). Short-Circuit Evaluation: The first translator whose TranslatorConditions and TypeSpecificConditions evaluate to true claims the notification. The .htrans Package Anatomy # A Custom Translator can be packaged as a single .htrans archive or distributed as a raw .json file.\nmy_translator.htrans (ZIP Archive) ├── translator.json (Required: Schema definition) └── icons/ (Optional: Custom graphics) ├── ic_custom_action.png └── ic_badge.webp Packaging \u0026amp; Security Specifications # ZIP Container: Standard Deflate-compressed ZIP container renamed to .htrans. Zip-Slip Protection: When extracting, the TranslatorRepository validates every canonical entry path against the target directory to prevent directory traversal attacks. Internal Storage Location: Extracted icon assets are stored locally under: context.filesDir/translators/{translator_id}/icons/ Theme Bundling: Themes (.htheme / .hbr) can bundle translators in a root translators/ directory: neon_theme.htheme (ZIP Archive) ├── theme.json └── translators/ ├── spotify_enhanced.htrans └── delivery_tracker.json Complete JSON Schema Reference # 1. Root: CustomTranslator # Field Type Default Description id String (Required) Unique identifier (e.g. com.example.whatsapp.vip). meta TranslatorMetadata (Required) Human-readable metadata and author information. target_scope TargetScope SPECIFIC_APPS Scope tier for evaluation order (GLOBAL, SPECIFIC_APPS, SYSTEM_APPS, NOTIFICATION_TYPE). target_packages List\u0026lt;String\u0026gt; [] Android package names when scope is SPECIFIC_APPS or SYSTEM_APPS. target_notification_types List\u0026lt;String\u0026gt; [] Notification category strings when scope is NOTIFICATION_TYPE (e.g. MESSAGING, MEDIA). priority Int 100 Evaluation priority (higher numbers execute first). is_enabled Boolean true Master active toggle for the translator. conditions TranslatorConditions {} Pattern-matching rules and criteria. theme_binding ThemeBinding {} Accent color, icon mask, and theme linkages. engine_mode EngineMode INHERIT Island rendering engine (INHERIT, CUSTOM_ISLAND, NATIVE_LIVE_UPDATE). behavior_override BehaviorOverride {} Timeout, floating banner, and dismissibility overrides. data_extraction DataExtractionConfig {} Regex rules for parsing progress percentages. custom_variables List\u0026lt;CustomVariableDefinition\u0026gt; [] Dynamic variable extraction pipeline (regex capture, icons, step progress). custom_actions List\u0026lt;CustomActionDefinition\u0026gt; [] Dynamic action binding pipeline (index, regex, smart actions, inline reply). presentation PresentationConfig {} Visual layout, text templates, action slots, compact pill, or raw_param_v2 JSON. 2. TranslatorMetadata # Field Type Default Description name String (Required) Display title of the translator. author String \u0026quot;Community\u0026quot; Author name or handle. version Int 1 Schema revision integer. description String \u0026quot;\u0026quot; Brief description of what the translator does. icon_name String \u0026quot;AutoAwesome\u0026quot; Name of the Material icon displayed in the manager list. share_link String? null Optional URL to community repo or documentation. 3. TargetScope Enum # Value Evaluation Order Description SPECIFIC_APPS 1st (Highest) Evaluates exclusively against notifications from packages in target_packages. SYSTEM_APPS 2nd Evaluates explicitly targeted system packages (bypasses default system filter). NOTIFICATION_TYPE 3rd Evaluates against specific categories (MESSAGING, MEDIA, CALLS, PROGRESS). GLOBAL 4th (Lowest) Evaluates across all notifications on the device matching regex conditions. 4. TranslatorConditions # Field Type Default Description title_regex String? null Regular expression matched against Notification.EXTRA_TITLE. text_regex String? null Regular expression matched against Notification.EXTRA_TEXT. subtext_regex String? null Regular expression matched against Notification.EXTRA_SUB_TEXT. category String? null Android notification category string (e.g. CATEGORY_MESSAGE, CATEGORY_CALL). channel_id String? null Exact NotificationChannel ID. has_extras List\u0026lt;String\u0026gt; [] Required bundle keys that must be present in notification.extras. has_actions Boolean? null If true, notification must contain at least one Notification.Action. has_progress Boolean? null If true, notification must define EXTRA_PROGRESS or match progress regex. type_specific_conditions TypeSpecificConditions? null Domain-specific extractors for Messaging, Media, Calls, and Navigation. 5. TypeSpecificConditions # A. Messaging (messaging) # Field Type Default Description sender_name_regex String? null Regex matched against extracted contact name (Person.getName() or EXTRA_MESSAGING_PERSON). conversation_title_regex String? null Regex matched against group chat conversation title (EXTRA_CONVERSATION_TITLE). is_group_conversation Boolean? null Filter based on whether the message is from a group chat. B. Media (media) # Field Type Default Description artist_regex String? null Regex matched against artist in MediaMetadataCompat. album_regex String? null Regex matched against album name. is_playing Boolean? null Matches playback state (PlaybackStateCompat.STATE_PLAYING). C. Calls (call) # Field Type Default Description caller_name_regex String? null Regex matched against caller identification. call_type CallTypeCondition? null Call state enum: INCOMING, ONGOING, or MISSED. D. Navigation (navigation) # Field Type Default Description instruction_regex String? null Regex matched against turn-by-turn guidance strings. distance_regex String? null Regex matched against remaining distance / ETA indicators. E. Progress (progress) # Field Type Default Description min_progress_percent Int? null Minimum progress percentage required to match (0–100). max_progress_percent Int? null Maximum progress percentage required to match (0–100). 6. DataExtractionConfig # Field Type Default Description extract_progress_from_text Boolean false When true, parses numbers from notification text if EXTRA_PROGRESS is missing. progress_regex String? null Capture group regex to extract numeric progress (e.g. (\\d+)% or (\\d+)\\s*/\\s*100). custom_max_progress Int 100 The denominator used to calculate percentage if not explicitly defined. substitute_variables Map\u0026lt;String, String\u0026gt; {} Custom static key-value replacements applied before template rendering. 7. ActionSlotConfig # Field Type Default Description slot_position Int 0 Button position on the island card (0, 1, 2). is_visible Boolean true Toggle to show or hide this specific action button. source ActionSource NOTIFICATION_ACTION Action provider (NOTIFICATION_ACTION, SMART_ACTION, INLINE_REPLY, CUSTOM_BROADCAST). action_matcher ActionMatcher {} Matcher criteria when source is NOTIFICATION_ACTION. smart_action_type SmartActionType? null Smart Action function (OTP_COPY, OPEN_URL, DIAL_NUMBER, TRACK_PACKAGE). display_mode ActionDisplayMode ICON_ONLY Visual appearance: ICON_ONLY, TEXT_ONLY, ICON_AND_TEXT. custom_label String? null Custom string overriding the original button label. ActionMatcher # Field Type Default Description match_by ActionMatchBy INDEX Match mode: INDEX (left-to-right position) or TITLE (semantic regex). action_index Int? 0 0-based index of the notification action (left to right). title_regex String? null Regular expression matched against the original action title (e.g. (?i)reply). 8. PresentationConfig \u0026amp; CompactPillConfig # Field Type Default Description mode PresentationMode STANDARD Rendering architecture: STANDARD, TEMPLATE, WIDGET, RAW_PARAM_V2. template_id String? null Layout preset ID (e.g. tpl_ride_delivery, tpl_call_kit, tpl_media_compact). text_slot TextSlotConfig {} Title and subtitle variable templates. progress_slot ProgressSlotConfig {} Progress bar or live timer configuration. action_slots List\u0026lt;ActionSlotConfig\u0026gt; [] List of up to 3 action button slot configurations. pill CompactPillConfig {} Collapsed status bar pill styling. raw_param_v2 RawParamV2Config? null Dedicated Xiaomi HyperOS param_v2 payload template and asset bundling configuration. Compact Pill Slot Options # left_design (PillLeftDesign): ICON_AND_TEXT (Default): Shows app/slot icon and short title. ICON_ONLY: Shows only the masked icon. TEXT_ONLY: Shows only title text. AVATAR: Shows contact avatar (extracted from Messaging notifications). HIDDEN: Hides the left side of the pill. right_design (PillRightDesign): AUTO (Default): Automatically chooses progress, timer, or status. PROGRESS_PERCENT: Shows numeric percentage (e.g. 78%). TIMER: Displays active ticking chronometer/countdown. HIGHLIGHT_TEXT: Shows accented badge text. NONE: Leaves right side empty. 9. EngineMode \u0026amp; BehaviorOverride # Field Type Default Description engine_mode EngineMode INHERIT Motor mode: INHERIT, CUSTOM_ISLAND (native floating island), NATIVE_LIVE_UPDATE (Xiaomi native live channel). is_float Boolean? null Whether the notification expands into a floating banner on arrival. float_timeout_seconds Int? null Duration in seconds before the floating banner automatically collapses. timeout_seconds Int? null Duration in seconds before the island card automatically dismisses. is_show_shade Boolean? null Whether to retain the notification in the standard Android notification drawer. remove_original_notification Boolean? null Dismisses the underlying Android notification once bridged. enable_inline_reply Boolean? null Enables interactive text reply field directly on the island. 10. CustomVariableDefinition (custom_variables) # The custom_variables pipeline allows translators to extract arbitrary pieces of information, parse regex capture groups, calculate step progress from keywords, or load custom graphics:\nField Type Default Description id String (Required) Variable identifier. Accessible in templates as {var.\u0026lt;id\u0026gt;} or {\u0026lt;id\u0026gt;}. For images, generates picture key miui.focus.pic_\u0026lt;id\u0026gt; and token {pic.\u0026lt;id\u0026gt;}. label String \u0026quot;\u0026quot; User-friendly label displayed in the editor UI. type VariableType TEXT Data type: TEXT, NUMBER, BOOLEAN, COLOR, IMAGE, or STEP_PROGRESS. source VariableSource NOTIFICATION_TEXT Extraction source (see VariableSource table below). extra_key String? null Bundle key when source is NOTIFICATION_EXTRA or static string when STATIC_VALUE. regex_pattern String? null Regular expression executed against the source string. regex_group String \u0026quot;1\u0026quot; Capture group index (\u0026quot;1\u0026quot;, \u0026quot;2\u0026quot;) or named group (e.g. \u0026quot;amount\u0026quot;) to extract. transform_template String? null Formatting template applied to the captured group, replacing $1 (e.g. \u0026quot;$1 mins away\u0026quot;). fallback_chain List\u0026lt;String\u0026gt; [] Ordered list of candidate token keys evaluated if the primary regex does not match. fallback_value String \u0026quot;\u0026quot; Default value if the regex match fails and all tokens in fallback_chain are empty. step_config StepExtractionConfig? null Configuration for multi-step progress extraction when type is STEP_PROGRESS. image_config VariableImageConfig? null Configuration for loading, masking, and padding image resources when type is IMAGE. VariableSource Options # Source Description Resolved Output NOTIFICATION_TITLE Notification.EXTRA_TITLE Title text string NOTIFICATION_TEXT Notification.EXTRA_TEXT Main notification body text NOTIFICATION_SUBTEXT Notification.EXTRA_SUB_TEXT Subtext / channel header string NOTIFICATION_INFO_TEXT Notification.EXTRA_INFO_TEXT Small info text string NOTIFICATION_BIG_TEXT Notification.EXTRA_BIG_TEXT Expanded big text content NOTIFICATION_SUMMARY_TEXT Notification.EXTRA_SUMMARY_TEXT Summary string in InboxStyle NOTIFICATION_TEXT_LINES Notification.EXTRA_TEXT_LINES Multi-line array joined with newlines (\\n) NOTIFICATION_EXTRA Arbitrary extras.get(extra_key) String representation of bundle extra SENDER_NAME Extracted chat sender name Person/contact name CONVERSATION_TITLE Notification.EXTRA_CONVERSATION_TITLE Group chat topic/name IS_GROUP_CONVERSATION Group chat boolean indicator \u0026quot;true\u0026quot; or \u0026quot;false\u0026quot; NOTIFICATION_PROGRESS Notification.EXTRA_PROGRESS Current progress integer STEP_PROGRESS_AUTO Multi-stage parser Step number integer PERSON_ICON Sender avatar / Contact icon Bitmap parsed from largeIcon NOTIFICATION_LARGE_ICON Notification.EXTRA_LARGE_ICON or picture Bitmap graphic NOTIFICATION_APP_ICON Target application\u0026rsquo;s launcher icon Masked app icon Bitmap NOTIFICATION_EXTRA_BITMAP Bitmap stored in extras.getParcelable(extra_key) Custom bundle Bitmap HTRANS_EMBEDDED_ASSET Asset bundled inside .htrans package Extracted file Bitmap THEME_RESOURCE_PATH Graphic asset from active .htheme pack Theme resource Bitmap STATIC_VALUE Literal constant defined in extra_key Constant string value StepExtractionConfig # Used when type is STEP_PROGRESS to map delivery or process states into an integer step:\nField Type Default Description total_steps Int 4 Total number of stages (e.g. Order Placed, Preparing, In Transit, Delivered). step_regex String? null Regex matched against notification text to extract step number. step_group Int 1 Capture group index containing the numeric step. step_keywords Map\u0026lt;String, Int\u0026gt; {} Keyword-to-step dictionary (e.g. {\u0026quot;preparing\u0026quot;: 1, \u0026quot;picked up\u0026quot;: 2, \u0026quot;on the way\u0026quot;: 3, \u0026quot;delivered\u0026quot;: 4}). Checked case-insensitively. VariableImageConfig # Used when type is IMAGE to customize how the image is styled and bundled into miui.focus.pics:\nField Type Default Description asset_path String? null Relative path inside the .htrans archive (e.g. icons/driver_car.png). theme_resource ThemeResource? null Resource reference pointing into an installed HyperTheme pack. shape_id String \u0026quot;circle\u0026quot; Geometric mask shape (\u0026quot;circle\u0026quot;, \u0026quot;squircle\u0026quot;, \u0026quot;rounded_rect\u0026quot;, \u0026quot;none\u0026quot;). padding_percent Int 0 Inner padding percentage (0–50%) applied before masking. tint_color String? null Hex color code to tint monochrome vector icons (e.g. \u0026quot;#FF5722\u0026quot;). fallback_image_source VariableSource? NOTIFICATION_APP_ICON Fallback image source if the primary asset or bitmap is missing. 11. CustomActionDefinition (custom_actions) # The custom_actions pipeline enables binding native notification actions, Smart Action utilities, or inline replies directly to Xiaomi HyperIsland action slots or RAW_PARAM_V2 action keys:\nField Type Default Description id String (Required) Action identifier. Accessible in templates as {action.\u0026lt;id\u0026gt;} (miui.focus.action_\u0026lt;id\u0026gt;). label String? null Button title text. Accessible in templates as {action.\u0026lt;id\u0026gt;.title}. Falls back to original action title or Smart Action default. source CustomActionSource NOTIFICATION_ACTION_INDEX Action origin: NOTIFICATION_ACTION_INDEX, NOTIFICATION_ACTION_TITLE_REGEX, SMART_ACTION, INLINE_REPLY, or CUSTOM_BROADCAST. action_index Int 0 0-based index of notification action (left to right) when source is NOTIFICATION_ACTION_INDEX. title_regex String? null Case-insensitive regex matching action title when source is NOTIFICATION_ACTION_TITLE_REGEX (e.g. `\u0026quot;(?i)reply smart_action_type SmartActionCategory? null Smart utility category: OTP (auto-copy 2FA code), URL (open extracted link), PHONE (dial phone number), or TRACKING (track parcel). fallback_action_id String? null ID of fallback action if primary action is not present. icon_override VariableImageConfig? null Custom graphic configuration overriding the original button icon. 12. Direct Xiaomi Island Protocol: PresentationMode.RAW_PARAM_V2 # For advanced developers and reverse-engineers who want byte-level control over the native Xiaomi HyperOS HyperIsland payload, Hyper Bridge 0.6.0 introduces PresentationMode.RAW_PARAM_V2.\nInstead of relying on predefined visual slots (text_slot, progress_slot, pill), you provide a native Xiaomi param_v2 JSON template string. Hyper Bridge handles the heavy lifting: evaluating variables, extracting graphics, wiring PendingIntents into the Android resource bundle, validating the JSON schema, and transmitting the packet directly to HyperOS.\n\u0026#34;presentation\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;RAW_PARAM_V2\u0026#34;, \u0026#34;raw_param_v2\u0026#34;: { \u0026#34;json_template\u0026#34;: \u0026#34;{\\\u0026#34;param_v2\\\u0026#34;: { ... }}\u0026#34;, \u0026#34;fallback_to_standard_on_error\u0026#34;: true, \u0026#34;bundle_pictures\u0026#34;: true, \u0026#34;bundle_actions\u0026#34;: true } } RawParamV2Config Properties # Field Type Default Description json_template String \u0026quot;\u0026quot; The raw Xiaomi HyperOS param_v2 JSON string containing variable tokens. fallback_to_standard_on_error Boolean true When true, if the template cannot produce valid JSON, Hyper Bridge safely falls back to standard card rendering instead of dropping the island. bundle_pictures Boolean true Automatically populates and injects all resolved images into the miui.focus.pics bundle. bundle_actions Boolean true Automatically wires resolved actions and PendingIntents into the miui.focus.actions bundle. Automatic Normalization \u0026amp; Structural Guarantees # Hyper Bridge\u0026rsquo;s validateOrNormalizeParamV2 engine inspects the template output and guarantees protocol compliance:\nRoot Wrapping: If the template provides a bare object (e.g. starting with {\u0026quot;bigIslandArea\u0026quot;: ...}), the engine automatically wraps it in {\u0026quot;param_v2\u0026quot;: { ... }}. Param Island Verification: Ensures param_island exists with islandProperty: 1. Small Island Auto-Generation: If smallIslandArea is omitted, the engine automatically derives it using the primary picture candidate and hidden_pixel. Big Island Auto-Generation: If bigIslandArea is omitted but baseInfo is present, the engine constructs an imageTextInfoLeft layout automatically. Key Duplication in Bundles: In both miui.focus.pics and miui.focus.actions, keys are populated with both their raw name (e.g. pic_avatar) and their prefixed name (miui.focus.pic_avatar) so templates work regardless of key formatting. Dynamic Variable Templating Engine # All template strings (json_template, title_template, subtitle_template, etc.) are processed by the interpolation engine.\nCascading Fallback \u0026amp; Default Syntax # Hyper Bridge supports robust fallback cascades to ensure notification cards never display empty fields or broken placeholders:\n{primary_token | secondary_token | \u0026#34;Default Literal\u0026#34;} {primary_token ?: Default Literal} Pipe Operator (| or ||): Evaluates tokens from left to right. Selects the first non-empty, non-blank variable. Elvis Operator (?:): Provides a fallback default value if the preceding token is missing or blank. Quoted Literals (\u0026quot;...\u0026quot; or '...'): Explicitly defines a string literal fallback (e.g. {\u0026quot;YouTube\u0026quot;}). Unquoted Literals: If the final alternative does not match any known variable token, it is treated as a default literal string. Image Key Safety: When cascading picture tokens (e.g. {pic.avatar | pic.large_icon | pic.app_icon}), the engine checks whether each candidate image actually exists in the bundle before selecting it! Cascading Examples # {media.artist | notif.text | \u0026quot;Unknown Artist\u0026quot;} → Uses media.artist; if empty, uses notif.text; if still empty, resolves to \u0026quot;Unknown Artist\u0026quot;. {var.eta ?: \u0026quot;Arriving soon\u0026quot;} → Uses extracted variable var.eta; if blank, outputs \u0026quot;Arriving soon\u0026quot;. {pic.driver_photo | pic.large_icon | pic.app_icon} → Safely picks the first graphic that was successfully extracted or loaded into miui.focus.pics. Complete Runtime Variable Dictionary # The following table lists all built-in tokens available during interpolation:\nVariable Token Description Example Output Notification Content {notif.title} Original or formatted notification title \u0026quot;Uber\u0026quot; {notif.text} Primary body text \u0026quot;Driver is arriving in 3 mins\u0026quot; {notif.subtext} Subtitle / summary info \u0026quot;Order #4821\u0026quot; {notif.info_text} Small extra info text (EXTRA_INFO_TEXT) \u0026quot;Ride in progress\u0026quot; {notif.big_text} Expanded text (EXTRA_BIG_TEXT) \u0026quot;Full detailed notification body...\u0026quot; {notif.summary_text} Summary text (EXTRA_SUMMARY_TEXT) \u0026quot;3 new updates\u0026quot; {notif.text_lines[0]} Specific line from EXTRA_TEXT_LINES \u0026quot;First line of inbox text\u0026quot; Messaging \u0026amp; Calls {notif.sender} / {msg.sender_name} Message sender or contact name \u0026quot;Alice Smith\u0026quot; {notif.conversation_title} / {msg.conversation_title} Group chat title \u0026quot;Project Core Team\u0026quot; {msg.is_group} Group conversation boolean flag \u0026quot;true\u0026quot; or \u0026quot;false\u0026quot; {msg.latest_message} Most recent incoming message \u0026quot;Are you on your way?\u0026quot; {notif.caller_name} / {call.caller_name} Caller name or phone number \u0026quot;Mom\u0026quot; {notif.call_state} / {call.state} Call status \u0026quot;Incoming Call...\u0026quot; Media \u0026amp; Playback {notif.media_artist} / {media.artist} Track artist \u0026quot;David Kushner\u0026quot; {media.album} Album or playlist title \u0026quot;Daylight\u0026quot; {media.track} Track title \u0026quot;Daylight\u0026quot; Progress \u0026amp; Steps {notif.progress} / {progress.percent} Progress percentage number \u0026quot;75\u0026quot; {progress.current} Current progress counter value \u0026quot;150\u0026quot; {progress.max} Maximum progress denominator \u0026quot;200\u0026quot; {progress.is_indeterminate} Whether progress is indeterminate \u0026quot;false\u0026quot; {progress.step_current} Current step extracted via STEP_PROGRESS \u0026quot;3\u0026quot; {progress.step_total} Total steps configured \u0026quot;4\u0026quot; {progress.step_label} Matched step keyword \u0026quot;On the way\u0026quot; Custom Variables \u0026amp; Actions {var.\u0026lt;id\u0026gt;} or {\u0026lt;id\u0026gt;} Value extracted by CustomVariableDefinition \u0026quot;2.4 km\u0026quot; {action.\u0026lt;id\u0026gt;} Action key in miui.focus.actions \u0026quot;miui.focus.action_reply\u0026quot; {action.\u0026lt;id\u0026gt;.title} Resolved action button title \u0026quot;Quick Reply\u0026quot; {action.\u0026lt;index\u0026gt;} Action key by original notification position (0, 1, 2) \u0026quot;miui.focus.action_0\u0026quot; {action.\u0026lt;index\u0026gt;.title} Original action button label \u0026quot;Mark as Read\u0026quot; Smart Action Utilities {smart_action.OTP.code} Extracted 2FA verification code \u0026quot;492019\u0026quot; {smart_action.OTP} Action key binding OTP copy pending intent \u0026quot;miui.focus.action_smart_otp\u0026quot; {smart_action.URL.link} Extracted web URL \u0026quot;https://hyperisland.d4viddf.com\u0026quot; {smart_action.URL} Action key binding browser launch intent \u0026quot;miui.focus.action_smart_url\u0026quot; {smart_action.PHONE.number} Extracted phone number \u0026quot;+15550192834\u0026quot; {smart_action.PHONE} Action key binding dialer intent \u0026quot;miui.focus.action_smart_phone\u0026quot; {action.REPLY} Action key binding inline reply pending intent \u0026quot;miui.focus.action_reply\u0026quot; Bundled Pictures (miui.focus.pics) {pic.\u0026lt;id\u0026gt;} / {pic.var.\u0026lt;id\u0026gt;} Picture key generated by custom image variable \u0026quot;pic_var_driver_avatar\u0026quot; {pic.primary} Primary active notification icon key \u0026quot;pic_1829471\u0026quot; {pic.app_icon} Application launcher icon key \u0026quot;miui.focus.pic_app_icon\u0026quot; {pic.large_icon} Notification large icon / picture key \u0026quot;miui.focus.pic_large_icon\u0026quot; {pic.sender_avatar} Extracted contact avatar key \u0026quot;miui.focus.pic_sender_avatar\u0026quot; {pic.album_art} Media playback album artwork key \u0026quot;album_art\u0026quot; {pic.poster} Media / big picture banner key \u0026quot;poster\u0026quot; {pic.hidden} 1x1 transparent spacer key \u0026quot;hidden_pixel\u0026quot; App \u0026amp; System Metadata {app.name} Human-readable app label \u0026quot;Spotify\u0026quot; {app.package} Android package identifier \u0026quot;com.spotify.music\u0026quot; {notif.channel} Android notification channel ID \u0026quot;playback_channel\u0026quot; {notif.category} Android category string \u0026quot;transport\u0026quot; {notif.when_millis} Notification timestamp epoch milliseconds \u0026quot;1726932800000\u0026quot; {system.time_millis} Current system epoch milliseconds \u0026quot;1726932805120\u0026quot; {color.highlight} Resolved hex accent color \u0026quot;#1DB954\u0026quot; {color.progress} Resolved hex progress color \u0026quot;#1DB954\u0026quot; Production Examples # Example 1: Food Delivery Live Waypoint Tracker # Interprets delivery progress from a food app, extracts numeric percentage, and displays a waypoint template with a 1-tap call driver button.\n{ \u0026#34;id\u0026#34;: \u0026#34;com.fooddelivery.live_tracker\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;Food Delivery Waypoint Tracker\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;HyperBridge Team\u0026#34;, \u0026#34;version\u0026#34;: 1, \u0026#34;description\u0026#34;: \u0026#34;Transforms food delivery notifications into a live tracked island.\u0026#34;, \u0026#34;icon_name\u0026#34;: \u0026#34;LocalShipping\u0026#34; }, \u0026#34;target_scope\u0026#34;: \u0026#34;SPECIFIC_APPS\u0026#34;, \u0026#34;target_packages\u0026#34;: [\u0026#34;com.ubercab.eats\u0026#34;, \u0026#34;com.doordash.driverapp\u0026#34;], \u0026#34;priority\u0026#34;: 250, \u0026#34;is_enabled\u0026#34;: true, \u0026#34;conditions\u0026#34;: { \u0026#34;title_regex\u0026#34;: \u0026#34;(?i).*(order|delivering|driver|courier).*\u0026#34;, \u0026#34;has_progress\u0026#34;: true }, \u0026#34;data_extraction\u0026#34;: { \u0026#34;extract_progress_from_text\u0026#34;: true, \u0026#34;progress_regex\u0026#34;: \u0026#34;(\\\\d+)%\\\\s*completed\u0026#34; }, \u0026#34;presentation\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;TEMPLATE\u0026#34;, \u0026#34;template_id\u0026#34;: \u0026#34;tpl_ride_delivery\u0026#34;, \u0026#34;text_slot\u0026#34;: { \u0026#34;title_template\u0026#34;: \u0026#34;{notif.title}\u0026#34;, \u0026#34;subtitle_template\u0026#34;: \u0026#34;{notif.text}\u0026#34;, \u0026#34;highlight_text_template\u0026#34;: \u0026#34;{notif.progress}%\u0026#34; }, \u0026#34;progress_slot\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;PROGRESS_BAR\u0026#34;, \u0026#34;progress_source\u0026#34;: \u0026#34;AUTO_DETECT\u0026#34;, \u0026#34;color_source\u0026#34;: \u0026#34;THEME_HIGHLIGHT\u0026#34;, \u0026#34;show_percentage\u0026#34;: true }, \u0026#34;action_slots\u0026#34;: [ { \u0026#34;slot_position\u0026#34;: 0, \u0026#34;is_visible\u0026#34;: true, \u0026#34;source\u0026#34;: \u0026#34;SMART_ACTION\u0026#34;, \u0026#34;smart_action_type\u0026#34;: \u0026#34;DIAL_NUMBER\u0026#34;, \u0026#34;display_mode\u0026#34;: \u0026#34;ICON_AND_TEXT\u0026#34;, \u0026#34;custom_label\u0026#34;: \u0026#34;Call Driver\u0026#34; } ], \u0026#34;pill\u0026#34;: { \u0026#34;left_design\u0026#34;: \u0026#34;ICON_AND_TEXT\u0026#34;, \u0026#34;right_design\u0026#34;: \u0026#34;PROGRESS_PERCENT\u0026#34; } }, \u0026#34;theme_binding\u0026#34;: { \u0026#34;override_highlight_color\u0026#34;: \u0026#34;#06C167\u0026#34; }, \u0026#34;behavior_override\u0026#34;: { \u0026#34;is_float\u0026#34;: true, \u0026#34;float_timeout_seconds\u0026#34;: 6 } } Example 2: WhatsApp VIP Contact with Inline Reply # Elevates messages from a specific VIP contact, displays their contact avatar, applies custom green theme branding, and enables an interactive inline reply button.\n{ \u0026#34;id\u0026#34;: \u0026#34;com.whatsapp.vip_contact\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;WhatsApp VIP Contact\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;PowerUser\u0026#34;, \u0026#34;version\u0026#34;: 1, \u0026#34;description\u0026#34;: \u0026#34;High-priority styling with custom avatar and inline reply for VIP contacts.\u0026#34;, \u0026#34;icon_name\u0026#34;: \u0026#34;Star\u0026#34; }, \u0026#34;target_scope\u0026#34;: \u0026#34;SPECIFIC_APPS\u0026#34;, \u0026#34;target_packages\u0026#34;: [\u0026#34;com.whatsapp\u0026#34;], \u0026#34;priority\u0026#34;: 500, \u0026#34;is_enabled\u0026#34;: true, \u0026#34;conditions\u0026#34;: { \u0026#34;type_specific_conditions\u0026#34;: { \u0026#34;messaging\u0026#34;: { \u0026#34;sender_name_regex\u0026#34;: \u0026#34;(?i)Mom|Sarah|Boss\u0026#34; } } }, \u0026#34;presentation\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;STANDARD\u0026#34;, \u0026#34;left_slot\u0026#34;: { \u0026#34;source\u0026#34;: \u0026#34;AVATAR\u0026#34;, \u0026#34;shape\u0026#34;: \u0026#34;circle\u0026#34; }, \u0026#34;text_slot\u0026#34;: { \u0026#34;title_template\u0026#34;: \u0026#34;⭐ {notif.sender}\u0026#34;, \u0026#34;subtitle_template\u0026#34;: \u0026#34;{notif.text}\u0026#34; }, \u0026#34;action_slots\u0026#34;: [ { \u0026#34;slot_position\u0026#34;: 0, \u0026#34;is_visible\u0026#34;: true, \u0026#34;source\u0026#34;: \u0026#34;INLINE_REPLY\u0026#34;, \u0026#34;display_mode\u0026#34;: \u0026#34;ICON_AND_TEXT\u0026#34;, \u0026#34;custom_label\u0026#34;: \u0026#34;Reply\u0026#34; }, { \u0026#34;slot_position\u0026#34;: 1, \u0026#34;is_visible\u0026#34;: true, \u0026#34;source\u0026#34;: \u0026#34;NOTIFICATION_ACTION\u0026#34;, \u0026#34;action_matcher\u0026#34;: { \u0026#34;match_by\u0026#34;: \u0026#34;TITLE\u0026#34;, \u0026#34;title_regex\u0026#34;: \u0026#34;(?i)read|mark\u0026#34; }, \u0026#34;display_mode\u0026#34;: \u0026#34;TEXT_ONLY\u0026#34;, \u0026#34;custom_label\u0026#34;: \u0026#34;Read\u0026#34; } ], \u0026#34;pill\u0026#34;: { \u0026#34;left_design\u0026#34;: \u0026#34;AVATAR\u0026#34;, \u0026#34;right_design\u0026#34;: \u0026#34;HIGHLIGHT_TEXT\u0026#34; } }, \u0026#34;theme_binding\u0026#34;: { \u0026#34;override_highlight_color\u0026#34;: \u0026#34;#25D366\u0026#34; }, \u0026#34;behavior_override\u0026#34;: { \u0026#34;is_float\u0026#34;: true, \u0026#34;float_timeout_seconds\u0026#34;: 8, \u0026#34;enable_inline_reply\u0026#34;: true } } Example 3: Smart Two-Factor Authentication (OTP) Auto-Copier # Detects incoming SMS or authenticator codes, extracts the verification code, and injects a 1-tap clipboard copy action.\n{ \u0026#34;id\u0026#34;: \u0026#34;global.smart_otp_copier\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;Smart 2FA / OTP Copy Action\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;HyperBridge Security\u0026#34;, \u0026#34;version\u0026#34;: 1, \u0026#34;description\u0026#34;: \u0026#34;Detects verification codes and inserts a 1-tap OTP copy button.\u0026#34;, \u0026#34;icon_name\u0026#34;: \u0026#34;Key\u0026#34; }, \u0026#34;target_scope\u0026#34;: \u0026#34;GLOBAL\u0026#34;, \u0026#34;priority\u0026#34;: 900, \u0026#34;is_enabled\u0026#34;: true, \u0026#34;conditions\u0026#34;: { \u0026#34;text_regex\u0026#34;: \u0026#34;(?i).*(\\\\b\\\\d{4,8}\\\\b|code|verification|otp|password).*\u0026#34; }, \u0026#34;presentation\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;STANDARD\u0026#34;, \u0026#34;text_slot\u0026#34;: { \u0026#34;title_template\u0026#34;: \u0026#34;🔐 Verification Code\u0026#34;, \u0026#34;subtitle_template\u0026#34;: \u0026#34;{notif.text}\u0026#34; }, \u0026#34;action_slots\u0026#34;: [ { \u0026#34;slot_position\u0026#34;: 0, \u0026#34;is_visible\u0026#34;: true, \u0026#34;source\u0026#34;: \u0026#34;SMART_ACTION\u0026#34;, \u0026#34;smart_action_type\u0026#34;: \u0026#34;OTP_COPY\u0026#34;, \u0026#34;display_mode\u0026#34;: \u0026#34;ICON_AND_TEXT\u0026#34;, \u0026#34;custom_label\u0026#34;: \u0026#34;Copy Code\u0026#34; } ], \u0026#34;pill\u0026#34;: { \u0026#34;left_design\u0026#34;: \u0026#34;ICON_AND_TEXT\u0026#34;, \u0026#34;right_design\u0026#34;: \u0026#34;NONE\u0026#34; } }, \u0026#34;theme_binding\u0026#34;: { \u0026#34;override_highlight_color\u0026#34;: \u0026#34;#007AFF\u0026#34; }, \u0026#34;behavior_override\u0026#34;: { \u0026#34;is_float\u0026#34;: true, \u0026#34;float_timeout_seconds\u0026#34;: 10 } } Example 4: Direct RAW_PARAM_V2 Ride-Share Live Tracker # An advanced developer example using PresentationMode.RAW_PARAM_V2. It parses driver name, ETA minutes, and vehicle model via regular expressions, bundles a custom driver avatar and call button, and renders a native Xiaomi HyperOS HyperIsland directly:\n{ \u0026#34;id\u0026#34;: \u0026#34;com.rideshare.live_driver_v2\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;Ride-Share HyperIsland (RAW_PARAM_V2)\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;HyperBridge Pro Dev\u0026#34;, \u0026#34;version\u0026#34;: 2, \u0026#34;description\u0026#34;: \u0026#34;Native Xiaomi param_v2 ride tracker with regex extraction, dynamic fallback cascade, and direct action bundling.\u0026#34;, \u0026#34;icon_name\u0026#34;: \u0026#34;DirectionsCar\u0026#34; }, \u0026#34;target_scope\u0026#34;: \u0026#34;SPECIFIC_APPS\u0026#34;, \u0026#34;target_packages\u0026#34;: [\u0026#34;com.uber.driverapp\u0026#34;, \u0026#34;com.rideshare.passenger\u0026#34;], \u0026#34;priority\u0026#34;: 750, \u0026#34;is_enabled\u0026#34;: true, \u0026#34;conditions\u0026#34;: { \u0026#34;title_regex\u0026#34;: \u0026#34;(?i)driver|arriving|ride\u0026#34;, \u0026#34;text_regex\u0026#34;: \u0026#34;(?i).*(\\\\d+)\\\\s*mins?.*\u0026#34; }, \u0026#34;custom_variables\u0026#34;: [ { \u0026#34;id\u0026#34;: \u0026#34;eta_mins\u0026#34;, \u0026#34;label\u0026#34;: \u0026#34;ETA Minutes\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;NUMBER\u0026#34;, \u0026#34;source\u0026#34;: \u0026#34;NOTIFICATION_TEXT\u0026#34;, \u0026#34;regex_pattern\u0026#34;: \u0026#34;(\\\\d+)\\\\s*mins?\u0026#34;, \u0026#34;regex_group\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;fallback_value\u0026#34;: \u0026#34;5\u0026#34; }, { \u0026#34;id\u0026#34;: \u0026#34;driver_name\u0026#34;, \u0026#34;label\u0026#34;: \u0026#34;Driver Name\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;TEXT\u0026#34;, \u0026#34;source\u0026#34;: \u0026#34;NOTIFICATION_TITLE\u0026#34;, \u0026#34;regex_pattern\u0026#34;: \u0026#34;(?i)([a-zA-Z]+)\\\\s+is arriving\u0026#34;, \u0026#34;regex_group\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;fallback_chain\u0026#34;: [\u0026#34;notif.sender\u0026#34;, \u0026#34;notif.title\u0026#34;], \u0026#34;fallback_value\u0026#34;: \u0026#34;Your Driver\u0026#34; }, { \u0026#34;id\u0026#34;: \u0026#34;driver_avatar\u0026#34;, \u0026#34;label\u0026#34;: \u0026#34;Driver Photo\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;IMAGE\u0026#34;, \u0026#34;source\u0026#34;: \u0026#34;NOTIFICATION_LARGE_ICON\u0026#34;, \u0026#34;image_config\u0026#34;: { \u0026#34;shape_id\u0026#34;: \u0026#34;circle\u0026#34;, \u0026#34;padding_percent\u0026#34;: 0, \u0026#34;fallback_image_source\u0026#34;: \u0026#34;NOTIFICATION_APP_ICON\u0026#34; } } ], \u0026#34;custom_actions\u0026#34;: [ { \u0026#34;id\u0026#34;: \u0026#34;contact_driver\u0026#34;, \u0026#34;label\u0026#34;: \u0026#34;Call Driver\u0026#34;, \u0026#34;source\u0026#34;: \u0026#34;NOTIFICATION_ACTION_TITLE_REGEX\u0026#34;, \u0026#34;title_regex\u0026#34;: \u0026#34;(?i)call|contact\u0026#34; } ], \u0026#34;presentation\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;RAW_PARAM_V2\u0026#34;, \u0026#34;raw_param_v2\u0026#34;: { \u0026#34;fallback_to_standard_on_error\u0026#34;: true, \u0026#34;bundle_pictures\u0026#34;: true, \u0026#34;bundle_actions\u0026#34;: true, \u0026#34;json_template\u0026#34;: \u0026#34;{\\\u0026#34;param_v2\\\u0026#34;:{\\\u0026#34;protocol\\\u0026#34;:1,\\\u0026#34;business\\\u0026#34;:\\\u0026#34;transport\\\u0026#34;,\\\u0026#34;enableFloat\\\u0026#34;:true,\\\u0026#34;updatable\\\u0026#34;:true,\\\u0026#34;ticker\\\u0026#34;:\\\u0026#34;{var.driver_name} is {var.eta_mins} mins away\\\u0026#34;,\\\u0026#34;param_island\\\u0026#34;:{\\\u0026#34;islandProperty\\\u0026#34;:1,\\\u0026#34;bigIslandArea\\\u0026#34;:{\\\u0026#34;imageTextInfoLeft\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:1,\\\u0026#34;picInfo\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:1,\\\u0026#34;pic\\\u0026#34;:\\\u0026#34;{pic.driver_avatar | pic.large_icon | pic.app_icon}\\\u0026#34;},\\\u0026#34;textInfo\\\u0026#34;:{\\\u0026#34;title\\\u0026#34;:\\\u0026#34;{var.driver_name}\\\u0026#34;,\\\u0026#34;content\\\u0026#34;:\\\u0026#34;{var.eta_mins} mins away\\\u0026#34;}},\\\u0026#34;actionArea\\\u0026#34;:{\\\u0026#34;actionKeys\\\u0026#34;:[\\\u0026#34;{action.contact_driver | action.0}\\\u0026#34;]}},\\\u0026#34;smallIslandArea\\\u0026#34;:{\\\u0026#34;picInfo\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:1,\\\u0026#34;pic\\\u0026#34;:\\\u0026#34;{pic.driver_avatar | pic.app_icon}\\\u0026#34;}}},\\\u0026#34;baseInfo\\\u0026#34;:{\\\u0026#34;type\\\u0026#34;:2,\\\u0026#34;title\\\u0026#34;:\\\u0026#34;{var.driver_name}\\\u0026#34;,\\\u0026#34;subTitle\\\u0026#34;:\\\u0026#34;Arriving in {var.eta_mins} min\\\u0026#34;,\\\u0026#34;content\\\u0026#34;:\\\u0026#34;Ride in progress\\\u0026#34;,\\\u0026#34;pic\\\u0026#34;:\\\u0026#34;{pic.driver_avatar | pic.app_icon}\\\u0026#34;}}}\u0026#34; } }, \u0026#34;theme_binding\u0026#34;: { \u0026#34;override_highlight_color\u0026#34;: \u0026#34;#000000\u0026#34; }, \u0026#34;behavior_override\u0026#34;: { \u0026#34;is_float\u0026#34;: true, \u0026#34;float_timeout_seconds\u0026#34;: 12 } } ","externalUrl":null,"permalink":"/docs/advanced/translators-specification/","section":"Documentation","summary":"This document provides the authoritative technical reference for the Custom Translators Framework (.htrans) in Hyper Bridge 0.6.0. It is designed for developers, theme authors, and power users building custom notification pipelines, automation tools, or community packages.\n","title":"Translators Technical Specification","type":"docs"},{"content":"Hyper Bridge 0.6.0 introduces the Custom Translators Framework, a declarative engine that lets you customize exactly how notifications from any app are transformed into native Xiaomi HyperOS HyperIsland (HyperIsland) cards and compact status pills.\nWhether you want to highlight messages from VIP contacts, turn delivery progress notifications into live tracked waypoints, add 1-tap OTP verification buttons, or hide redundant notification actions, Custom Translators give you full control.\nLooking for the complete technical JSON schema and developer architecture?\nCheck out the Advanced Translators Technical Specification. What is a Custom Translator? # A Translator acts as a rule-based bridge between standard Android notifications (StatusBarNotification) and the Xiaomi HyperIsland notification framework.\nEach translator defines:\nTarget Scope \u0026amp; Conditions: Which app(s), channels, or notification types to intercept (using pattern matching, keywords, or regex). Data \u0026amp; Progress Extraction: How to extract numbers, delivery percentages, or contact names from the notification text. Action Buttons \u0026amp; Smart Actions: Which action buttons appear on the island, including 1-tap OTP copying, map navigation, and inline replies. Presentation \u0026amp; Compact Pill Design: The visual layout template, dynamic text variables, and compact pill styling. Theme \u0026amp; Appearance: Custom accent colors, icon shapes, and bindings to installed HyperThemes. Behavior \u0026amp; Engine Mode: Float display duration, dismissal behavior, and whether to use the Custom Island or Native Live Updates engine. Managing Translators in the App # Hyper Bridge provides intuitive access to your translators across the application:\n1. From the Design Hub # In the Design tab of Hyper Bridge:\nBento Card (Translators): Tap the card to open the Translator Manager, or tap the + action on the card to launch the Visual Translator Editor immediately. Floating Action Button (+): Tap the main + FAB and select Smart Translator. 2. Translator Manager Screen # The Translator Manager (DesignRoute.TRANSLATOR_MANAGER) is your central control panel:\nRule Overview \u0026amp; Search: Browse all registered translators or use the search bar to filter by rule name, author, or target package. Multi-Dimensional Filtering: Tap Filters to narrow down translators by Status (Active/Inactive), Scope (Global, Specific Apps, System Apps), or Notification Category. Priority Reordering \u0026amp; Toggle: Adjust priority ordering or toggle rules on/off with a single tap. SAF Import \u0026amp; Export: Import community .htrans / .json rules or export your own creations directly to device storage. 3. Creating a Translator # When tapping Create Translator (or when editing an existing template design), the visual editor opens with the live HyperIsland interactive preview:\nStep-by-Step: The Visual Editor Options \u0026amp; Modules # The Visual Editor is divided into specialized modules. Every design and translator can be customized across each of these modules:\nModule 1: Editor Overview \u0026amp; Live Preview # At the top of the editor, a real-time preview showcases how the notification appears as an Expanded Island, a Compact Pill, or in HyperOS 3 styling. Tap between preview modes at any time to verify layout changes.\nModule 2: Rule Info \u0026amp; Priority # Tap Edit Info \u0026amp; Priority to configure identity and execution sequence:\nTranslator Icon: Select a badge icon representing your rule. Theme Name: Set a unique descriptive title (e.g. Weather \u0026amp; Navigation). Author Name: Identify the creator. Execution Priority: Value (e.g. 100) determining evaluation precedence over generic rules. Description: Document purpose and behavioral notes. Module 3: Target Applications \u0026amp; Scope # Configure which apps or notification types this rule targets:\nTap Target Applications to inspect active rules and types. Select Target Scope: Global: Applies to all allowed applications in your Library. Specific Apps: Explicitly limits the rule to selected installed apps. System Apps: Targets system apps (e.g. Screen Recorder, Downloads). Types: Restricts rule to broad notification types (Messaging, Media, Calls, Downloads, Navigation). Toggle Filter by Notification Type to restrict rule matching to designated Android notification categories (e.g., Messages \u0026amp; General). Module 4: Match Conditions \u0026amp; Regex Rules # Define regular expression patterns and criteria to match incoming notifications:\nOpen Match Conditions to view configured pattern rules. Tap + Add Condition Pattern to view the extensive catalog of match targets across categories: Standard Properties: Title Pattern (Regex), Text / Body Pattern (Regex), Subtext Pattern (Regex), Notification Channel ID, Category (msg, call, progress), Must Have Progress, Must Have Actions. Messaging \u0026amp; People: Person / Sender Name (Regex), Conversation / Group Title (Regex), Group Conversation. Media \u0026amp; Playback: Artist / Performer (Regex), Album Name (Regex), Playback State. Phone Calls: Caller Name (Regex), Call State Filter. Navigation: Navigation Instruction (Regex), Distance Text (Regex). Progress \u0026amp; Downloads: Minimum Progress %, Maximum Progress %. Enter regex patterns with optional named capture groups (e.g. ^(?\u0026lt;sender\u0026gt;.*?): (?\u0026lt;msg\u0026gt;.*)). Module 5: Presentation \u0026amp; Layout Templates # Control visual rendering mode and variable text templates:\nPresentation Mode: Choose between: Standard: Clean default card layout with avatar/icon, title, subtitle, and action buttons. Template: Official predefined Xiaomi HyperIsland layouts (tpl_weather_nav, tpl_payment_wallet, tpl_call_kit, tpl_ride_delivery, tpl_queue_wait, tpl_parking_meter, tpl_file_transfer, tpl_media_compact). Widget: Interactive rich Android widget component. RAW_PARAM_V2 (Direct Xiaomi Island Protocol): Advanced mode for developers and theme authors. Allows supplying a raw Xiaomi HyperOS param_v2 JSON payload template with variable tokens, custom image injections, and direct action key bindings. Streamlined Editor Experience: When RAW_PARAM_V2 is active, Hyper Bridge automatically hides manual visual builder tabs (Pill, Presentation slots, Progress, Action slots). The visual editor streamlines its interface to focus exclusively on Target Apps \u0026amp; Scope, Matching Conditions, Custom Variables \u0026amp; Regex, and Behavior Overrides. Template Selector: Switch between Xiaomi\u0026rsquo;s 10 official templates. Linked Theme: Inherit the globally active theme or bind to a custom installed theme. Left Icon Slot: Set the source icon displayed on the left side of the island (e.g., App Icon, Custom Icon, Contact Avatar). Text \u0026amp; Templates with Dynamic Tokens \u0026amp; Cascading Fallbacks: Customize the Title Template, Subtitle Template, and Highlight Text Template using dynamic variable chips like {notif.title}, {notif.text}, {notif.subtext}: Built-in tokens: {notif.title}, {notif.text}, {notif.sender}, {notif.conversation_title}, {notif.media_artist}, {notif.progress}, {app.name}. Cascading fallbacks: {media.artist | notif.text | \u0026quot;Unknown Artist\u0026quot;} or {var.driver ?: \u0026quot;Driver\u0026quot;} evaluate candidates from left to right, preventing blank placeholders. Module 6: Compact Pill Customization # Configure how the compact status pill is displayed when collapsed around your camera cutout:\nOpen Pill Customization to review the live pill preview and configure left/right sides. Read the Compact Pill Guide to understand symmetrical layout rules and auto-detection behaviors. Select Right Pill Design: Auto-detect (Recommended): Automatically renders a timer or circular progress percentage if present in the notification. Circular progress: Shows an animated circular progress ring. Timer: Displays a live counting chronometer. Highlight text: Shows custom highlight text or status snippet. Empty: Leaves the right pill slot blank. Module 7: Progress \u0026amp; Timing Elements # Configure progress indicators on the island:\nOpen Progress \u0026amp; Timing to adjust how progress is tracked and displayed. Select Progress Type: Disabled / None: Do not show progress bar or timing indicators. Progress Bar: Linear bar in the expanded island, circular indicator on the pill. Waypoint / Stepper: Step-by-step waypoint markers for deliveries, routes, and milestones. Countdown / Timer: Active elapsed or remaining countdown time indicator. Module 8: Action Buttons \u0026amp; Smart Actions # Configure interactive buttons displayed on the expanded island card:\nTap Buttons to manage button slots. Review the Buttons Guide: Order of Appearance: Buttons are placed left-to-right. Use the up and down arrow controls to adjust priority. Button Types \u0026amp; Sources: Map original notification buttons, synthesized Smart Actions (OTP copy, URL, phone dial), or inline replies. Visibility \u0026amp; Styling: Temporarily hide any button with the eye toggle without losing its configuration. Style buttons as icon-only, text-only, or icon with text. Configure Button 1 (or additional slots): Choose Button Source (Notification Button vs. Smart Action). Match by position/index (0 = 1st, 1 = 2nd) or by Button Title Regex. Set Display Style (Icon Only, Text Only, etc.) and optional Custom Button Label. Use the Visibility Toggle to hide redundant buttons. Module 9: Behavior \u0026amp; Engine Motor Settings # Configure notification lifecycle, dismissal rules, and delivery engines:\nEngine Configuration: Choose between Inherit App Default, Custom Floating Island Engine, or Native Live Update Engine. Auto-hide Island: Automatically hide the expanded island after a duration or keep it visible until dismissed. Xiaomi Featured Notifications: Heads-up Popup: Show a brief banner popup before collapsing into the island (with duration slider, e.g. 10s). Notification Panel: Choose whether to keep the notification visible in the standard shade. Notification Management: Remove original notification: Automatically clear the source notification when a Live Update is active. Dismiss with original: Close the island when the source notification is swiped away. Enable inline reply: Launch a custom inline reply overlay when replying directly from the island. Module 10: Testing with the Live Preview # At the top of the editor, an interactive HyperOS 3 Island Preview updates in real-time as you tweak settings:\nTap the Expanded Island / Compact Pill toggle to verify both states. Verify text wrapping, variable replacement, button styling, and theme colors before saving. Importing, Exporting \u0026amp; Sharing # Custom translators can be distributed as standalone files or bundled into complete theme packages:\n1. The .htrans Package Format # A standard .htrans file is a compressed ZIP archive containing:\ntranslator.json: The complete declarative translator definition. icons/ (optional): Custom vector or bitmap icons referenced by action buttons. Hyper Bridge also seamlessly supports importing raw .json translator files.\n2. Exporting a Translator # Open the Translator Manager. Tap the Export icon on any translator card. Choose a destination folder using Android\u0026rsquo;s Storage Access Framework (SAF) document picker to save your .htrans file. 3. One-Tap Sharing # Tap the Share button on any translator card to open the standard Android Share sheet. You can send your .htrans file directly via Telegram, Discord, Email, or WhatsApp.\n4. Importing a Translator # In the Translator Manager, tap the Import button in the top app bar. Select any .htrans or .json file from your device storage. Hyper Bridge automatically validates the archive, extracts any bundled icons, verifies security against path traversal, and registers the translator in your database. 5. Theme-Pack Bundling (.htheme / .hbr) # Theme creators can bundle custom translators directly inside their theme packages!\nSimply include a translators/ folder inside your .htheme archive containing .htrans or .json files. When a user installs your theme, all bundled translators are automatically discovered and registered.\nNext Steps # Check out the full Advanced Translators Technical Specification for complete JSON schemas, Room database entity structures, and runtime pipeline details. Explore the Theme Creator Guide to build complete icon and color themes for Hyper Bridge. Learn about Smart Actions to supercharge your notification buttons. ","externalUrl":null,"permalink":"/docs/customization/custom-translators/","section":"Documentation","summary":"Hyper Bridge 0.6.0 introduces the Custom Translators Framework, a declarative engine that lets you customize exactly how notifications from any app are transformed into native Xiaomi HyperOS HyperIsland (HyperIsland) cards and compact status pills.\n","title":"Custom Translators Guide","type":"docs"},{"content":"The Diagnostics Screen in Hyper Bridge provides real-time visibility into the internal operating state of the bridge engine. It gives you instant insight into listener service connectivity, permission health, recent notification event streams, and translation statistics.\nIf notifications are failing to bridge, or if an island dismisses unexpectedly, the Diagnostics Screen is your primary tool for diagnosing what is happening under the hood.\nAccessing Diagnostics # In the Hyper Bridge application, navigate to: Settings → Diagnostics (under the Support \u0026amp; Troubleshooting section).\n1. System Health Status Card # At the top of the Diagnostics screen, an aggregated Health Status Card summarizes your core system permissions:\nNotification Access: Whether Hyper Bridge is actively granted Android Notification Listener privileges. Post Notifications: Permission to create status bar notifications. Restricted Settings: Whether Android 13+ restricted settings have been authorized for sideloaded APKs. HyperOS Focus Notifications: Whether Xiaomi\u0026rsquo;s native focus/island notification channel permission is active. Figure 1: Real-time service metrics, health status, and live event log on the Diagnostics screen. Tapping the health card immediately navigates to the interactive System Health \u0026amp; Setup Guide, where you can resolve any missing permissions in one tap. 2. Live Service Metrics # Below the health card, a responsive grid displays real-time telemetry from the running notification engine:\nMetric Description Expected State Service Status Live connection state of NotificationReaderService. Connected (Green). If disconnected, tap Reconnect to re-bind immediately. Selected Apps Number of applications enabled in your Hyper Bridge Library. Matches your enabled apps count. Floating Review Number of enabled apps pending review to optionally hide duplicate native pop-up banners. 0 (or tap to review in Floating Setup). Active Islands Number of notification islands currently active on the device screen. 0 when idle; increments dynamically when notifications arrive. Last Classification Domain category assigned to the most recent notification (MESSAGING, MEDIA, CALL, PROGRESS, or STANDARD). Reflects the category of your latest received alert. Last Call State State machine status of active phone or VoIP calls (INCOMING_RINGING, ONGOING, MISSED). Visible during active phone calls. Last Translator Displays the name of the Custom Translator rule matched against the latest notification. Shows custom rule name if matched; otherwise Default. 3. The Watchdog \u0026amp; Service Reconnect # Xiaomi\u0026rsquo;s aggressive MIUI/HyperOS background process killer can occasionally terminate long-running notification listener services.\nHyper Bridge incorporates an internal Listener Watchdog:\nAutomatic Reconnection: Whenever you unlock your phone or launch Hyper Bridge, the watchdog verifies the listener connection and re-binds NotificationReaderService if it was dropped by the OS. Manual \u0026ldquo;Reconnect Now\u0026rdquo; Button: If the Diagnostics screen reports Disconnected, tap the Reconnect icon button in the top bar. This forcibly cycles the Android notification listener component and re-establishes the connection without requiring a device reboot. 4. Live Diagnostic Events Stream # The bottom section of the screen presents an append-only timeline of recent internal events captured by DiagnosticsStore:\nflowchart TD N[\"Incoming Notification Event\"] --\u003e D[\"DiagnosticsStore Record\"] D --\u003e E1[\"ℹ️ INFO: Notification received from com.whatsapp\"] D --\u003e E2[\"🔍 MATCH: Custom Translator 'WhatsApp VIP' applied\"] D --\u003e E3[\"🎨 ISLAND: HyperIsland card published (Business ID: 4821)\"] D --\u003e E4[\"⏱️ TIMEOUT: Island dismissed after 6s float duration\"] Event Levels Explained # INFO (Blue): Normal operational events, such as notification receipt, media metadata updates, playback state changes, or island creation. WARN (Yellow): Non-fatal occurrences, such as an app being skipped due to missing floating notification confirmation, or an action slot index not found in the original notification. ERROR (Red): Failures that prevented an island from rendering, such as an invalid custom translator regex pattern, memory allocation limits, or an OS security rejection. 5. Exporting Diagnostics for Support # When requesting technical support in the community or filing a bug report:\nTap the Copy Diagnostics button in the Diagnostics screen header. Hyper Bridge exports an anonymized log including: Device model, Android OS version, and HyperOS build. Core permission flags. Active island telemetry. Chronological event timeline (timestamps, source packages, and status codes). Paste the diagnostic report into your GitHub issue or message. Privacy Guarantee: Diagnostic event logs only record package names, system state codes, and operational flags. The actual text bodies and sensitive content of your notifications are never logged or exported. Next Steps # Having trouble with permissions? Follow the System Setup \u0026amp; Health Guide. Need to report a persistent bug? Read the Bug Reporting Guide. ","externalUrl":null,"permalink":"/docs/troubleshooting/diagnostics/","section":"Documentation","summary":"The Diagnostics Screen in Hyper Bridge provides real-time visibility into the internal operating state of the bridge engine. It gives you instant insight into listener service connectivity, permission health, recent notification event streams, and translation statistics.\n","title":"Diagnostics \u0026 System Health Monitor","type":"docs"},{"content":"When you open Hyper Bridge for the first time, an intuitive 22-step visual onboarding wizard guides you through compatibility validation, essential Android permissions, background optimizations, and core island behaviors.\nThis guide walks you through every screen of the wizard with visual screenshots.\nTranslators \u0026amp; Community Note:\nLocalized screenshots for other languages are stored in /img/docs/onboarding/\u0026lt;lang\u0026gt;/. If you contribute translated documentation, you can supply screenshots matching your device language. Refer to the Translation Guide. 1. Welcome \u0026amp; Device Compatibility # Step 1: Welcome to Hyper Bridge — Seamlessly integrate HyperIslands into your HyperOS experience. Step 1: Welcome # Tap Get Started to begin the initial onboarding workflow.\nStep 2: Automated HyperOS / MIUI detection confirms your system capabilities. Step 2: Compatibility Verification # Hyper Bridge inspects your device hardware and software version:\nDevice Model: Identifies your Xiaomi, Redmi, or POCO device (e.g. Xiaomi 13T). System Version: Confirms Xiaomi HyperOS (OS1, OS2, OS3) or MIUI environment. Tap Next to proceed. 2. Essential Android \u0026amp; HyperOS Permissions # To convert standard notifications into floating dynamic islands, Hyper Bridge requires three key system permissions.\nStep 3: Permission to post floating notifications and HyperIslands. Step 3: Show Island (POST_NOTIFICATIONS) # Allows Hyper Bridge to post the dynamic island notification onto your screen. Tap Grant Permission and confirm in the system prompt. Once enabled, the button turns into Permission Granted. Step 4: Grant notification listener access so Hyper Bridge can intercept music, maps, and chats. Step 4: Read Notifications (Notification Listener Service) # Hyper Bridge intercepts incoming notifications from apps you select (Spotify, Google Maps, WhatsApp, Telegram, Timers) to transform them into live islands. Tap Grant Permission → select Hyper Bridge in Android\u0026rsquo;s Notification Access system menu → enable Allow notification access. For more details, see the Notification Listener Guide. Step 5: Overlay permission required for the custom inline reply floating UI. Step 5: Display Over Other Apps (SYSTEM_ALERT_WINDOW) # Required to render the interactive quick inline reply overlay when tapping reply on an island notification. Tap Grant Permission → toggle Allow display over other apps. Step 6: Featured Notifications Check for HyperOS Focus permissions. Step 6: Featured Notifications Check # Verifies whether your HyperOS installation allows custom apps to access the privileged Xiaomi Island notification channel. If your ROM requires manual focus configuration, follow the instructions in the HyperOS Focus Permissions Guide. Step 7: Configure Autostart and remove battery restrictions to prevent HyperOS background kills. Step 7: Device Optimization (Autostart \u0026amp; Battery) # Xiaomi HyperOS features strict memory and background management. To ensure your islands never freeze or miss events:\nTap Allow Autostart: Enables Hyper Bridge to restart automatically on device reboot. Tap Disable Restrictions: Sets battery saver mode to No Restrictions. Read the complete Battery \u0026amp; Autostart Guide for troubleshooting. 3. Privacy, Architecture \u0026amp; Feature Overview # Step 8: Interactive notification preview and floating banner advice. Step 8: How it Works # Shows a live interactive call preview. Tip on Floating Banners: To avoid seeing both the default Android floating pop-up banner and the Xiaomi HyperIsland at the same time, you can selectively disable floating banner notifications in the target app\u0026rsquo;s system notification channel. (This is completely optional and never requires root or Shizuku). Step 9: Hyper Bridge is 100% offline — zero internet permissions. Step 9: 100% Offline \u0026amp; Secure # Hyper Bridge operates entirely on-device: zero internet permissions (android.permission.INTERNET is not requested). Your messages, contacts, media metadata, and personal data never leave your phone. Step 10: Introduction to Themes and System Widgets. Step 10: Personalization Capabilities # Hyper Bridge introduces you to the visual customization tools:\nThemes: Full control over highlight colors, icon shape masks (cookie, squircle, clover8), and call controls. Widgets: Ability to mount standard Android home-screen widgets (clocks, battery bars, Spotify cards) directly into the HyperIsland. 4. Active Triggers Configuration # Step 11: Configure global notification triggers. Step 12: Select notification categories to route through Hyper Bridge. Steps 11 \u0026amp; 12: Active Triggers # Tap Configure to select which system event categories spawn dynamic islands:\nMessages \u0026amp; General: Alerts, emails, and system notifications. Messages \u0026amp; Chats: Real-time conversations and messaging apps. Downloads \u0026amp; Progress: Ongoing file transfers, downloads, and progress bars. Music \u0026amp; Media: Audio playback controls and album artwork. Maps \u0026amp; GPS: Turn-by-turn navigation arrows and ETA updates. Calls: Incoming and ongoing phone calls with answer/decline controls. Timers \u0026amp; Alarms: Active stopwatches and countdown timers. 5. Island Engine Configuration # Hyper Bridge supports two rendering engines tailored to different ROM variants:\nStep 13: Xiaomi Featured Design mode for Global \u0026amp; EEA ROMs. Step 14: Live Update Design mode for CN ROMs and native notification cards. Step 15: Select your preferred rendering pipeline. Steps 13 – 15: Engine Selection # Xiaomi Featured Design (Recommended for Global/EEA): Renders the full modern Xiaomi HyperOS HyperIsland with rich card layouts, status pills, and expressive animations. Live Update Design (Recommended for CN ROMs): Utilizes native Android notification channels and Live Update designs to bypass CN ROM system UI restrictions without Shizuku. 6. Island Queue \u0026amp; Dismissal Rules # Step 16: Configure how multiple concurrent notifications are queued. Step 17: Choose queue priority strategy. Steps 16 \u0026amp; 17: Multi-Notification Queue # Tap Configure to define how Hyper Bridge manages simultaneous notifications:\nMost Recent (Default): Newer notifications immediately replace older ones in the active island. First Come, First Served: Keeps the first 9 apps active, queueing new arrivals until space opens. Custom Priority: Prioritizes specific high-value categories (e.g. phone calls and navigation always outrank chats). Step 18: Notification lifecycle and synchronization rules. Step 18: Notification Lifecycle Rules # Remove original notification: Automatically dismisses the original Android notification when a Live Update is active. Dismiss with original: When you swipe away a notification in the notification shade, the corresponding island immediately collapses and dismisses. Enable inline reply: Enables the quick floating reply box directly from the island. Show in Shade: Keep notifications visible in the drop-down notification shade in addition to the floating island. 7. Do Not Disturb, Timeouts \u0026amp; Permanent Island # Step 19: Island behavior during Do Not Disturb. Step 19: Do Not Disturb (DND) # Auto-detect System DND: When enabled, automatically pauses all island popups while your device is in Do Not Disturb mode. Pause Islands: Manual toggle to silence all island popups temporarily without altering system settings. Step 20: Configure island float timeout. Step 20: Auto-hide Timeout # Auto-hide Island: When toggled on, the expanded dynamic island automatically collapses into a compact pill after a user-defined delay (default 10 seconds). Adjust the interactive slider to fit your preference (from 5 seconds up to 60 seconds). Step 21: Permanent Island idle pill option. Step 22: Configure the idle island width around your camera cutout. Steps 21 \u0026amp; 22: Permanent Island # Want your camera punch hole to always look like an integrated dynamic island even when no music is playing and no notifications are active?\nToggle Permanent Island on. Use the Island Width slider to calibrate the width of the black pill to match your device\u0026rsquo;s camera hole perfectly. Tap Finish to complete the setup wizard! Next Steps # Congratulations! Hyper Bridge is now fully configured and actively running.\nManaging \u0026amp; Enabling Apps: Choose which apps trigger dynamic islands and enable auto-bridging. Native System Apps \u0026amp; Options: Configure Screen Recording, System Update, and VPN islands. Design Studio \u0026amp; Hub: Customize colors, styles, and templates. System Widgets Guide: Add widgets from your favorite apps. Custom Translators Guide: Create custom notification rules with regex matching and smart actions. Troubleshooting \u0026amp; Diagnostics: Test permissions and inspect active system states. ","externalUrl":null,"permalink":"/docs/getting-started/first-steps/","section":"Documentation","summary":"When you open Hyper Bridge for the first time, an intuitive 22-step visual onboarding wizard guides you through compatibility validation, essential Android permissions, background optimizations, and core island behaviors.\nThis guide walks you through every screen of the wizard with visual screenshots.\n","title":"First Steps \u0026 Onboarding Wizard","type":"docs"},{"content":"On HyperOS, dynamic islands require the Featured Notifications (also known as Focus Notifications) permission.\nIf you don\u0026rsquo;t see dynamic islands appearing around the camera punch-hole, this permission is almost always the reason! Note: This page is currently Work in Progress. Steps to Enable # Work in Progress\n","externalUrl":null,"permalink":"/docs/permissions/hyperos-focus-permissions/","section":"Documentation","summary":"On HyperOS, dynamic islands require the Featured Notifications (also known as Focus Notifications) permission.\nIf you don’t see dynamic islands appearing around the camera punch-hole, this permission is almost always the reason! Note: This page is currently Work in Progress. Steps to Enable # Work in Progress\n","title":"HyperOS Focus Notifications","type":"docs"},{"content":" Common Issues \u0026amp; Fixes # Islands disappear after locking screen # Fix: Whitelist HyperBridge in the Xiaomi Security app by setting Autostart to Allowed and Battery saver to No restrictions. Smartwatch notifications stopped working # Fix: In HyperBridge settings, ensure Remove original notification is disabled. Chinese (CN) ROM not displaying islands # Fix: Set up Shizuku and toggle the Shizuku workaround in HyperBridge Theme Editor Engine settings. ","externalUrl":null,"permalink":"/docs/troubleshooting/known-issues/","section":"Documentation","summary":"Common Issues \u0026 Fixes # Islands disappear after locking screen # Fix: Whitelist HyperBridge in the Xiaomi Security app by setting Autostart to Allowed and Battery saver to No restrictions. Smartwatch notifications stopped working # Fix: In HyperBridge settings, ensure Remove original notification is disabled. Chinese (CN) ROM not displaying islands # Fix: Set up Shizuku and toggle the Shizuku workaround in HyperBridge Theme Editor Engine settings. ","title":"Known Issues \u0026 HyperOS Quirks","type":"docs"},{"content":"Hyper Bridge includes native system island adapters for essential HyperOS and Android platform services: Screen Recording, System Updates, and VPN connections. These system modules have specialized layouts, live timers, progress bars, and custom side display configurations.\nYou can access and configure each system app directly from the Active Apps list (under the System filter chip) by tapping the gear icon next to the corresponding service.\n1. Screen Recording Island # The Screen Recording island provides a sleek live status pill during active screen captures, showing a recording indicator, customizable message, and live elapsed timer.\nLive preview and configuration options for the Screen Recording island. Configuration Options # Preview: An interactive live preview of how the dynamic island looks while screen capture is active. Left Side: Determines what information is displayed on the left of the camera cutout. Right Side: Determines what appears on the right side of the camera cutout. Auto-hide Island: Controls whether the island auto-hides after recording completes. Completion Checkmark Duration: Adjust how long (e.g. 4s) the completion checkmark remains visible on screen once you stop recording before the island collapses. Customizing Left \u0026amp; Right Sides # Tap on Left Side or Right Side to select the presentation style:\nLeft Side options: Icon only, Icon and message, or Message only. Icon only: Displays only the red recording pulse dot/icon. Icon and message (Default): Displays both the icon and text indicator (Recording...). Message only: Shows only the text message. Right Side options: Live Timer or Nothing. Timer (Default): Shows an accurate live elapsed stopwatch timer (MM:SS). Nothing: Leaves the right side empty for a minimalist compact island. 2. System Update Island # The System Update island surfaces download progress for HyperOS OTA updates and system packages, keeping you informed without taking over your notification shade.\nSystem Update island live preview, left/right layouts, icon source, and timeout. Configuration Options # Preview: Shows the live OTA progress with package version and percentage download. Left Side: Configures the update icon and OS version label. Right Side: Configures the numeric percentage or circular progress indicator. Icon: Choose the icon source displayed in the island. Auto-hide Island: Completion Checkmark Duration: Set how long (e.g. 4s) the completion indicator stays visible after the update finishes downloading. Layout \u0026amp; Icon Customization # Left Side options: Icon and version, Icon only, or Version only. Icon and version (Default): Displays the download arrow alongside the target OS version number (e.g., 3.0.304.0). Icon only: Displays only the update arrow icon. Version only: Displays the version string only. Right Side options: Percentage, Progress circle, or Nothing. Percentage (Default): Shows exact numeric progress (e.g., 17%). Progress circle: Renders a circular animated progress ring. Nothing: Keeps the right side blank for an ultra-compact pill. Select icon source: Default notification icon, Package app icon, System update icon, or Download icon. Default notification icon: Uses the icon provided in the original notification. Package app icon: Pulls the official system updater app icon. System update icon: Uses the dedicated HyperOS system update glyph. Download icon: Uses a universal downward download arrow icon. 3. VPN Island \u0026amp; Global Settings # In addition to Screen Recording and System Updates, HyperOS system services like VPN can be monitored dynamically:\nWhen a VPN connection starts or establishes a tunnel, the VPN island displays the active status icon and network status. You can manage whether system services auto-hide or remain pinned using Global Settings (Settings \u0026gt; Global Settings). Next Steps # Dynamic Island Engine: Learn how notifications and system events are mapped into HyperIslands. Design Hub \u0026amp; Custom Themes: Customize colors, shapes, and layouts across all your islands. ","externalUrl":null,"permalink":"/docs/features/system-apps/","section":"Documentation","summary":"Hyper Bridge includes native system island adapters for essential HyperOS and Android platform services: Screen Recording, System Updates, and VPN connections. These system modules have specialized layouts, live timers, progress bars, and custom side display configurations.\n","title":"Native System Apps \u0026 Options","type":"docs"},{"content":" Note: This page is currently Work in Progress. When Shizuku is authorized, Hyper Bridge gains access to advanced system capabilities:\nCN ROM Compatibility: Work in Progress. ","externalUrl":null,"permalink":"/docs/shizuku/privileged-features/","section":"Documentation","summary":" Note: This page is currently Work in Progress. When Shizuku is authorized, Hyper Bridge gains access to advanced system capabilities:\n","title":"Privileged Features Overview","type":"docs"},{"content":"Smart Actions supercharge your notifications by automatically detecting actionable entities—such as 2FA verification codes, street addresses, map links, phone numbers, and package tracking numbers—and injecting contextual 1-tap action buttons directly onto the HyperIsland (HyperIsland) and notification shade.\nInstead of switching apps or memorizing codes, you can copy an OTP, jump into your preferred navigation app, or call a driver with a single tap.\nSupported Smart Action Types # Hyper Bridge features an intelligent, multi-language entity extractor supporting five distinct action categories:\nflowchart LR N[\"Notification Text\"] --\u003e E[\"SmartActionsExtractor\"] E --\u003e OTP[\"🔐 OTP / 2FA Codes\"] E --\u003e NAV[\"🧭 Directions \u0026 Maps\"] E --\u003e TRK[\"📦 Package Tracking\"] E --\u003e URL[\"🔗 Web Links\"] E --\u003e TEL[\"📞 Phone Numbers\"] OTP --\u003e B1[\"'Copy Code' Button\"] NAV --\u003e B2[\"'Directions' Button\"] TRK --\u003e B3[\"'Track Package' Button\"] URL --\u003e B4[\"'Open Link' Button\"] TEL --\u003e B5[\"'Call' Button\"] 1. One-Time Passwords (OTP / 2FA) # What it does: Detects authentication codes and security tokens (4 to 8 digits) in SMS and chat notifications. Action: Injects a \u0026ldquo;Copy Code\u0026rdquo; button that copies the code directly to your system clipboard and shows a quick confirmation toast. Privacy Mode: Enable \u0026ldquo;Hide OTP Code\u0026rdquo; in settings so the code itself is never displayed in plaintext on the island or status bar—only the \u0026ldquo;Copy Code\u0026rdquo; button appears. 2. Navigation \u0026amp; Directions # Shared Map Links: Automatically detects location links from Google Maps (including maps.app.goo.gl and goo.gl/maps short links), Apple Maps, Waze, OpenStreetMap, HERE WeGo, Bing Maps, Mapy.cz, Yandex, Baidu, and raw geo: URIs. Street Addresses: Intelligent multilingual address parser detecting street names and numbers across: English \u0026amp; International: \u0026quot;221B Baker Street\u0026quot;, \u0026quot;10 Downing St\u0026quot;. Spanish, Galician, Catalan: \u0026quot;Calle Mayor 12\u0026quot;, \u0026quot;Rúa do Vilar 5\u0026quot;, \u0026quot;Av. Diagonal nº 640\u0026quot;. French: \u0026quot;12 rue de la Paix\u0026quot;, \u0026quot;Avenue des Champs-Élysées 45\u0026quot;. Italian: \u0026quot;Via Roma 3\u0026quot;, \u0026quot;Corso Italia 18\u0026quot;. German \u0026amp; Dutch: \u0026quot;Hauptstraße 5\u0026quot;, \u0026quot;Kalverstraat 92\u0026quot; (with context or postal code validation). Action: Injects a \u0026ldquo;Directions\u0026rdquo; button that opens a geo:0,0?q= search or direct map URI, letting Android present your installed navigation apps (Google Maps, Waze, OsmAnd). 3. Package Tracking # What it does: Scans delivery notifications for carrier tracking identifiers (e.g. DHL, FedEx, UPS, USPS, Correos, Amazon, and regional couriers). Action: Injects a \u0026ldquo;Track Package\u0026rdquo; button labeled with the detected carrier name, opening the carrier\u0026rsquo;s live tracking portal with your tracking number pre-filled. 4. Web Links (URLs) # What it does: Identifies URLs shared in chat messages or alerts (excluding map links, which are intelligently routed to the Navigation action). Action: Injects an \u0026ldquo;Open Link\u0026rdquo; button to view the page in your default browser. 5. Phone Numbers # What it does: Detects international and local phone numbers formatted in national and E.164 styles (e.g., +34 612 345 678 or (555) 234-5678). Action: Injects a \u0026ldquo;Call\u0026rdquo; button that launches your phone dialer with the number pre-loaded. Precedence \u0026amp; Action Limits # To keep the HyperIsland clean, ergonomic, and readable, Smart Actions follow strict priority rules:\nExtraction Precedence: When multiple entities appear in a single message (e.g. an address and a website URL), entities are ranked in priority order: $$\\text{OTP} \\succ \\text{Package Tracking} \\succ \\text{Navigation} \\succ \\text{Web Links} \\succ \\text{Phone Numbers}$$ Navigation over Generic URLs: If a notification contains a Google Maps or Waze link, the Navigation extractor claims it first. You receive a dedicated \u0026ldquo;Directions\u0026rdquo; button rather than a redundant \u0026ldquo;Open Link\u0026rdquo; button. Action Button Cap: Smart Actions are capped at 2 buttons per notification to avoid crowding original app actions. Privacy \u0026amp; Security Guarantees # Smart Actions are built with strict local-first privacy principles:\n100% On-Device Processing: The entity extraction engine is written in pure Kotlin and executes entirely on your device. Notification text is never sent to cloud servers, remote APIs, or third-party NLP models. Zero Overhead When Disabled: Smart Actions is disabled by default. When turned off, the engine never scans or evaluates incoming notification text, incurring 0% CPU overhead. No Internet Permission: Hyper Bridge does not request or possess the android.permission.INTERNET permission, making data transmission technically impossible. Granular Per-App Privacy Overrides: You can disable Smart Actions globally, exclude specific apps entirely (e.g. sensitive banking or enterprise apps), or turn off specific types (like OTP) for particular apps while keeping them active elsewhere. Configuring Smart Actions # Global Settings # In the Hyper Bridge app, navigate to Settings → Smart Actions:\nMaster Toggle: Enable or disable Smart Actions globally. Category Toggles: Selectively enable or disable OTP, Directions, Package Tracking, Web Links, or Phone Numbers. Hide OTP Code: Prevent verification codes from displaying on the lock-safe status bar or expanded island. Per-App Privacy Overrides # You can customize Smart Actions behavior for any specific application:\nGo to Library or Active tabs on the home screen and tap the gear/settings icon on any app card. Tap the Smart Actions menu item. Toggle Smart Actions specifically for that application or disable specific types (e.g., turn off OTP scanning for banking apps while keeping links and parcel tracking active). Granular per-app Smart Action toggles: Verification codes / OTP, Links, Phone numbers, Parcel tracking, and Directions. Integration with Custom Translators # If you are using the Custom Translators Framework, you can explicitly bind any action button slot to Smart Actions:\n{ \u0026#34;slot_position\u0026#34;: 0, \u0026#34;is_visible\u0026#34;: true, \u0026#34;source\u0026#34;: \u0026#34;SMART_ACTION\u0026#34;, \u0026#34;smart_action_type\u0026#34;: \u0026#34;OTP_COPY\u0026#34;, \u0026#34;display_mode\u0026#34;: \u0026#34;ICON_AND_TEXT\u0026#34;, \u0026#34;custom_label\u0026#34;: \u0026#34;Copy Code\u0026#34; } Available smart_action_type targets in Custom Translators:\nOTP_COPY: Injects 1-tap clipboard code copying. OPEN_URL: Opens extracted web links. DIAL_NUMBER: Launches dialer for extracted contact numbers. TRACK_PACKAGE: Opens the carrier tracking page. For detailed schema specifications, see the Translators Technical Specification.\nMissing Your Language? # Detection relies on keyword lists (words like \u0026ldquo;code\u0026rdquo;, \u0026ldquo;Calle\u0026rdquo;, \u0026ldquo;Straße\u0026rdquo;). If codes or addresses in your language aren\u0026rsquo;t picked up, see Adding Smart Actions Support for Your Language.\n","externalUrl":null,"permalink":"/docs/features/smart-actions/","section":"Documentation","summary":"Smart Actions supercharge your notifications by automatically detecting actionable entities—such as 2FA verification codes, street addresses, map links, phone numbers, and package tracking numbers—and injecting contextual 1-tap action buttons directly onto the HyperIsland (HyperIsland) and notification shade.\n","title":"Smart Actions \u0026 Context Buttons","type":"docs"},{"content":"This specification defines the packaging format and Android integration contract for distributing standalone Hyper Bridge Theme Packages (.hbr or .htheme).\nIt is intended for third-party Android theme developers, icon pack authors, and modders building automated distribution pipelines or companion apps.\nLooking for the in-app visual theme creator?\nSee the Themes \u0026amp; Visual Styles Guide to build themes directly on your device. 1. Package File Structure # Themes are distributed as standard ZIP archives renamed with the .hbr or .htheme file extension. The archive must follow this directory layout at root:\nmy_theme_project/ ├── theme_config.json \u0026lt;-- Brain (Metadata, colors, masks, rules) ├── icons/ \u0026lt;-- Action icons (48x48px PNG recommended) │ ├── ic_reply.png │ ├── ic_archive.png │ └── ic_heart.png ├── status/ \u0026lt;-- Progress \u0026amp; Navigation icons │ ├── nav_arrow.png │ └── download_tick.png ├── translators/ \u0026lt;-- Bundled Custom Translators (.htrans or .json) │ ├── spotify_enhanced.htrans │ └── whatsapp_vip.json └── global/ \u0026lt;-- Backgrounds or overlays (Optional) └── island_glow.png To create the package:\nCompress all files directly at the archive root (do not nest them inside an extra parent folder). Rename the resulting .zip file to .hbr (e.g. neon_cyberpunk.hbr) or .htheme. 2. Bundling Custom Translators # Themes can distribute tailored notification behaviors alongside visual styling:\nWhen Hyper Bridge installs an .hbr package, its installer automatically inspects the translators/ directory. Any .htrans ZIP packages (containing translator.json and custom icons) or .json translator definitions are automatically imported into the user\u0026rsquo;s database. Translators bundled with themes can leverage the theme\u0026rsquo;s highlight colors, override default notification actions, and select specialized Island Templates. See the Translators Technical Specification for complete schema documentation.\n3. Configuration Schema (theme_config.json) # The theme_config.json file controls colors, geometric masks, call styles, and application-specific overrides.\n{ \u0026#34;id\u0026#34;: \u0026#34;acquatheme\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;Neon Cyberpunk\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;PixelMaster\u0026#34;, \u0026#34;version\u0026#34;: 2, \u0026#34;description\u0026#34;: \u0026#34;A high contrast neon theme with custom shapes and smart rules.\u0026#34; }, \u0026#34;global\u0026#34;: { \u0026#34;highlight_color\u0026#34;: \u0026#34;#00FFDD\u0026#34;, \u0026#34;background_color\u0026#34;: \u0026#34;#202124\u0026#34;, \u0026#34;text_color\u0026#34;: \u0026#34;#FFFFFF\u0026#34;, \u0026#34;use_app_colors\u0026#34;: false, // If true, dynamic colors from app icon override highlight_color \u0026#34;icon_shape_id\u0026#34;: \u0026#34;cookie\u0026#34;, // Options: circle, square, squircle, cookie, arch, clover8 \u0026#34;icon_padding_percent\u0026#34;: 15 }, \u0026#34;call_config\u0026#34;: { \u0026#34;answer_color\u0026#34;: \u0026#34;#34C759\u0026#34;, \u0026#34;decline_color\u0026#34;: \u0026#34;#FF3B30\u0026#34;, \u0026#34;answer_shape_id\u0026#34;: \u0026#34;circle\u0026#34;, // Shape override for answer button \u0026#34;decline_shape_id\u0026#34;: \u0026#34;circle\u0026#34;, // Shape override for decline button \u0026#34;answer_icon\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;icons/call_answer.png\u0026#34; }, \u0026#34;decline_icon\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;icons/call_decline.png\u0026#34; } }, \u0026#34;default_actions\u0026#34;: { \u0026#34;reply\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;ICON\u0026#34;, // Options: ICON, TEXT, BOTH \u0026#34;background_color\u0026#34;: \u0026#34;#3300FFDD\u0026#34;,// Hex color for button background \u0026#34;tint_color\u0026#34;: \u0026#34;#00FFDD\u0026#34;, // Hex color for icon/text tint \u0026#34;icon\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;icons/ic_reply.png\u0026#34; } }, \u0026#34;archive\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;ICON\u0026#34;, \u0026#34;icon\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;icons/ic_archive.png\u0026#34; } } }, \u0026#34;default_progress\u0026#34;: { \u0026#34;active_color\u0026#34;: \u0026#34;#FF0099\u0026#34;, \u0026#34;finished_color\u0026#34;: \u0026#34;#34C759\u0026#34;, \u0026#34;show_percentage\u0026#34;: true, \u0026#34;active_icon\u0026#34;: { // Icon displayed while progress is running \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;status/downloading.png\u0026#34; }, \u0026#34;finished_icon\u0026#34;: { // Icon displayed when progress completes \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;status/download_tick.png\u0026#34; } }, \u0026#34;default_navigation\u0026#34;: { \u0026#34;progress_bar_color\u0026#34;: \u0026#34;#00FFDD\u0026#34;, \u0026#34;swap_sides\u0026#34;: false, \u0026#34;pic_forward\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;nav/arrow_straight.png\u0026#34; }, \u0026#34;pic_end\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;nav/destination_flag.png\u0026#34; } }, \u0026#34;apps\u0026#34;: { \u0026#34;com.whatsapp\u0026#34;: { \u0026#34;highlight_color\u0026#34;: \u0026#34;#25D366\u0026#34;, // App-specific override \u0026#34;actions\u0026#34;: { \u0026#34;reply\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;BOTH\u0026#34;, \u0026#34;tint_color\u0026#34;: \u0026#34;#FFFFFF\u0026#34;, \u0026#34;background_color\u0026#34;: \u0026#34;#25D366\u0026#34;, \u0026#34;icon\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;LOCAL_FILE\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;icons/ic_reply_whatsapp.png\u0026#34; } } } } } } 4. Programmatic Theme Installation (Android Intent API) # Companion apps, icon packs, and theme managers can install themes directly into Hyper Bridge using an Android Intent. The user will see Hyper Bridge launch and present a 1-tap confirmation preview sheet.\nIntent Contract # Property Value Action com.d4viddf.hyperbridge.APPLY_THEME MIME Type application/zip or application/octet-stream Data URI Content URI pointing to the .hbr / .zip file via Android FileProvider Flags FLAG_GRANT_READ_URI_PERMISSION, FLAG_ACTIVITY_NEW_TASK Kotlin Implementation # import android.content.Context import android.content.Intent import androidx.core.content.FileProvider import java.io.File fun applyThemeToHyperBridge(context: Context) { try { // 1. Locate theme file in cache or assets val themeFile = File(context.cacheDir, \u0026#34;neon_theme.hbr\u0026#34;) if (!themeFile.exists()) { context.assets.open(\u0026#34;neon_theme.hbr\u0026#34;).use { input -\u0026gt; themeFile.outputStream().use { output -\u0026gt; input.copyTo(output) } } } // 2. Obtain content URI via FileProvider val uri = FileProvider.getUriForFile( context, \u0026#34;${context.packageName}.provider\u0026#34;, themeFile ) // 3. Dispatch the intent val intent = Intent(\u0026#34;com.d4viddf.hyperbridge.APPLY_THEME\u0026#34;).apply { setDataAndType(uri, \u0026#34;application/zip\u0026#34;) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } context.startActivity(intent) } catch (e: Exception) { e.printStackTrace() } } Flutter Implementation # Using android_intent_plus:\nimport \u0026#39;dart:io\u0026#39;; import \u0026#39;package:android_intent_plus/android_intent.dart\u0026#39;; import \u0026#39;package:path_provider/path_provider.dart\u0026#39;; Future\u0026lt;void\u0026gt; applyTheme() async { final dir = await getTemporaryDirectory(); final filePath = \u0026#39;${dir.path}/neon_theme.hbr\u0026#39;; final intent = AndroidIntent( action: \u0026#39;com.d4viddf.hyperbridge.APPLY_THEME\u0026#39;, type: \u0026#39;application/zip\u0026#39;, data: Uri.parse(\u0026#39;content://$filePath\u0026#39;).toString(), flags: \u0026lt;int\u0026gt;[ 0x00000001, // FLAG_GRANT_READ_URI_PERMISSION 0x10000000, // FLAG_ACTIVITY_NEW_TASK ], ); await intent.launch(); } 5. Next Steps # Explore the Translators Technical Specification to build advanced notification rules bundled in your themes. Learn about Smart Actions to add copy OTP or quick-reply chips. ","externalUrl":null,"permalink":"/docs/advanced/theme-packaging-spec/","section":"Documentation","summary":"This specification defines the packaging format and Android integration contract for distributing standalone Hyper Bridge Theme Packages (.hbr or .htheme).\nIt is intended for third-party Android theme developers, icon pack authors, and modders building automated distribution pipelines or companion apps.\n","title":"Theme Packaging Specification (.hbr / .htheme)","type":"docs"},{"content":"Thank you for your interest in making Hyper Bridge accessible to users worldwide!\nThis guide explains how to translate the website and documentation hosted on GitHub: HyperBridge-Site.\nTranslating the Android App vs. the Website:\nAndroid App Strings: Translated via our Crowdin Project. Website \u0026amp; Documentation: Translated directly via Pull Requests on GitHub (HyperBridge-Site). 1. How Multilingual Content Works # HyperBridge-Site is built with Hugo and the Blowfish theme. Hugo handles multiple languages using language-specific filename suffixes (.\u0026lt;lang\u0026gt;.md).\nThe default language of the site is English (en).\nFile Naming Convention # To create a translation of any document, create a file with the same base name and the target ISO 639-1 language code before .md:\nEnglish Original (Source) Translated File (Example: Spanish es) Translated File (Example: German de) content/_index.md content/_index.es.md content/_index.de.md content/docs/_index.md content/docs/_index.es.md content/docs/_index.de.md content/docs/getting-started/installation.md content/docs/getting-started/installation.es.md content/docs/getting-started/installation.de.md content/privacy/_index.md content/privacy/_index.es.md content/privacy/_index.de.md 2. Quick Start Workflow # Follow these steps to contribute a translation via Git:\nStep 1: Fork \u0026amp; Clone the Repository # # Clone your fork (make sure submodules are initialized for Blowfish theme) git clone --recurse-submodules https://github.com/\u0026lt;your-username\u0026gt;/HyperBridge-Site.git cd HyperBridge-Site Step 2: Run the Hugo Development Server # Make sure you have Hugo Extended installed (hugo version should show extended).\n# Start local development server with drafts and live reloading hugo server -D Open your browser at http://localhost:1313/ (or http://localhost:1313/\u0026lt;lang\u0026gt;/ to preview your language).\nStep 3: Add or Edit Translated Files # Copy the English file you want to translate (e.g. content/docs/permissions/notification-listener.md). Save it as notification-listener.\u0026lt;lang\u0026gt;.md in the same directory (e.g. notification-listener.es.md). Translate the Markdown content and front matter while keeping weights and structure intact. Step 4: Commit and Submit a PR # git checkout -b docs/translate-permissions-es git add content/docs/permissions/notification-listener.es.md git commit -m \u0026#34;docs(i18n): add Spanish translation for notification-listener\u0026#34; git push origin docs/translate-permissions-es Open a Pull Request on D4vidDf/HyperBridge-Site.\n3. Front Matter Rules # Every Markdown file begins with YAML front matter enclosed by ---. When translating, adapt the text fields while preserving structural and navigation variables:\n--- title: \u0026#34;Guía de Permisos de Notificación\u0026#34; # Translated page title description: \u0026#34;Cómo habilitar el acceso a...\u0026#34; # Translated page summary/meta description weight: 10 # MUST match the English page\u0026#39;s weight showTableOfContents: true # Keep identical to source --- Important: Do not change the weight parameter between language versions. The navigation menu and sidebar order rely on matching weights across translations. 4. Using Custom \u0026amp; Localized Images # Visual explanations and screenshots may feature localized Android or HyperOS interfaces. You can easily supply language-specific images for your translations.\nMethod A: Shared Assets Directory (Recommended) # Place localized images inside assets/img/docs/\u0026lt;lang\u0026gt;/ or static/img/docs/\u0026lt;lang\u0026gt;/:\nassets/ └── img/ ├── hero.png # Default English hero image └── docs/ ├── permissions-en.png # English screenshot ├── es/ │ └── permissions.png # Spanish screenshot └── de/ └── permissions.png # German screenshot In Markdown / Shortcode: # Standard Markdown image:\n![Configuración de Permisos](/img/docs/es/permissions.png) Blowfish figure shortcode (recommended for captions, zooming, and styling):\n{{\u0026lt; figure src=\u0026#34;/img/docs/es/permissions.png\u0026#34; alt=\u0026#34;Configuración del servicio de escucha de notificaciones\u0026#34; caption=\u0026#34;Paso 1: Concede acceso al servicio Hyper Bridge\u0026#34; \u0026gt;}} Method B: Page Bundle Assets (Leaf Bundles) # If a documentation section is organized as a leaf bundle directory:\ncontent/docs/getting-started/installation/ ├── index.md # English content ├── index.es.md # Spanish content ├── step-1.png # Default English image └── step-1.es.png # Localized Spanish image In index.es.md, you can directly reference the localized asset:\n![Paso 1](step-1.es.png) Method C: Localized Hero Image in Front Matter # For pages with hero headers (such as the landing page or section headers):\n--- title: \u0026#34;Hyper Bridge\u0026#34; heroCaption: \u0026#34;Expande tu HyperIsland\u0026#34; heroLead: \u0026#34;Desbloquea el sistema nativo de notificaciones visuales de HyperOS.\u0026#34; heroImage: \u0026#34;img/es/hero.png\u0026#34; # Path to localized hero image --- 5. Theme Components \u0026amp; Shortcodes # HyperBridge-Site uses Blowfish shortcodes and custom components. Preserve shortcode markup and translate only the inner text and user-facing parameters.\nAlerts / Callouts (alert) # Used to highlight tips, warnings, or notes:\n{{\u0026lt; alert icon=\u0026#34;lightbulb\u0026#34; \u0026gt;}} **Consejo:** Asegúrate de desactivar las restricciones de ahorro de batería. {{\u0026lt; /alert \u0026gt;}} {{\u0026lt; alert icon=\u0026#34;triangle-exclamation\u0026#34; \u0026gt;}} **Advertencia:** No fuerces el cierre del servicio en segundo plano. {{\u0026lt; /alert \u0026gt;}} Custom Alert Colors # Our custom alert shortcode supports optional color parameters:\n{{\u0026lt; alert icon=\u0026#34;shield\u0026#34; cardColor=\u0026#34;#1e293b\u0026#34; iconColor=\u0026#34;#38bdf8\u0026#34; textColor=\u0026#34;#f8fafc\u0026#34; \u0026gt;}} Procesamiento 100% local y privado. {{\u0026lt; /alert \u0026gt;}} Stats (stats and stat) # Used for highlight metrics on landing pages:\n{{\u0026lt; stats columns=\u0026#34;2\u0026#34; \u0026gt;}} {{\u0026lt; stat value=\u0026#34;1M+\u0026#34; label=\u0026#34;Descargas\u0026#34; \u0026gt;}} Confiado por usuarios en todo el mundo en Google Play y GitHub. {{\u0026lt; /stat \u0026gt;}} {{\u0026lt; stat value=\u0026#34;100%\u0026#34; label=\u0026#34;Offline y Privado\u0026#34; \u0026gt;}} Se ejecuta enteramente en el dispositivo sin telemetría. {{\u0026lt; /stat \u0026gt;}} {{\u0026lt; /stats \u0026gt;}} Feature Grid (feature-grid and feature) # Used to display feature cards:\n{{\u0026lt; feature-grid \u0026gt;}} {{\u0026lt; feature icon=\u0026#34;wand-magic-sparkles\u0026#34; title=\u0026#34;Isla Dinámica para HyperOS\u0026#34; \u0026gt;}} Conecta las notificaciones estándar de Android con la Super Isla nativa de Xiaomi HyperOS. {{\u0026lt; /feature \u0026gt;}} {{\u0026lt; feature icon=\u0026#34;shield\u0026#34; title=\u0026#34;Privacidad y Seguridad\u0026#34; \u0026gt;}} Tus datos nunca salen de tu teléfono. {{\u0026lt; /feature \u0026gt;}} {{\u0026lt; /feature-grid \u0026gt;}} Steps \u0026amp; Procedures (steps and step) # For ordered tutorials and installation instructions:\n{{\u0026lt; steps \u0026gt;}} {{\u0026lt; step \u0026gt;}} #### Instala la Aplicación Descarga Hyper Bridge desde Google Play o GitHub Releases. {{\u0026lt; /step \u0026gt;}} {{\u0026lt; step \u0026gt;}} #### Concede los Permisos Habilita el Acceso a Notificaciones en los Ajustes del Sistema. {{\u0026lt; /step \u0026gt;}} {{\u0026lt; /steps \u0026gt;}} Tabs (tabs and tab) # For multi-platform or alternative methods:\n{{\u0026lt; tabs \u0026gt;}} {{\u0026lt; tab name=\u0026#34;Google Play\u0026#34; \u0026gt;}} Descarga directa con actualizaciones automáticas. {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab name=\u0026#34;GitHub APK\u0026#34; \u0026gt;}} Descarga el archivo APK más reciente desde Releases. {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; /tabs \u0026gt;}} Badges, Lead Text \u0026amp; Icons # Lead paragraph: {{\u0026lt; lead \u0026gt;}}Texto destacado de introducción{{\u0026lt; /lead \u0026gt;}} Badges: {{\u0026lt; badge \u0026gt;}}Recomendado{{\u0026lt; /badge \u0026gt;}} Icons: {{\u0026lt; icon \u0026quot;check\u0026quot; \u0026gt;}} (Accepts any standard FontAwesome icon identifier like wand-magic-sparkles, bell, shield, code, lightbulb). 6. Configuring a New Language # If you are adding a completely new language that isn\u0026rsquo;t configured yet:\n1. Add Language Configuration # Create config/_default/languages.\u0026lt;lang\u0026gt;.toml (e.g. languages.fr.toml):\nlocale = \u0026#34;fr\u0026#34; label = \u0026#34;Français\u0026#34; displayName = \u0026#34;Français\u0026#34; weight = 5 title = \u0026#34;Hyper Bridge\u0026#34; [params] displayName = \u0026#34;Français\u0026#34; isoCode = \u0026#34;fr\u0026#34; dateFormat = \u0026#34;2 January 2006\u0026#34; logo = \u0026#34;img/logo.svg\u0026#34; description = \u0026#34;Hyper Bridge déverrouille le système de notifications visuelles natif d\u0026#39;HyperOS.\u0026#34; copyright = \u0026#34;© 2026 D4vidDf. Tous droits réservés.\u0026#34; [params.author] name = \u0026#34;Hyper Bridge\u0026#34; image = \u0026#34;img/logo.svg\u0026#34; headline = \u0026#34;Étendez votre HyperIsland\u0026#34; bio = \u0026#34;Hyper Bridge déverrouille le système de notifications visuelles natif d\u0026#39;HyperOS.\u0026#34; links = [ { github = \u0026#34;https://github.com/D4vidDf/HyperBridge\u0026#34; }, { globe = \u0026#34;https://crowdin.com/project/hyperbridge\u0026#34; } ] 2. Add Localized Menus # Create config/_default/menus.\u0026lt;lang\u0026gt;.toml (e.g. menus.fr.toml):\n[[main]] name = \u0026#34;Documentation\u0026#34; pageRef = \u0026#34;docs\u0026#34; weight = 10 [[main]] name = \u0026#34;Notes de version\u0026#34; pageRef = \u0026#34;changelog\u0026#34; weight = 20 [[main]] name = \u0026#34;Confidentialité\u0026#34; pageRef = \u0026#34;privacy\u0026#34; weight = 22 [[main]] url = \u0026#34;https://play.google.com/store/apps/details?id=com.d4viddf.hyperbridge\u0026#34; weight = 25 pre = \u0026#34;google-play\u0026#34; title = \u0026#34;Google Play\u0026#34; [[main]] url = \u0026#34;https://github.com/D4vidDf/HyperBridge\u0026#34; weight = 30 pre = \u0026#34;github\u0026#34; title = \u0026#34;GitHub\u0026#34; 7. Style Guide \u0026amp; Terminology # To maintain high quality and consistency across translations, follow these terminology guidelines:\nEnglish Term Recommended Translation Guideline HyperIsland / HyperIsland Keep as brand name (or official localized Xiaomi HyperOS term). Smart Translators Translate descriptively (e.g. Traductores Inteligentes, Traducteurs intelligents). Notification Listener Refer to system service (e.g. Acceso a Notificaciones, Notification Listener). Shizuku Keep as tool name (Shizuku). HyperOS Keep as brand name (HyperOS). 8. Translation Contribution Checklist # Before opening your Pull Request, please check:\nFile is named \u0026lt;original-filename\u0026gt;.\u0026lt;lang\u0026gt;.md. Front matter weight matches the source English document. All internal links (/docs/...) are valid and work in the local preview (hugo server -D). Shortcodes (e.g. alert, feature, stats) are properly opened and closed. Custom images are placed in assets/img/docs/\u0026lt;lang\u0026gt;/ (or leaf bundles) and render cleanly. hugo server -D builds without errors or warnings in the terminal. Pull request has a descriptive title (e.g., docs(i18n): add German translation for getting-started). Need Help? # If you have questions about translating or setting up Hugo:\nOpen an issue or discussion on GitHub: HyperBridge-Site. Check the official Blowfish Documentation. ","externalUrl":null,"permalink":"/docs/contributing/translations/","section":"Documentation","summary":"Thank you for your interest in making Hyper Bridge accessible to users worldwide!\nThis guide explains how to translate the website and documentation hosted on GitHub: HyperBridge-Site.\nTranslating the Android App vs. the Website:\nAndroid App Strings: Translated via our Crowdin Project. Website \u0026 Documentation: Translated directly via Pull Requests on GitHub (HyperBridge-Site). ","title":"Website \u0026 Docs Translation Guide","type":"docs"},{"content":"Smart Actions find verification codes, addresses, links, phone numbers and parcel numbers in notification text. Numbers and links look the same everywhere, but the words around them don\u0026rsquo;t: \u0026ldquo;code\u0026rdquo;, \u0026ldquo;Calle\u0026rdquo;, \u0026ldquo;Straße\u0026rdquo; and \u0026ldquo;посылка\u0026rdquo; all have to be listed somewhere. This guide shows where those lists live and how to add your language.\nButton labels are not here. Labels like \u0026ldquo;Copy code\u0026rdquo; or \u0026ldquo;Directions\u0026rdquo; are normal app strings and are translated on Crowdin. This guide is about detection: making Hyper Bridge recognise notifications written in your language. 1. Where the Code Lives # Everything is in one file of the Hyper Bridge repository, with its tests next to it:\nFile What it is app/src/main/java/com/d4viddf/hyperbridge/service/smartactions/SmartActionsExtractor.kt The extractor: plain Kotlin, no Android APIs app/src/test/java/com/d4viddf/hyperbridge/service/smartactions/SmartActionsExtractorTest.kt JVM unit tests, run in seconds without a phone Base your branch on the current development branch (dev/0_6_0 at the time of writing) and open the Pull Request against it.\n2. Which List to Edit # Each action type has its own language-specific constants. You rarely need to touch more than one or two.\n🔐 Verification codes (OTP) # Constant Purpose Example entries OTP_KEYWORDS_LATIN Words that introduce a code, in Latin-script languages. Matched as whole words. codes?, c[oó]digos?, best[äa]tigungscode, wachtwoord OTP_KEYWORDS_OTHER The same for other scripts (Cyrillic, CJK, Arabic, Hebrew\u0026hellip;). Matched as substrings. код, 验证码, 인증번호, رمز OTP_NEGATIVE_PHRASES Phrases that contain a keyword but are not a login code, such as postal codes, promo codes and order codes. They are removed before detection. c[oó]digo\\s+postal, Postleitzahl A number only becomes a \u0026ldquo;Copy\u0026rdquo; button when it sits close to one of these keywords. If codes in your language are not detected, a keyword is missing. If postal codes or discount codes turn into copy buttons, add a negative phrase.\n🧭 Addresses # Constant Purpose Example entries STREET_PREFIX Street words that come before the name: \u0026ldquo;Calle Mayor 12\u0026rdquo;, \u0026ldquo;Via Roma 3\u0026rdquo;. calle, r[uú]a, via, rue STREET_SUFFIX_EN English street words that come after the name: \u0026ldquo;221B Baker Street\u0026rdquo;. street, ave\\.?, road STREET_SUFFIX_GLUED Street words glued to the name: \u0026ldquo;Hauptstraße 5\u0026rdquo;, \u0026ldquo;Kalverstraat 12\u0026rdquo;. stra(?:ß|ss)e, straat, gasse NAV_CONTEXT Words like \u0026ldquo;address\u0026rdquo;, \u0026ldquo;pickup\u0026rdquo; or \u0026ldquo;meet at\u0026rdquo; that make a weaker match trustworthy. direcci[oó]n, abhol, bezorg CITY_TAIL The optional \u0026ldquo;, 28013 Madrid\u0026rdquo; part after the street, including connector words such as de, do, der. de|del|la|... Map links (Google Maps, Waze, Yandex, Naver, Amap\u0026hellip;) are listed in MAP_LINK. They don\u0026rsquo;t depend on language, but if a popular maps service from your country is missing, add its domain there.\n📦 Parcel tracking # Constant Purpose TRACKING_CONTEXT Words such as \u0026ldquo;shipment\u0026rdquo;, \u0026ldquo;paquete\u0026rdquo; or \u0026ldquo;Sendung\u0026rdquo; that a generic tracking number must appear near. CARRIERS Carrier-specific number formats and their tracking URLs (e.g. Correos XX123456789ES). Add your national postal service here. 📞 Phone numbers # Constant Purpose PHONE_NEGATIVE_CONTEXT Words like \u0026ldquo;order\u0026rdquo;, \u0026ldquo;invoice\u0026rdquo; or \u0026ldquo;IBAN\u0026rdquo; that mean the number after them is an identifier, not something to dial. 3. Worked Example: Polish Street Names # Polish addresses look like ul. Marszałkowska 10 (ulica = street) or Aleja Róż 4 (aleja = avenue). The street word comes first, so they belong in STREET_PREFIX:\nprivate const val STREET_PREFIX = \u0026#34;calle|c/|c\\\\.|cl\\\\.|avenida|...\u0026#34; + // ...existing languages... \u0026#34;rue|boulevard|bd\\\\.?|chemin|all[ée]e|impasse|quai|cours|route|passage|\u0026#34; + \u0026#34;ul\\\\.|ulica|al\\\\.|aleja|plac\u0026#34; Then add tests to SmartActionsExtractorTest.kt. Add one that must match, and at least one that must not:\n@Test fun polishStreetAddressIsDetected() { assertEquals( \u0026#34;ul. Marszałkowska 10\u0026#34;, only(\u0026#34;Kurier dostarczy paczkę na ul. Marszałkowska 10, 00-590 Warszawa\u0026#34;, SmartActionType.NAVIGATION)?.value ) assertEquals(\u0026#34;Aleja Róż 4\u0026#34;, only(\u0026#34;Spotkajmy się: Aleja Róż 4\u0026#34;, SmartActionType.NAVIGATION)?.value) } @Test fun polishFalsePositivesStayQuiet() { assertNull(only(\u0026#34;Mam 2 bilety na mecz w 2026\u0026#34;, SmartActionType.NAVIGATION)) assertNull(only(\u0026#34;Ulica była pusta o 22:30\u0026#34;, SmartActionType.NAVIGATION)) } Run the tests from the project root:\n./gradlew :app:testDebugUnitTest --tests \u0026#34;*SmartActionsExtractorTest*\u0026#34; The Polish postal code 00-590 has a dash, which CITY_TAIL doesn\u0026rsquo;t recognise yet. The address is still found, just without the city. Supporting that format would be a separate, slightly bigger change to CITY_TAIL, and it should come with its own tests.\n4. Regex Tips # The patterns are Kotlin strings, so a few things trip people up:\nBackslashes are doubled. The regex \\. is written \u0026quot;\\\\.\u0026quot; in Kotlin and \\d is written \u0026quot;\\\\d\u0026quot;. Don\u0026rsquo;t use \\b for non-English words. \\b only understands ASCII letters, so \\bcódigo\\b breaks on the accent. Use the lookarounds the file already uses: (?\u0026lt;![\\p{L}\\p{N}]) before and (?![\\p{L}\\p{N}]) after. Cover accents and variants in one entry. c[oó]digo matches both \u0026ldquo;codigo\u0026rdquo; and \u0026ldquo;código\u0026rdquo;, and stra(?:ß|ss)e matches both \u0026ldquo;Straße\u0026rdquo; and \u0026ldquo;Strasse\u0026rdquo;. Keep case-insensitivity scoped. Address patterns use (?i:...) only around the street word, because the city part relies on capital letters to know where the address ends. Short words are risky. A two- or three-letter keyword can appear inside ordinary sentences. Require a dot (ul\\.) or prefer the full word, and always add a false-positive test. Order matters. Codes are extracted first, then tracking numbers, then map links and addresses, then links, and phone numbers last. Text claimed by one action is never reused by another. 5. Pull Request Checklist # The change is in SmartActionsExtractor.kt only (plus tests). There are no new dependencies and no Android APIs. Every new keyword has at least one positive test with a realistic notification in your language. There is at least one negative test showing that ordinary sentences don\u0026rsquo;t trigger it. ./gradlew :app:testDebugUnitTest passes. The PR description names the language and pastes one or two real notification texts it now handles, with personal data removed. Not sure which list a word belongs in? Open an issue on GitHub with a few example notifications (codes and personal details replaced), and we\u0026rsquo;ll point you in the right direction.\n","externalUrl":null,"permalink":"/docs/contributing/smart-actions-languages/","section":"Documentation","summary":"Smart Actions find verification codes, addresses, links, phone numbers and parcel numbers in notification text. Numbers and links look the same everywhere, but the words around them don’t: “code”, “Calle”, “Straße” and “посылка” all have to be listed somewhere. This guide shows where those lists live and how to add your language.\n","title":"Adding Smart Actions Support for Your Language","type":"docs"},{"content":"Xiaomi devices aggressively kill background services by default. Follow these steps to keep Hyper Bridge running smoothly:\n1. Enable Autostart # Go to Security app \u0026gt; Manage apps \u0026gt; Hyper Bridge \u0026gt; Toggle Autostart to Allowed.\n2. Set Battery Saver to No Restrictions # In the same app info menu, tap Battery saver and select No restrictions.\n3. Lock in Recents (Optional) # Open the app switcher, press and hold the Hyper Bridge card, and tap the Lock icon.\n","externalUrl":null,"permalink":"/docs/permissions/battery-and-autostart/","section":"Documentation","summary":"Xiaomi devices aggressively kill background services by default. Follow these steps to keep Hyper Bridge running smoothly:\n1. Enable Autostart # Go to Security app \u003e Manage apps \u003e Hyper Bridge \u003e Toggle Autostart to Allowed.\n","title":"Battery Saver \u0026 Autostart Whitelist","type":"docs"},{"content":"Hyper Bridge includes an integrated, privacy-first Bug Report Generator that combines your description of an issue with an automated hardware and permission snapshot.\nSubmitting a complete bug report helps the development team pinpoint issues on specific Xiaomi device models, HyperOS regional builds, and notification styles without tedious back-and-forth debugging.\nAccessing the Bug Report Screen # You can access the bug reporter in two ways:\nFrom Settings: Navigate to Settings → Report a Bug (under the Support section). From Diagnostics: Tap the Report Error button in the Diagnostics Screen. 1. Filling Out the Report # To ensure the issue can be reproduced and resolved quickly, the reporter provides structured input fields:\nFigure 1: Issue title, description, and steps to reproduce inputs. A. Description (Required) # Provide a clear explanation of what went wrong:\nDescribe the unexpected behavior (e.g. \u0026ldquo;WhatsApp messages do not show custom avatar\u0026rdquo; or \u0026ldquo;Island doesn\u0026rsquo;t dismiss after audio stops\u0026rdquo;). Include what you expected to happen. The Description field is required. If submitted empty, Hyper Bridge will highlight the field and automatically scroll to the top of the form. B. Steps to Reproduce # List the sequential steps needed to trigger the problem:\nOpen the target application. Receive a background notification while the phone is unlocked. Observe whether the island expands, stays collapsed, or fails to render. C. Associate with a Specific App (Optional) # If the bug occurs exclusively with a particular app (e.g., Spotify, Telegram, Uber, or a banking app):\nTap Select Target App. Pick the application from your installed apps list. The package name and version will be attached to the report. 2. Automated Diagnostic Snapshot # When you generate a report, BugReportCollector gathers an automated technical environment snapshot. You can preview all collected data directly on the screen before sending:\nFigure 2: Device, firmware, permission flags, and sanitized event logs automatically compiled into the report. Device \u0026amp; Firmware Environment # Device Model \u0026amp; Name: Marketing name (e.g., Xiaomi 14 Ultra, POCO F6 Pro) and hardware codename. Operating System: Android version, API level, and build fingerprint. HyperOS Build: Exact HyperOS version string and whether the device is running a Global or China (CN) ROM. Permission Matrix # Notification Listener granted (true/false). Post Notifications granted. Android 13+ Restricted Settings authorization. HyperOS Focus Notifications status. Battery Optimization exclusion (\u0026ldquo;No Restrictions\u0026rdquo;). Autostart permission status. Shizuku service status and version (if active). Application \u0026amp; Customization State # Installed Hyper Bridge version and build number. Active Theme configuration (HyperTheme ID, author, and highlight color). Active Custom Translators (names, priorities, target scopes, and condition rules). Active Widget Studio micro-widgets. Sanitized Event Log # The last 50 entries from DiagnosticsStore (timestamps, notification categories, translator matches, and service connection transitions). 3. Privacy \u0026amp; Data Protection # Hyper Bridge is committed to user privacy:\nZero Message Body Logging: Notification text bodies, contact numbers, authentication codes, and message previews are never collected. No Automatic Telemetry: Reports are never transmitted silently in the background. You must explicitly review and trigger the submission. Zero Internet Permissions: Hyper Bridge does not have android.permission.INTERNET. Sending a report launches an external app (your web browser or email client) via standard Android intents. 4. Submission Options # Once your report is composed, tap the action button that best suits your workflow:\nFigure 3: Submission choices: Submit on GitHub, Send via Email, or Copy Report to Clipboard. Option 1: Submit via GitHub Issues (Recommended) # Tap Submit on GitHub:\nOpens the official Hyper Bridge GitHub Issues portal in your browser. Automatically populates the issue title, problem description, device specs, and diagnostic log into the structured YAML bug template. Allows you to track progress, receive developer responses, and test preview APK fixes. Option 2: Send via Email # Tap Send Email:\nPre-populates an email addressed directly to the maintainer: d4viddf@d4viddf.com. Formats your device details and reproduction steps into the message body. Option 3: Copy to Clipboard # Tap Copy Report:\nCopies the complete, formatted Markdown report to your clipboard. Ideal for sharing in the Telegram community group or Discord developer channel for rapid assistance. Next Steps # Wondering why a permission is marked as missing? Follow the System Setup \u0026amp; Health Guide. Learn how to inspect live event codes in the Diagnostics Guide. ","externalUrl":null,"permalink":"/docs/troubleshooting/bug-reporting/","section":"Documentation","summary":"Hyper Bridge includes an integrated, privacy-first Bug Report Generator that combines your description of an issue with an automated hardware and permission snapshot.\nSubmitting a complete bug report helps the development team pinpoint issues on specific Xiaomi device models, HyperOS regional builds, and notification styles without tedious back-and-forth debugging.\n","title":"Bug Reporting \u0026 Issue Diagnosis","type":"docs"},{"content":"Starting with Hyper Bridge 0.6.0, you can display incoming notifications using Xiaomi\u0026rsquo;s 10 Official HyperIsland Layout Templates (IslandTemplateCatalog).\nTemplates take the guesswork out of designing notification cards: each template provides a purpose-built visual architecture with optimal typography, progress elements, and button layouts optimized specifically for HyperOS 3 HyperIsland.\nflowchart TD Catalog[\"Island Template Catalog\\n(10 Official Xiaomi Templates)\"] --\u003e Select[\"Pick Template \u0026 Suggested Category\\n(Design Flow Modal)\"] Select --\u003e Presets[\"Automatic Slot Wiring\\n(Pill, Highlight Colors, Action Slots, Waypoints)\"] Presets --\u003e Translator[\"Generated Custom Translator\\n(Fully editable in Visual Editor)\"] 1. What is an Island Design? # In Hyper Bridge, an Island Design is a high-level notification translator whose presentation is configured using an official layout template (PresentationMode.TEMPLATE).\nWhen you create a design:\nYou select a visual preset from the Island Template Gallery. You pick which notification type (Navigation, Delivery, Calls, Media, Download, or Standard) should trigger it. Hyper Bridge automatically generates an optimized rule and pre-wires all title variables, action slots, compact pill indicators, and accent colors. You can keep it as-is or open it in the Visual Editor to tweak keywords, regex matching, or button behaviors! 2. The 10 Official Xiaomi Templates # The following table details all 10 official layout templates available in the in-app gallery:\nTemplate ID Template Name Suggested Type Visual Card Style \u0026amp; Distinct Elements tpl_weather_nav Weather \u0026amp; Navigation Navigation, Standard Context Header (BASE_TYPE_1): Small subtitle context line above an accented bold destination title, red accent color, and pill showing current milestone distance. tpl_payment_wallet Payment \u0026amp; Wallet Messaging, Standard Transaction Card (BASE_TYPE_2): Large receipt header, payment total highlight, and built-in 1-tap Copy Verification Code / OTP action button. tpl_call_kit Call Management Calls Call Card (CALL): Prominent caller avatar on the left, live duration chronometer, and circular green Accept and red Decline action buttons. tpl_ride_delivery Ride \u0026amp; Delivery Tracker Progress, Standard Vehicle Waypoint Card: Live delivery vehicle waypoint graphic moving along a route line, ETA text, and driver contact shortcuts. tpl_queue_wait Queue \u0026amp; Wait Time Progress, Standard Queue Status Card: Wait-time gauge, queue position badge, and accented progress bar indicating remaining wait time. tpl_parking_meter Parking Meter Timers, Progress Countdown Card: Real-time ticking chronometer displaying remaining parking duration, with quick extend actions. tpl_file_transfer File Download / Transfer Downloads, Progress Download Progress Card: Dynamic green percentage progress bar (showPercentage = true) and status pill displaying exact download percent (78%). tpl_promo_coupon Promos \u0026amp; Coupons Standard Voucher Card: Orange promotional highlight badge with a direct View Deal / Open URL smart button. tpl_boarding_pass Boarding Pass \u0026amp; Travel Standard Travel Ticket Card: Ticket-style layout drawn over a tinted background image, boarding gate information, and flight departure timer. tpl_courier_tracking Courier \u0026amp; Parcel Tracking Progress, Standard Parcel Card: Shipment checkpoint milestones with an integrated 1-tap Track Package smart action button. Tip Compact Media Player (tpl_media_compact):\nIn addition to the 10 gallery templates, Hyper Bridge includes the compact media template featuring album art masking, live artist and track titles, and audio playback controls.\n3. Step-by-Step: Adding a Design from a Template # Follow these steps to activate a template design in seconds directly from the Design Bento Hub:\nStep 1: Open the Designs Manager \u0026amp; Add Design # Navigate to the Design screen and tap the Designs Bento card. If you don\u0026rsquo;t have any active custom designs yet, you will be greeted by the Designs Manager empty state. Tap Add Design (or tap the + FAB and choose Custom Design).\nStep 2: Choose Design Creation Method # From the bottom sheet, select From a template to browse Xiaomi\u0026rsquo;s official HyperIsland layout templates, or choose Custom design to open the Micro-Widgets Studio on a clean canvas.\nLooking to build custom micro-widgets element by element?\nHyper Bridge 0.6.0-beta4 includes a full spatial KWGT-style builder with formulas, dynamic tokens, and Material 3 color schemes. Follow our 5-part Custom Widget Design Series to learn everything about it! Step 3: Browse the Island Template Picker # Browse the interactive catalog containing Xiaomi\u0026rsquo;s 10 official HyperIsland templates. Each entry showcases the layout archetype (e.g. Weather \u0026amp; Navigation, Payment \u0026amp; Wallet, Call Management, Ride \u0026amp; Delivery Tracker).\nStep 4: Preview Template Layout # Tap any template to inspect its live preview, including its compact pill presentation, expanded island hierarchy, and default action button slots.\nStep 5: Configure Target Scope \u0026amp; Application # Set the target scope for this design. You can assign the template to a specific notification type (Navigation, Messaging, Media, Calls, Downloads \u0026amp; Progress, or Standard), or restrict it to specific applications.\nStep 6: Save \u0026amp; Manage Active Designs # Tap Save Design. Your new template-driven design is immediately registered and displayed in the Designs Manager with a live interactive HyperIsland preview toggle.\n4. Editing \u0026amp; Customizing Design Properties # Every design created from a template is powered under the hood by Hyper Bridge\u0026rsquo;s Custom Translator Engine.\nNeed to customize individual elements, regex matching, or button actions?\nCustom designs share the exact same visual editing options as custom translators! To learn how to customize text variable tokens ({notif.title}, {notif.text}), regex patterns, compact pill slots, progress meters, action button intents, and themes, follow the complete Custom Translators User Guide. From the Designs Manager:\nEdit in Visual Editor: Tap the Edit (Pencil) icon on any active design card to open the complete visual editor. Interactive Preview: Tap the top switch to toggle between Expanded Island and Compact Pill previews in real-time. Duplicate \u0026amp; Specialize: Tap Duplicate to clone an existing template design for another app. Export \u0026amp; Share: Tap Export to save your design as a standalone .htrans file. ","externalUrl":null,"permalink":"/docs/customization/custom-designs/","section":"Documentation","summary":"Starting with Hyper Bridge 0.6.0, you can display incoming notifications using Xiaomi’s 10 Official HyperIsland Layout Templates (IslandTemplateCatalog).\nTemplates take the guesswork out of designing notification cards: each template provides a purpose-built visual architecture with optimal typography, progress elements, and button layouts optimized specifically for HyperOS 3 HyperIsland.\n","title":"Island Templates \u0026 Designs","type":"docs"},{"content":"After completing the initial setup, you can control precisely which applications are bridged into dynamic islands. The Active Apps management screen provides fine-grained controls, category filters, and automatic rules for new installations.\n1. What\u0026rsquo;s New \u0026amp; Release Highlights # When Hyper Bridge updates or opens after setup, the What\u0026rsquo;s New dialog highlights newly added features, system updates, and architecture improvements.\nCheck release updates or dismiss to access the Active Apps dashboard. Tap View Changelog to read full release notes and new translator updates online. Tap Awesome! to enter the Active Apps dashboard. 2. Searching and Filtering Applications # Hyper Bridge organizes your apps and system services with responsive filter chips and real-time search.\nFilter by category: System, All, Music, Downloads, Navigation, and more. Instant Search: Type the name or package ID of any installed app in the top search bar. Category Chips: System: Built-in system services such as VPN, Screen Recording, and System Update. All: Displays every installed application on your device. Music: Filters media players (Spotify, YouTube Music, Tidal, etc.). Chats / General: Filters instant messengers and communication tools. Quick Sort: Tap the arrow button next to the search bar to toggle ascending or descending sorting. 3. App Toggles and Configuration # Each application has an independent toggle switch and an individual settings shortcut.\nEnable or disable apps individually and access per-app configuration. Enable / Disable Toggle: Switch the toggle on the right side of any app or system service to allow or block dynamic island popups for that specific app. Gear Icon (Settings): Tap the gear icon next to any app or system service to open its specialized configuration (such as custom side icons, countdown timers, or custom translators). Subtitles: Displays current status (Enabled / Disabled) or the Android package name. 4. Enabling All Apps \u0026amp; Auto-Adding New Apps # If you want every installed app and all future apps to immediately display dynamic islands without manual toggling:\nEnable all apps at once and configure automatic bridging for future app installs. Tap the Enable all apps card at the top of the list. Toggle the main switch to enable Hyper Island for all apps in the current list simultaneously. Tap the Settings icon on the \u0026ldquo;Enable all apps\u0026rdquo; item to open the bottom sheet modal: Add new apps automatically: When toggled on, whenever you install a new app from Google Play or an APK, Hyper Bridge will automatically enable dynamic island bridging for it without requiring you to return to settings. Next Steps # Now that your apps are enabled, configure specialized system island indicators:\nNative System Options \u0026amp; Apps: Customize Screen Recording, System Update, and VPN islands. Design Hub \u0026amp; Customization: Personalize colors, shapes, and templates. ","externalUrl":null,"permalink":"/docs/getting-started/enabling-apps/","section":"Documentation","summary":"After completing the initial setup, you can control precisely which applications are bridged into dynamic islands. The Active Apps management screen provides fine-grained controls, category filters, and automatic rules for new installations.\n","title":"Managing \u0026 Enabling Apps","type":"docs"},{"content":"Permanent Island allows your device\u0026rsquo;s camera punch hole to always blend seamlessly into a continuous, interactive dynamic island—even when no music is playing and no active notifications are present.\nHow Permanent Island Works # In standard behavior, the HyperIsland only appears when an active event occurs (such as incoming notifications, music playback, or navigation cues) and collapses completely once dismissed or timed out.\nWhen Permanent Island is enabled:\nAn elegant, compact pill is persistently displayed over your camera cutout while the device is in an idle state. Smart Notification Transition: The moment an incoming notification or Live Update arrives, the permanent island smoothly morphs and expands into the active event island. Auto Reappearance: Once all active notifications are cleared or timed out, the island effortlessly returns to its minimal camera pill shape. Clean Notification Shade: The idle permanent island runs purely as an on-screen visual element and will not clutter your notification shade. Configuration \u0026amp; Setup # You can configure Permanent Island in the Hyper Bridge settings under Global Settings → Permanent Island:\nPermanent Island toggle and preview in Global Settings. Settings \u0026amp; Controls # Permanent Island Toggle: Enable or disable the persistent idle island pill. Preview Canvas: Provides an interactive preview showing how the pill aligns with your device\u0026rsquo;s camera cutout and status bar elements (clock and battery icons). Cutout Alignment: Matches the camera cutout position configured during the initial Onboarding Wizard. Why Use Permanent Island? # Aesthetic Continuity: Eliminates awkward transitions where the camera hole abruptly exposes screen edges. Instant Visual Touchpoint: Gives your HyperOS device a signature look similar to dedicated hardware island notches. Low Power Consumption: Operates with near-zero GPU and battery overhead by sleeping hardware layers during static display. Related Features # Dynamic Island Engine: Learn how notifications morph between states. Inline Reply: Fast messaging reply popups without switching apps. Design Hub \u0026amp; Custom Themes: Customize colors, shapes, and templates. ","externalUrl":null,"permalink":"/docs/features/permanent-island/","section":"Documentation","summary":"Permanent Island allows your device’s camera punch hole to always blend seamlessly into a continuous, interactive dynamic island—even when no music is playing and no active notifications are present.\nHow Permanent Island Works # In standard behavior, the HyperIsland only appears when an active event occurs (such as incoming notifications, music playback, or navigation cues) and collapses completely once dismissed or timed out.\n","title":"Permanent Island","type":"docs"},{"content":"The Settings menu in Hyper Bridge provides complete command over engine behaviors, queuing limits, privacy exclusions, and diagnostic tools. Tap the gear icon in the top right corner of the app to access settings.\n1. Global Settings # Global Settings defines core notification lifecycle behavior, engine selection, and system integrations.\nAccess Engine selection, Island Behavior, DND, Permanent Island, Smart Actions, Navigation, and Inline Reply. Engine Mode # Choose between rendering pipelines:\nXiaomi Featured Design: Modern rich cards and status pills for Global and EEA ROMs. Live Update Design: Native notification channels and live cards for CN ROMs or custom setups. Island Behavior # Fine-tune how notifications appear, minimize, and dismiss: Adjust auto-hide timeouts and heads-up banner visibility. Auto-hide Island: Define how many seconds (e.g. 5s to 60s) an island floats before collapsing. Heads-up Popup: Briefly display full heads-up notification banners before minimizing into the island pill. Notification Panel Visibility: Choose whether notifications remain in your pull-down shade while active as an island. Remove original notification: Dismiss the Android notification when a Live Update is active. Dismiss with original: Dismiss the island when you clear the notification from your shade. Do Not Disturb (DND) # Automate island silence during DND or pause islands on demand. Auto-detect System DND: Automatically silences island popups while your device is in Do Not Disturb mode. Pause Islands: Instant manual pause switch to silence all island popups without altering phone system settings. Navigation Layout # Configure left and right side layout for turn-by-turn navigation islands. Customize what is shown while navigation is active:\nLeft Side: Choose between Instruction, Distance, Arrival Time, or Distance \u0026amp; Time. Right Side: Choose between Instruction, Distance, Arrival Time, Distance \u0026amp; Time, or Empty. 2. Floating Notification Setup (Anti-Duplicate Banners) # In HyperOS, apps may produce both an Android system floating banner (heads-up) and a Hyper Bridge dynamic island.\nManage app banners to prevent duplicate popups. Why it matters: Disabling native floating banners in system settings lets Hyper Bridge display its clean dynamic island without an underlying native popup clashing behind it. Assisted Review: Hyper Bridge lists every bridged app, lets you jump directly to its system notification setting via the external link icon, and mark it as confirmed. 3. Limit Strategy (Multi-Island Queue) # What happens when more than 9 applications or notifications are active at the same time?\nChoose queue behavior: Most Recent, First Come First Served, or Custom Priority. Most Recent (Default): Newer notifications replace the oldest active islands once the limit is reached. First Come, First Served: Retains the first 9 apps; incoming apps wait in queue until active ones dismiss. Custom Priority: High-value categories (phone calls, live timers, GPS directions) always take precedence over chat messages. 4. Blocked Terms \u0026amp; Spoiler Protection # Filter out unwanted notifications or protect yourself from TV show spoilers and sports scores.\nAdd global blocked keywords or configure app-specific filter rules. Global Rules: Add keywords (e.g., Spoiler, Score). Any notification containing these words will never trigger an island. App-Specific Rules: Set up keyword blocklists limited strictly to selected apps without affecting other apps. 5. Backup \u0026amp; Restore # Protect your personalized themes, custom translators, and notification settings:\nExport and restore App Settings, Blocklist Database, and Priority Rules. App Settings: Setup status, theme preferences, and behavior modes. Blocklist Database: Your custom blocked keywords and app rules. Priority Rules: Custom notification category priority hierarchies. One-Tap Export/Import: Tap Create Backup to export an offline .json snapshot or Restore Backup to migrate to a new device. 6. Guides, Diagnostics \u0026amp; Bug Reporting # Hyper Bridge includes built-in troubleshooting utilities accessible directly from Settings:\nDirect links to System Setup, Documentation, Diagnostics, and Bug Reports. System Setup Guide: Verify all 6 system permissions and autostart optimizations. Diagnostics Dashboard: Live status of notification listeners and event logs. Bug Reporting Guide: Export sanitized diagnostic logs to GitHub or email. 7. About \u0026amp; Community Credits # Version info, open source licenses, privacy policy, and special thanks. The About section details the active Hyper Bridge version, open source licenses, and gives special thanks to community researchers and contributors who make Hyper Bridge possible!\n8. Per-App Configuration # In addition to global preferences, Hyper Bridge gives you complete per-application control. You can access the dedicated App Configuration screen by tapping the gear / settings icon on any individual app card in the Library or Active tabs on the home screen.\nApp Configuration hub showing notification types, island behavior overrides, smart actions, blocked terms, island widgets, custom designs, and custom translators. From this screen, you can customize each aspect of how Hyper Bridge interacts with that specific application:\nNotification Types # Control which specific types of notifications trigger a dynamic island for this app.\nGranularly toggle individual notification channels and event categories. Messages \u0026amp; General: Messages and chat notifications. Downloads \u0026amp; Progress: Active downloads and task progress bars. Music \u0026amp; Media: Audio playback controls and album info. Maps \u0026amp; GPS: Real-time navigation prompts. Calls: Incoming, Outgoing, and Active voice/video call indicators. Timers \u0026amp; Alarms: Active countdowns and alarm alerts. Island Behavior Overrides # Override global timing and popup behavior specifically for this application.\nCustomize auto-hide timeouts, heads-up popups, shade panel behavior, and inline reply. Use Global Defaults: Keep toggled on to inherit from Global Settings, or switch off to define custom timings. Auto-hide Island: Set a custom display duration before collapsing into the status bar pill. Heads-up Popup: Control whether this app displays an initial full floating popup before settling into an island. Notification Panel: Choose whether notifications remain in your pull-down shade while the island is visible. Remove original notification / Dismiss with original: Coordinate lifecycle synchronization between the Android status bar and the island. Enable inline reply: Allow direct text input from the expanded island card. Smart Actions # Customize contextual quick actions for notifications originating from this application.\nToggle OTP extraction, URLs, phone numbers, parcel tracking, and direction buttons. Turn off sensitive detectors (such as Verification codes / OTP) for banking or authenticator apps while keeping them active for SMS. Toggle quick actions for detected links, phone numbers, parcel numbers, and directions. See the full Smart Actions Guide for details. Blocked Terms (App-Specific) # Filter out notifications from this app that match specific keywords or phrases.\nDefine keyword filters strictly applicable to this application. Type words or phrases (e.g. Spoiler, Promotion, Meeting ended) into the input field and tap Add word. Any notification from this app containing any of these terms will be ignored and will not trigger an island. Island Widgets # Display native Android home screen widgets directly inside the expanded island.\nConfigure Android app widgets to display inside Hyper Bridge dynamic islands. Tap the floating + button to attach compatible app widgets directly to the island interface. Check the Android Widget Island Guide for complete setup instructions. Custom Design \u0026amp; Templates # Apply unique visual styles, layout bento cards, and themes to this application.\nEnable or disable island designs and select design templates for this app. Tap the info icon to learn how app-specific designs interact with global themes. Learn more in the Custom Designs Guide. Overview of global vs. app-specific designs, preview modes, and actions. Custom Translators # Assign custom parsing and display translators to handle complex notifications from this application.\nManage active translator rules, toggle priority overrides, and create new app translators. Manage active translator rules applied specifically to this application. Tap + or edit existing translators to customize parsing formulas, regex captures, and action button layouts. Read the comprehensive Custom Translators Guide for visual editing options and regex recipes. ","externalUrl":null,"permalink":"/docs/getting-started/app-settings/","section":"Documentation","summary":"The Settings menu in Hyper Bridge provides complete command over engine behaviors, queuing limits, privacy exclusions, and diagnostic tools. Tap the gear icon in the top right corner of the app to access settings.\n","title":"App Settings \u0026 Preferences","type":"docs"},{"content":"Inline Reply brings immediate, seamless chat responses to your HyperOS dynamic island. Instead of pulling down the entire notification shade or switching away from your current app or game, tapping reply on any supported message immediately launches a sleek floating input box.\n1. Quick Floating Reply Experience # When a message arrives from supported communication apps (such as WhatsApp, Telegram, Signal, Discord, SMS, or Slack), the island provides a direct reply button.\nTapping reply opens the Inline Reply Overlay:\nType your response into the floating input field. Send directly with a single tap of the send icon or your keyboard\u0026rsquo;s action key. The overlay vanishes automatically and sends your text via Android\u0026rsquo;s native RemoteInput framework, ensuring fast and reliable delivery. 2. Custom Colors \u0026amp; Themes # Hyper Bridge gives you deep customization over the colors of your inline reply textfield and action buttons:\nCustomize textfield color, text color, and send button color. Textfield Color: Set the background tint of the text input container. Text Color: Choose the typography color for the message you type. Send Button Color: Pick an accent color for the floating send arrow button. Color Mode Options # Tap Color Mode to choose how the reply box resolves its color scheme:\nSelect Color Mode: Default, Custom Colors, App Colors, or Material You. Default: Clean standard contrast colors matching the Hyper Bridge theme. Custom Colors: Full manual color picking for the textfield, text, and send button. App Colors: Dynamically samples accents from the originating messenger app\u0026rsquo;s icon (e.g. green for WhatsApp, blue for Telegram). Material You (Monet): Dynamically extracts harmonizing tones directly from your active Android wallpaper. 3. Appearance \u0026amp; Glassmorphism # Fine-tune the geometric design and visual effects of the inline reply box to match your aesthetic:\nConfigure blur effects (glassmorphism) and corner radiuses. Blur Effect (Glassmorphism): Toggle a frosted glass background blur behind the floating reply textfield for an ultra-modern aesthetic. Textfield Corner Radius: Adjust slider (e.g. 24px) from sharp modern corners to rounded pill capsules. Send Button Corner Radius: Customize the curvature of the companion send button. Related Features # Smart Actions: One-tap OTP copying and contextual shortcuts. Permanent Island: Keep your punch hole styled when idle. App Settings \u0026amp; Preferences: Full guide to global settings and preferences. ","externalUrl":null,"permalink":"/docs/features/inline-reply/","section":"Documentation","summary":"Inline Reply brings immediate, seamless chat responses to your HyperOS dynamic island. Instead of pulling down the entire notification shade or switching away from your current app or game, tapping reply on any supported message immediately launches a sleek floating input box.\n","title":"Inline Reply","type":"docs"},{"content":"Hyper Bridge 0.6.0 features a native Android AppWidget Host, allowing you to place any standard Android home-screen widget (Spotify, Google Keep, Weather, Clock, Calendar, Smart Home toggles, etc.) directly into your Xiaomi HyperOS HyperIsland!\nInstead of being confined to static notifications, widgets running inside HyperIsland can remain interactive, refresh automatically in the background, or appear when needed.\nflowchart LR Picker[\"Widget Picker\\n(App filter, Search, Favorites)\"] --\u003e Bind[\"AppWidget Host Bind\\n(Android SAF / Widget Permissions)\"] Bind --\u003e Config[\"Widget Configuration\\n(Size, Render Mode, Timeouts, Auto-Update)\"] Config --\u003e Island[\"Live HyperOS HyperIsland\\n(Expanded Card \u0026 Shade Display)\"] 1. How to Add a Widget # You can add a widget in two different ways depending on your workflow:\nMethod A: From the Design Hub # Navigate to the Design tab in Hyper Bridge. Tap the + (Add) Floating Action Button and select System Widget, or tap the + action button inside the Widgets Bento card. The Widget Picker Screen will open, listing all applications on your device that provide home-screen widgets. Method B: From App Settings # Go to Active Apps or Library and tap the app you want to configure (e.g., Spotify, Google Calendar). Scroll to the Island Widgets section. Tap Add Widget. The picker will automatically open pre-filtered to widgets provided exclusively by that application! 2. Browsing \u0026amp; Selecting Widgets (The Widget Picker) # Access the widget catalog by tapping + (Add Widget) from the Saved Widgets screen or the Design Hub Bento Grid:\nFigure 1: The Saved Widgets screen before adding widgets, showing Favorites and All filter tabs. Tapping the + button opens the Widget Picker Screen:\nFigure 2: The Add Widget catalog listing all applications on the device that supply Android AppWidgets. The picker provides:\nInstant Search: Type the name of any app or widget title in the top search bar. Favorites \u0026amp; Recommendations: Star widget providers to keep them at the top of your list. Collapsible App Groups: Tap any application card (e.g. YouTube Music, Spotify) to expand all available widget sizes and interactive previews: Figure 3: Expanding YouTube Music widgets showing \u0026lsquo;Now Playing\u0026rsquo; (4x1) and \u0026lsquo;Recently Played\u0026rsquo; (4x2). Note Android Widget Binding Permission:\nThe first time you select a widget from an application, Android will prompt you with a system dialog: \u0026ldquo;Allow Hyper Bridge to create widgets and access their data?\u0026rdquo; Tap Always allow or Create to grant the AppWidget Host permission.\n3. Configuring Your Widget (WidgetConfigScreen) # Once you pick a widget, you will enter the Widget Configuration Screen. Here you can preview how the widget renders in real time and customize its visual size and runtime behavior.\n┌──────────────────────────────────────────────────────────┐ │ Live HyperIsland Widget Preview │ │ [ Spotify Player: Playing Song - Album Art - Controls ] │ └──────────────────────────────────────────────────────────┘ [ Appearance Tab ] [ Behavior Tab ] • Size (Small / Medium / Large / etc.) • Show in Notification Shade • Render Mode (Interactive / Bitmap) • Auto-Hide Timeout (TTL) • Auto-Update Interval The configuration screen is split into two primary tabs:\nTab 1: Appearance # Figure 4: Setting the widget Render Mode to Interactive and Container Size to Medium (180dp). Setting Options Description Render Mode Interactive, Snapshot Interactive: Allows tapping widget buttons, play/pause controls, and action triggers directly on the island.\nSnapshot: Captures a crisp image snapshot of the widget. Recommended for complex list views (like Calendar or Gmail) that may fail to bind interactive remote views in floating windows. Container Size Small (100dp), Medium (180dp), Large, Original Controls the target container height on the island card. Figure 5: Snapshot render mode with Small (100dp) container size for lightweight list-based widgets. Tab 2: Behavior # Switch to the Behavior tab to manage how and when the widget appears:\nFigure 6: Enabling Auto Close with a custom timeout slider (10 seconds) and Show in Shade toggle. Setting Default Description Show in Shade Enabled (true) When enabled, keeps the widget accessible in the standard Android notification pull-down shade in addition to the floating HyperIsland. Auto Close Disabled / Enabled When turned on, you can configure an idle slider (e.g., 5 to 60 seconds). The island card will automatically dismiss after the duration expires. Figure 7: Persistent widget configuration (Auto Close disabled) for persistent media controls or smart home toggles. 4. Managing Your Saved Widgets (SavedAppWidgetsScreen) # After configuring your widget, tap Save (or the Play button) to store it in your widget library:\nFigure 8: Saved Widgets list showing YouTube Music Widget #88 with quick \u0026lsquo;Show on Island\u0026rsquo; trigger and delete button. In the Saved Widgets list:\nLive Preview Container: Shows the live interactive widget rendering in its assigned size. Show on Island: Tap to immediately spawn the widget on your device\u0026rsquo;s HyperIsland to test how it looks and behaves! Delete (Trash): Remove the widget from the island host. 5. Live Island Experience on Home Screen # When triggered, the widget renders seamlessly at the top of your screen as a native Xiaomi HyperOS HyperIsland card:\nFigure 9: Live YouTube Music widget running inside the expanded HyperIsland over the HyperOS home screen. Figure 10: Seamless presentation with translucent glassmorphic blur and system status indicators. Tips \u0026amp; Best Practices # Interactive Media Widgets: If your music player does not output standard Android media notifications, mounting its official 4x1 or 4x2 widget inside Hyper Bridge gives you 100% reliable island playback controls! Battery \u0026amp; Performance: For widgets that don\u0026rsquo;t need real-time second counters, leave Auto-Update at 15–30 minutes or rely on the host application\u0026rsquo;s native widget broadcast to maximize battery life. Combined with Translators: You can assign specific widgets to trigger alongside custom notification translators or view them on-demand. ","externalUrl":null,"permalink":"/docs/customization/widgets-guide/","section":"Documentation","summary":"Hyper Bridge 0.6.0 features a native Android AppWidget Host, allowing you to place any standard Android home-screen widget (Spotify, Google Keep, Weather, Clock, Calendar, Smart Home toggles, etc.) directly into your Xiaomi HyperOS HyperIsland!\n","title":"System Widgets on HyperIsland","type":"docs"},{"content":"Introduced in Hyper Bridge 0.6.0-beta4, the Micro-Widgets Studio brings KWGT-style element-by-element design capabilities directly to Xiaomi HyperOS HyperIsland (Super Island).\nInstead of being restricted to fixed layout templates, you can now construct freeform, layer-based micro-widgets with custom typography, responsive progress bars, interactive buttons, dynamic image masks, and Material 3 expressive color schemes.\nflowchart TD Hub[\"Design Hub / Designs Manager\"] --\u003e Action[\"Create / Edit Custom Design\"] Action --\u003e Studio[\"Spatial Widget Studio (StudioDesignScreen)\"] Studio --\u003e Canvas[\"Interactive Canvas (350dp)\\n(Pan, Zoom, Grid, Wireframe)\"] Studio --\u003e Scenarios[\"Scenario Switcher\\n(Standard, Media, Progress, Battery, OTP)\"] Studio --\u003e Breadcrumbs[\"Hierarchy Breadcrumb\\n(Root › Container › Element)\"] Studio --\u003e Inspector[\"Property Inspector Tabs\\n(Items, Colors, Style, EFX, Actions, Visibility)\"] Studio --\u003e Save[\"Saved State \u0026 Undo/Redo Engine\\n(Process-death resilient)\"] Save --\u003e Output[\"Custom Widget (.hwidget \u0026 Bound Translator)\"] 1. Custom Island Widgets vs. System Widgets # Hyper Bridge provides two complementary ways to display widgets on HyperIsland:\nFeature System Widgets (AppWidget Host) Custom Island Widgets (Micro-Widgets Studio) Added In v0.6.0-beta1 v0.6.0-beta4 Origin Standard Android home-screen widgets provided by installed apps (e.g., Spotify 4x1, Google Keep, Weather). Custom micro-widgets designed element by element or imported from community creators. Rendering Android AppWidgetHostView rendered in floating card. Native RemoteViews compiled from an AST document tree (CustomWidgetDocument). Dynamic Data Only what the host app exposes. Live notification tokens, media playback sessions, device battery, time, and external content sources. Trigger Mechanism Manual tap, persistent pinned island, or notification events. Notification interceptor rules via the Custom Translators Engine. Package Format N/A (system-bound). Standalone .hwidget archives containing widget.json, translator.json, and local assets/. 2. Accessing the Studio in Hyper Bridge # You can enter the Studio through either of the following paths:\nMethod A: From the Designs Manager (Recommended) # Open the Design tab from the main bottom navigation bar. Tap the Designs Bento card to open the Designs Manager. Tap Add Design (or the floating + button). In the creation sheet, select Custom design (Studio) to open a clean canvas. Method B: Editing or Duplicating an Existing Design # In the Designs Manager, locate any active custom design card. Tap the Edit (Pencil) icon to open it directly inside the Studio. Or tap Duplicate to clone the design with decoupled widget IDs and unique assets, allowing you to create variations safely without modifying your original design. 3. The Studio Interface Walkthrough # When you enter the Studio (StudioDesignScreen), you will see the interactive studio environment:\n┌────────────────────────────────────────────────────────┐ │ [←] Design Name [↩] [↪] [💾] │ ├────────────────────────────────────────────────────────┤ │ Root › Header Row › Song Title │ ├────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────────────────┐ │ │ │ [Zoom] LIVE ISLAND CANVAS (350dp) │ │ │ │ [Grid] (Drag \u0026amp; drop, resize, select) │ │ │ │ [Wire] │ │ │ │ [Center] │ │ │ └──────────────────────────────────────────────┘ │ │ │ │ [Scenario Switcher: 🎵 Media Playing ▼] │ ├────────────────────────────────────────────────────────┤ │ [ Items ] [ Position ] [ Colors ] [ Style ] [ Action ] │ ├────────────────────────────────────────────────────────┤ │ Inspector Properties \u0026amp; Sliders │ └────────────────────────────────────────────────────────┘ Top Navigation Bar # Back Button (←): Prompts to save or discard if you have unsaved changes. Title: Displays the current widget document name. Undo / Redo (↩ / ↪): Instantly step backward or forward through your canvas edits. Export (Share): Generates and shares a standalone .hwidget package via Android\u0026rsquo;s share sheet. Save (💾): Commits the current document tree and registers the bound translator. Breadcrumb Navigation Bar # The breadcrumb bar allows you to navigate nested layouts effortlessly. Tapping any ancestor segment (e.g., Root or Group 1) jumps selection up the hierarchy without losing context.\n4. Canvas Controls \u0026amp; Floating Action Toolbar # On the side of the preview canvas sits the Floating Action Toolbar:\nTool Icon Function Description Zoom (+ / -) Canvas Magnification Zoom between 50% and 200% to inspect small typography, sub-icons, and pixel alignments. Tap 100% to reset zoom. Pan / Recenter Viewport Alignment Resets pan offsets and centers the island card on your display. Grid Toggle Spatial Alignment Grid Toggles a subtle 8dp dot grid across the canvas to guide spacing and element alignment. Wireframe Mode Boundary Outlines Replaces filled graphics with structural boundary boxes, helping you diagnose invisible containers, nested paddings, and overlapping bounds. Canvas Sizing Presets # The canvas width is standardized to 350dp to match Xiaomi HyperOS Super Island constraints. You can configure the canvas height in the Global / Design tab:\nSmall (100dp): Compact single-line cards, playback pill expanders, and minimal status pills. Medium (180dp): Standard notification card height with title, body, artwork, and action buttons. Large (280dp): Multi-row dashboards, ticket previews, and detailed tracking cards. X-Large (380dp): Full-height spatial islands featuring rich data feeds, system controls, and detailed media covers. 5. Live Scenario Switcher # Testing notification widgets usually requires sending dummy notifications from another device. Hyper Bridge solves this with the built-in Studio Scenario Switcher:\nTap the scenario selector pill below the canvas to instantly simulate realistic notification and hardware states:\nStandard Notification: Title, message body, app icon, sender avatar, and basic notification actions. Active Media Playback: Simulates a live MediaSession with track title, artist name, playing/paused playback states, elapsed/total duration, and live progress bars. Active Progress / Download: Simulates file transfers, ride-sharing ETAs, or delivery checkpoints with 0–100% progress metrics. Low Battery / Device State: Simulates device hardware variables such as {device.battery} at 15% and formatted timestamps. OTP / Smart Action: Simulates incoming verification codes with smart action chips (OTP, URL, PHONE, TRACKING). Custom Scenario: Configure mock text strings and variables to test your exact edge cases. 6. Draft Persistence \u0026amp; Safety Workflow # Designing complex widgets requires peace of mind:\nProcess-Death Resilient Drafts: Edits are stored in SavedStateHandle. If Android terminates the process in the background or you rotate your screen, your in-progress layout is restored. Undo / Redo Stack: All node insertions, moves, property edits, and deletions maintain an undo history. Restore Last Saved: Reverts all uncommitted canvas changes back to the state stored on disk. Discard Confirmation Dialog: If you press back while having uncommitted modifications, Hyper Bridge warns you before losing work. What\u0026rsquo;s Next in the Series? # Now that you understand the studio layout and navigation, proceed to Part 2 to learn how to add, style, and layer all 6 fundamental element types:\n👉 Part 2: Custom Widget Elements \u0026amp; Visual Properties\n","externalUrl":null,"permalink":"/docs/customization/custom-widget-studio/","section":"Documentation","summary":"Introduced in Hyper Bridge 0.6.0-beta4, the Micro-Widgets Studio brings KWGT-style element-by-element design capabilities directly to Xiaomi HyperOS HyperIsland (Super Island).\nInstead of being restricted to fixed layout templates, you can now construct freeform, layer-based micro-widgets with custom typography, responsive progress bars, interactive buttons, dynamic image masks, and Material 3 expressive color schemes.\n","title":"Custom Widget Studio: Overview \u0026 In-App Builder","type":"docs"},{"content":"Welcome to the Getting Started section. Choose a guide below to learn about system compatibility, installation, and initial configuration.\n","externalUrl":null,"permalink":"/docs/getting-started/","section":"Documentation","summary":"Welcome to the Getting Started section. Choose a guide below to learn about system compatibility, installation, and initial configuration.\n","title":"Getting Started","type":"docs"},{"content":"Every design built in the Micro-Widgets Studio is composed of an Abstract Syntax Tree (AST) of visual nodes (CustomWidgetNode). When compiled, Hyper Bridge maps these elements into optimized Android RemoteViews compatible with Xiaomi HyperOS HyperIsland.\nTo add an element to your design:\nTap the + (Add) button in the Items tab or the canvas breadcrumb. The Add Element Screen will open with the 6 core building block options. Select an element to place it into the selected container group. flowchart TD Add[\"Add Element Picker\"] --\u003e Elements subgraph Elements[\"6 Core Studio Elements\"] Text[\"📝 Text\\n(Tokens, Fonts, Shadows, Textures)\"] Image[\"🖼️ Image\\n(App icon, Avatar, Media, SVGs, Masks)\"] Progress[\"📊 Progress\\n(Line, Ring, Wave, Multicolor, Thumb)\"] Button[\"🔘 Button\\n(Actions, Icons, Dual-state toggles)\"] Shape[\"🔷 Shape\\n(Pills, Circles, Rectangles, Borders)\"] Container[\"📦 Container Group\\n(Row, Column, Box stack, Absolute)\"] end 1. Text Element (TextNode) # The Text element renders static strings or dynamic notification templates ({notif.title}, {media.track}).\nInspector Tabs for Text # Info Tab: Layer label, text template string, font family, max lines, marquee, sizing type, and alignment. Colors Tab: Text color hex (or semantic color scheme token), opacity slider. EFX Tab: Text shadows, background blur masks, and gradient or bitmap textures. Position Tab: X / Y coordinates, width, height, and rotation stepper. Visibility Tab: Conditional display rules (showIf). Key Properties # Property Options Description Template / Content Dynamic string The text to display. Supports all {tokens} (e.g., {notif.title} • {device.battery}%). Font Family Default, Sans-Serif, Serif, Monospace, Cursive, Casual, Condensed System typography styling. Sizing Type Fixed Font Height, Fit Width, Fixed Width, Fit Box Fixed Font Height: Set a fixed fontSizeSp (e.g., 14sp).\nFit Width: Scales text to fill container width.\nFit Box: Scales text uniformly to fit bounding box. Max Lines \u0026amp; Marquee Integer \u0026amp; Toggle Restrict text to 1, 2, or more lines. When Marquee is enabled on a single-line element, overflowing text scrolls continuously. Gravity / Alignment Start, Center, End Horizontal alignment within the element\u0026rsquo;s bounding box. Filter \u0026amp; Blend Modes 11 modes (Normal, Multiply, Screen, Overlay, Darken, Lighten, Add, etc.) Blends the text rendering with layers beneath it. Text Effects (TextEfxConfig) # Drop Shadows: Configure blur radius (dp), light angle direction (0–360°), projection distance, and shadow color (with alpha). Background Blur Mask: Adds a Gaussian background blur underneath the text glyphs for legibility against complex notification covers. Textures: Apply horizontal, vertical, radial, sweep gradients, or custom bitmap fills inside the typography itself! 2. Image Element (ImageNode) # The Image element displays graphics, app badges, contact avatars, media album art, and custom assets.\nImage Sources (ImageSource) # Source Mode Template / Parameter Description App Icon app_icon ({notif.package}) Displays the official launcher icon of the app that posted the notification. Contact Avatar contact_avatar ({notif.title}) Resolves the sender\u0026rsquo;s contact avatar or initials from the device contact provider. Notification Media notif_media (avatar, picture, album_art) Direct bitmap extracted from notification attachments (chat photos, messaging avatars, or playback art). Custom Asset custom_asset (filename.png) Loads a bundled image file stored inside the widget\u0026rsquo;s own assets/ directory. System Glyph system_glyph (name) Built-in system symbols (e.g., battery, wifi, volume, notification). Content Source Icon source_icon (sourceId) Dynamic icon provided by an external data plugin via UPDATE_SOURCE. Shape Masking \u0026amp; Styling # Geometric Shapes: Mask the image into circle, rounded_rect, cookie, squircle, or pill with a custom corner radius stepper. Format Mode: Select between Bitmap (raster) and SVG (scalable vector graphics). Scaling (ImageScaleType): Fit Width, Fit Height, Fit Center, or Center Crop. Blur \u0026amp; Attenuation: Apply real-time blur to album covers for ambient background cards. Tinting: Optional color hex overlay to tint monochrome glyphs with theme accent colors. 3. Progress Element (ProgressNode) # The Progress element displays real-time progress for downloads, media playback, battery level, or delivery tracking.\nIndicator Modes \u0026amp; Styles # Linear Line: [████████████░░░░░░░░░░░░░░░░] (Line mode, Linear style) Divided Steps: [████] [████] [████] [░░░░] (Divided mode) Waveform: [∿∿∿∿∿∿∿∿∿∿∿∿~~~~~~~~~~~~~~~~] (Wave mode, Dynamic canvas) Circular Ring: ╭─────╮ (Circle mode, Ring style) │ 75% │ ╰─────╯ Line (ProgressIndicatorMode.LINE): Traditional continuous progress bar. Circle / Ring (ProgressIndicatorMode.CIRCLE): Compact circular gauge ideal for pills and quick status badges. Divided (ProgressIndicatorMode.DIVIDED): Segmented milestone blocks (e.g., multi-stage delivery routes). Wave (ProgressIndicatorMode.WAVE): An animated organic wave bar powered by WavyProgressCanvas, perfect for music and audio playback. Color Modes (ProgressColorMode) # Flat: Single accent color across the entire active fill. Gradient: Two-point linear blend between a start color and gradientEndColorHex. Current: Automatically adopts system Material You accent colors. Multicolor: Threshold array (e.g., Green for battery \u0026gt; 50%, Orange for 20–50%, Red for \u0026lt; 20%). Thumb Indicators # Choose between None, Rounded (circular slider knob), or Custom Pic (a miniature icon or graphic moving along the progress track).\n4. Button Element (ButtonNode) # The Button element turns your micro-widget into an interactive command center. Buttons can fire intents, dismiss cards, dispatch broadcasts, or control media playback.\nButton Action Types (ButtonAction) # Action Type Parameter Behavior Notification Action index (0, 1, 2\u0026hellip;) Triggers the original notification\u0026rsquo;s native action button at the specified index. Dismiss None Dismisses the current notification and hides the island card. Inline Reply None Opens Hyper Bridge\u0026rsquo;s native floating quick-reply dialog for messaging apps. Open App packageName Directly launches the target application via Intent. Deep Link uri Dispatches an ACTION_VIEW intent with a web URL or custom app scheme. Smart Action type (OTP, URL, PHONE, TRACKING) Executes an automated action detected by HyperBridge (e.g., copies OTP code to clipboard). Broadcast action, package, extras Sends a custom explicit/implicit Android broadcast to integrate with Tasker, Automate, or personal apps. Media Control command (play_pause, next, previous, stop) Dispatches a transport control command to the active MediaSession. Icon \u0026amp; Sub-Icon Layout # Configure primary icons and secondary badge icons, positioned as Leading, Trailing, Icon Only, or Top.\nDual-State Conditional Overrides # Buttons can dynamically switch their appearance based on runtime conditions without needing two separate elements! For example, for a Media Play/Pause button:\nDefault State: Label \u0026quot;Play\u0026quot;, Icon play_arrow, Action MediaControl(\u0026quot;play\u0026quot;). Conditional State: When condition is is_media_playing, automatically swaps label to \u0026quot;Pause\u0026quot;, icon to pause, and action to MediaControl(\u0026quot;pause\u0026quot;). 5. Shape Element (ShapeNode) # The Shape element renders vector primitive geometry:\nShape Geometries: circle, rectangle, rounded_rect, pill. Customizable Styling: Fill color, stroke color, border stroke width (dp), and corner radius. Use shapes as badge backgrounds, dividing lines, tinted photo backplates, or status dot indicators. 6. Container Group Element (LayoutContainer) # Containers organize elements into structured layouts. Every micro-widget has a root container (root) and can contain nested groups.\nLayout Flow Modes (ContainerLayout) # ROW: [ Item 1 ] [ Item 2 ] [ Item 3 ] (Horizontal flow) COLUMN: ┌──────────────┐ │ Item 1 │ │ Item 2 │ (Vertical flow) │ Item 3 │ └──────────────┘ BOX: ┌──────────────────────────────┐ │ Layer 3 (Top) │ (Z-stack layering: │ Layer 2 (Middle) │ children drawn on top │ Layer 1 (Bottom) │ of each other) └──────────────────────────────┘ ABSOLUTE: (Canvas freeform coordinates: each element uses explicit X and Y) Gap (dp): Uniform spacing between items in Row and Column layouts. Padding (dp): Inset margin applied inside container boundaries. Backgrounds: Solid color fill or Picture Background (loading album art, wallpapers, or bundled assets with optional blur). 7. Common Node Properties Across All Elements # Every element in the Studio shares these foundational properties:\nPosition \u0026amp; Dimensions: x, y offsets in dp (used in Box and Absolute containers). widthDp, heightDp explicit dimensions. rotation: Freeform rotation angle (-180° to +180°). Stack Layer Ordering: Elements listed lower in the tree or layer panel draw on top of elements above them. Use Bring Forward and Send Back in the Position tab to adjust z-index. Canvas Lock Toggle: Tap the lock icon to prevent accidental dragging or resizing when selecting items on the canvas. Opacity Stepper: Adjust opacity from 0.0 (invisible) to 1.0 (fully opaque). Conditional Visibility (showIf): Control when the element is rendered (covered in Part 3). What\u0026rsquo;s Next in the Series? # Now that you know how each element works, proceed to Part 3 to learn how to wire dynamic notification variables, write formulas, and set up conditional visibility:\n👉 Part 3: Formulas, Dynamic Data \u0026amp; Visibility Conditions\n","externalUrl":null,"permalink":"/docs/customization/custom-widget-elements/","section":"Documentation","summary":"Every design built in the Micro-Widgets Studio is composed of an Abstract Syntax Tree (AST) of visual nodes (CustomWidgetNode). When compiled, Hyper Bridge maps these elements into optimized Android RemoteViews compatible with Xiaomi HyperOS HyperIsland.\n","title":"Custom Widget Elements \u0026 Visual Properties","type":"docs"},{"content":"A key strength of the Micro-Widgets Studio in Hyper Bridge 0.6.0-beta4 is its dynamic execution engine. Rather than rendering static mockups, every property can be tied to live notification data, media sessions, device telemetry, and conditional rules.\nflowchart LR Source[\"Data Source\\n(Notification / Media / Battery / Time / Plugin)\"] --\u003e Engine[\"WidgetVariableEngine\\n({token} Evaluation)\"] Engine --\u003e Props[\"Bindable Properties\\n(Colors, Text, Progress, Bounds, Rotation)\"] Engine --\u003e Condition[\"NodeCondition Evaluator\\n(showIf: Always, Regex, Logic AND/OR)\"] Condition --\u003e Render[\"Compiled RemoteViews on HyperIsland\"] 1. Dynamic Variables \u0026amp; {token} Syntax # The WidgetVariableEngine automatically evaluates placeholder tokens wrapped in curly brackets {token} at render time. If a token is temporarily unavailable (e.g., media is not playing), it safely resolves to an empty string or fallback value without crashing the widget.\nNotification Variables # Token Data Type Description {notif.title} String The main headline or sender name of the notification. {notif.text} String The body text or message preview. {notif.progress} Integer (0–100) Current progress percentage reported by the notification. {notif.package} String Android package name of the issuing application (e.g., com.spotify.music). Media Playback Variables # Hyper Bridge connects directly to the Android MediaSession manager to pull high-precision playback data:\nToken Fallback Description {media.track} {notif.title} Title of the active audio/video track. {media.artist} {notif.text} Performing artist or channel name. {media.progress} {notif.progress} Real-time playback position as a percentage (0–100). {media.duration} None Total track length formatted as MM:SS. {media.position} None Elapsed playback time formatted as MM:SS. {media.is_playing} \u0026quot;false\u0026quot; Boolean string (\u0026quot;true\u0026quot; / \u0026quot;false\u0026quot;). {media.state} None Raw playback state (e.g., PLAYING, PAUSED, BUFFERING). Device \u0026amp; Telemetry Variables # Token Example Description {device.battery} 84 Current battery level (0–100). {time.now} 14:25 Current local time formatted according to user preferences. Color \u0026amp; Palette Tokens # Token Resolves To Description {theme.primary} #3DDA82 Primary accent color from the active theme or color scheme. {theme.accent} #00E5FF Secondary accent color. {theme.surface} #1E1E1E Card surface container color. {scheme.\u0026lt;role\u0026gt;} Hex string Direct access to any Material 3 color role (e.g., {scheme.primary}, {scheme.surfaceContainer}). External Content Source Tokens ({source.\u0026lt;id\u0026gt;.\u0026lt;field\u0026gt;}) # Hyper Bridge allows third-party apps, plugins, and automation tools (like Tasker) to push custom data to HyperIsland widgets via the UPDATE_SOURCE broadcast:\n{source.weather.temp} → Resolves current temperature from a weather plugin {source.crypto.btc_price} → Resolves live Bitcoin price from a finance helper 2. The Studio Formula Dialog (StudioFormulaDialog) # In addition to static text templates, nearly every visual property can be bound to dynamic formulas using the Formula Dialog:\n┌────────────────────────────────────────────────────────┐ │ Formula: Text Color Hex │ ├────────────────────────────────────────────────────────┤ │ Template: {scheme.primary} │ │ │ │ Evaluates to: #38BDF8 (in current scenario) │ ├────────────────────────────────────────────────────────┤ │ Quick Tokens: │ │ [ {notif.title} ] [ {media.track} ] [ {device.battery} ]│ │ [ {theme.primary} ] [ {scheme.primary} ] [ {time.now} ] │ └────────────────────────────────────────────────────────┘ Bindable Properties (BindableProperty) # Tap the Formula (Fx) icon next to any property in the Studio Inspector to bind a dynamic formula:\nText: template, colorHex, fontSizeSp Progress: valueTemplate, progressColorHex, gradientEndColorHex, trackColorHex, strokeWidthDp Button: label, textColorHex, backgroundHex, icon, subIcon, strokeColorHex Image: tintHex Container: backgroundHex Geometry: widthDp, heightDp, opacity, rotation 3. Visibility Conditions (NodeCondition) # You don\u0026rsquo;t always want every element visible. For instance:\nA \u0026ldquo;Reply\u0026rdquo; button should only appear if the notification actually supports quick reply. A progress bar should stay hidden unless there is an active download or media session. A verification code badge should only display if an OTP code is detected. Switch to the Visibility tab on any element to configure its display rule:\nCore Condition Types # Condition Mode Parameter True When Always None The element is always displayed. Has Smart Action type (OTP, URL, PHONE, TRACKING) Hyper Bridge detects a matching smart action on the notification. Has Button Action index (0, 1, 2\u0026hellip;) The notification carries an action button at that slot. Can Reply None The notification includes a direct inline reply input (RemoteInput). Has Progress None The notification carries numeric progress data. Media Playing None Active playback is currently playing. Value Not Blank template The resolved token string is not empty or whitespace. Value Matches (Regex) template, regex The resolved string matches the regular expression pattern. 4. Compound Rules \u0026amp; Quick Presets # Compound Logic (AND / OR / NOT) # Switch the Condition Mode to Compound to combine multiple criteria:\nMatch ALL rules (AND): Every sub-rule must pass for the element to display. Match ANY rule (OR): If any single sub-rule passes, the element is displayed. Invert Rule (NOT): Flips the condition logic (e.g., \u0026ldquo;Show ONLY when media is NOT playing\u0026rdquo;). Quick Presets # Tap Presets to apply common smart behaviors in one tap:\nOTP Code: Visible only when an SMS or 2FA notification carries a one-time passcode. Active Progress: Visible only when progress percent is between 1% and 100%. Quick Reply: Visible only on messaging notifications with inline reply capabilities. Low Battery: Visible only when {device.battery} is less than 20%. Live Testing with the Scenario Switcher # Whenever you write a formula or condition, use the Studio Scenario Switcher (described in Part 1) to test how your element reacts across different notification states:\nSwitch to 🎵 Media Playing: Verify that your track title resolves and playback progress displays. Switch to 🔋 Low Battery: Check that your low-battery warning badge turns visible. Switch to ✉️ Standard Notification: Confirm that media controls hide cleanly and only message text is shown. What\u0026rsquo;s Next in the Series? # Now that you know how to build dynamic, responsive layouts, proceed to Part 4 to master Material 3 dynamic color schemes and YAML palette definitions:\n👉 Part 4: Color Schemes \u0026amp; Material 3 Dynamic Palettes\n","externalUrl":null,"permalink":"/docs/customization/custom-widget-formulas-conditions/","section":"Documentation","summary":"A key strength of the Micro-Widgets Studio in Hyper Bridge 0.6.0-beta4 is its dynamic execution engine. Rather than rendering static mockups, every property can be tied to live notification data, media sessions, device telemetry, and conditional rules.\n","title":"Formulas, Dynamic Data \u0026 Visibility Conditions","type":"docs"},{"content":"Starting with Hyper Bridge 0.6.0-beta4, the custom widget engine features a full Material 3 Dynamic Color Architecture (DynamicColorSchemeResolver).\nInstead of hardcoding static hex colors into your widgets, you can now bind visual elements to semantic color roles. Widgets can adapt automatically to your wallpaper, the notifying app\u0026rsquo;s launcher icon, or album artwork—or follow a custom YAML color palette you create!\nflowchart TD Sources[\"5 Palette Sources\"] --\u003e Resolver[\"DynamicColorSchemeResolver\"] Sources --\u003e PhoneDyn[\"1. Phone Dynamic (Monet M3)\"] Sources --\u003e PhoneExp[\"2. Phone Expressive (Wallpaper)\"] Sources --\u003e AppIcon[\"3. App Icon Expressive\"] Sources --\u003e NotifMedia[\"4. Notification Media (Album Art / Avatar)\"] Sources --\u003e CustomYaml[\"5. Custom YAML Scheme (.hscheme.yaml)\"] Resolver --\u003e Roles[\"20+ Material 3 Color Roles\\n(primary, surfaceContainer, outline, etc.)\"] Roles --\u003e Elements[\"Widget Elements \u0026 Formulas\\n({scheme.primary}, {scheme.surface})\"] 1. The 5 Palette Sources # In the Studio\u0026rsquo;s Global tab (or when configuring a color property), you can choose how your widget resolves its color palette:\n1. Phone Dynamic (Monet M3) # Draws tonal palettes directly from Android\u0026rsquo;s system Material You (Monet) engine. When you change your phone\u0026rsquo;s system theme or wallpaper accent, your island widget smoothly reflects the new system colors.\n2. Phone Expressive (Dynamic M3) # Synthesizes a high-contrast, expressive tonal palette generated from your active desktop wallpaper.\n3. App Icon Expressive # Extracts vibrant seed colors directly from the application icon that generated the notification.\nSpotify notifications adopt Spotify\u0026rsquo;s vibrant green. YouTube notifications shift to bold red accents. Telegram cards tint in vivid sky blue. 4. Notification Media Expressive # Extracts color palettes on the fly from incoming image attachments:\nAlbum Art / Large Media: Music player islands dynamically tint to match the playing album cover. Picture Attachment: Photo sharing and messaging notifications adapt to image previews. Sender Avatar: Direct chat islands pull seed colors from the contact\u0026rsquo;s profile photo. 5. Custom YAML Scheme # Applies a custom creator-defined palette file (.hscheme.yaml) or one of Hyper Bridge\u0026rsquo;s built-in curated presets:\nHyperOS Classic: HyperOS electric blue accent (#0A84FF). Emerald Mint: Fresh vibrant emerald (#10B981). Sunset Orange: Warm neon orange (#FF5722). Ocean Breeze: Deep cyan \u0026amp; turquoise (#00BCD4). Neon Violet: Vivid purple (#8B5CF6). Monochrome: Minimalist grayscale tonal palette (#9E9E9E). 2. Material 3 Standard Color Roles # Hyper Bridge maps 20+ standard Material 3 color roles. You can reference any of these in text, backgrounds, buttons, and progress bars:\nToken Key Role Name Intended Usage primary Primary High-emphasis accent: progress fill, key buttons, important badges. on_primary On Primary Text or icons rendered on top of primary backgrounds. primary_container Primary Container Soft accent fill for card highlights and secondary badges. on_primary_container On Primary Container Typography rendered on top of primary_container. secondary Secondary Secondary accents, status pill dots, and minor action triggers. on_secondary On Secondary Contrast color for elements on secondary fills. tertiary Tertiary Contrasting visual accent for timestamps, alerts, or tags. surface Surface Main background fill for cards and containers. on_surface On Surface Primary text color for titles and headlines. surface_variant Surface Variant Subtitle text, divider lines, and subtle containers. on_surface_variant On Surface Variant Secondary body copy and metadata timestamps. surface_container Surface Container Standard elevated background for nested cards and rows. surface_container_high Surface Container High Elevated button backgrounds and popups. surface_container_low Surface Container Low Recessed backplates and track grooves. outline Outline Stroke borders for buttons, shapes, and dividers. outline_variant Outline Variant Subtle secondary borders. error Error Critical warnings, low battery badges, and decline actions. on_error On Error Text rendered over error backgrounds. 3. Authoring YAML Color Schemes (.hscheme.yaml) # Hyper Bridge uses a clean, human-readable YAML specification for color schemes (YamlColorSchemeParser). You can write these files in any text editor and import them into the app.\nFile Format Specification # A color scheme file must use the extension .yaml, .yml, or .hscheme.yaml:\nid: sunset_neon name: Sunset Neon author: HyperCreator description: Vibrant warm neon palette for night owls is_dark: true roles: primary: \u0026#34;#FF5E3A\u0026#34; on_primary: \u0026#34;#FFFFFF\u0026#34; primary_container: \u0026#34;#5C1500\u0026#34; on_primary_container: \u0026#34;#FFDBCF\u0026#34; secondary: \u0026#34;#FF9500\u0026#34; on_secondary: \u0026#34;#000000\u0026#34; secondary_container: \u0026#34;#4B2800\u0026#34; on_secondary_container: \u0026#34;#FFDCBE\u0026#34; tertiary: \u0026#34;#FF2A6D\u0026#34; on_tertiary: \u0026#34;#FFFFFF\u0026#34; surface: \u0026#34;#141112\u0026#34; on_surface: \u0026#34;#EDE0DE\u0026#34; surface_variant: \u0026#34;#251D1F\u0026#34; on_surface_variant: \u0026#34;#D7C1BD\u0026#34; surface_container: \u0026#34;#1E1819\u0026#34; surface_container_high: \u0026#34;#2B2224\u0026#34; surface_container_low: \u0026#34;#181314\u0026#34; outline: \u0026#34;#9F8C88\u0026#34; outline_variant: \u0026#34;#524341\u0026#34; error: \u0026#34;#FFB4AB\u0026#34; on_error: \u0026#34;#690005\u0026#34; Hex Color Formatting Rules # Hex codes may be 6 digits (#RRGGBB), 8 digits (#AARRGGBB with opacity), or 3 digits (#RGB). Unspecified roles automatically fall back to synthesized tonal values based on primary. 4. The Studio Color Picker (StudioColorField) # Whenever you edit a color in the Studio (e.g. text color, button background, container fill), tapping the color chip opens the Color Scheme Picker Sheet:\n┌────────────────────────────────────────────────────────┐ │ Select Color │ ├────────────────────────────────────────────────────────┤ │ [ Color Scheme Tokens ] [ Custom Hex Color ] │ ├────────────────────────────────────────────────────────┤ │ Quick Roles: │ │ [ Primary ■ #FF5E3A ] [ Secondary ■ #FF9500 ]│ │ [ Surface ■ #141112 ] [ Error ■ #FFB4AB ]│ │ │ │ All Material 3 Roles: │ │ ● Primary Container ■ #5C1500 │ │ ● On Surface Variant ■ #D7C1BD │ │ ● Surface Container High ■ #2B2224 │ └────────────────────────────────────────────────────────┘ Color Scheme Tokens Tab: Select any semantic role (@scheme:primary). Your element will automatically update if the user swaps themes or wallpapers! Custom Hex Color Tab: Use a color wheel, RGB sliders, or direct hex input (#38BDF8) for fixed, non-adaptive styling. 5. In-App Scheme Management \u0026amp; YAML Import/Export # The Global tab of the Studio gives you full control over palette persistence:\nImport Palette (YAML): Tap Import Palette to select any .hscheme.yaml or .yaml file from your device storage. Hyper Bridge parses and validates the roles immediately. Export Palette (YAML): Tap Export Palette to serialize your current colors into clean YAML and share them with other users. Embed in Design (embeddedColorSchemeYaml): When enabled, the full YAML color scheme is saved directly inside your widget.json file. When you share the widget as a .hwidget, recipients get your custom color palette without needing to install separate scheme files! What\u0026rsquo;s Next in the Series? # Now that your widget looks stunning and adapts to color roles, proceed to the final part of the series to learn how .hwidget packages are structured, how to export and share them, and how to handcraft widget files from scratch:\n👉 Part 5: Packaging, Sharing \u0026amp; Handcrafting .hwidget Files\n","externalUrl":null,"permalink":"/docs/customization/custom-widget-color-schemes/","section":"Documentation","summary":"Starting with Hyper Bridge 0.6.0-beta4, the custom widget engine features a full Material 3 Dynamic Color Architecture (DynamicColorSchemeResolver).\nInstead of hardcoding static hex colors into your widgets, you can now bind visual elements to semantic color roles. Widgets can adapt automatically to your wallpaper, the notifying app’s launcher icon, or album artwork—or follow a custom YAML color palette you create!\n","title":"Color Schemes \u0026 Material 3 Dynamic Palettes","type":"docs"},{"content":"Every design created in Hyper Bridge can be packaged, backed up, and shared across devices as a standalone .hwidget file.\nUnder the hood, a .hwidget file is a standard ZIP archive containing the widget\u0026rsquo;s structural tree (widget.json), its notification binding rules (translator.json), and any embedded image or vector graphics (assets/).\nflowchart TD Archive[\".hwidget Package (ZIP Archive)\"] Archive --\u003e W[\"widget.json\\n(CustomWidgetDocument AST Tree)\"] Archive --\u003e T[\"translator.json\\n(Bound CustomTranslator \u0026 Triggers)\"] Archive --\u003e A[\"assets/\\n(Custom PNG / SVG graphics \u0026 textures)\"] W --\u003e Meta[\"Metadata (name, author, version)\"] W --\u003e Canvas[\"Canvas Size (SMALL, MEDIUM, LARGE, XLARGE)\"] W --\u003e Globals[\"Globals (Colors, Fonts, embeddedColorSchemeYaml)\"] W --\u003e Root[\"Root Container \u0026 Child Elements\"] 1. Anatomy of a .hwidget Package # If you rename a .hwidget file to .zip and extract it, you will find the following clean structure:\nmy_awesome_widget.hwidget/ ├── widget.json # Complete AST layout and element definition ├── translator.json # Interceptor rules, notification triggers, and pill styling └── assets/ # Optional local graphics referenced in ImageNode ├── logo.png ├── background_pattern.png └── verified_badge.svg The widget.json File # This file stores the CustomWidgetDocument model. Here is a clean, minimal example of a functional music widget:\n{ \u0026#34;id\u0026#34;: \u0026#34;music_compact_v1\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;Compact Music Island\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;HyperCreator\u0026#34;, \u0026#34;version\u0026#34;: 1, \u0026#34;icon\u0026#34;: \u0026#34;music_note\u0026#34; }, \u0026#34;canvas\u0026#34;: \u0026#34;MEDIUM\u0026#34;, \u0026#34;permanentIslandEligible\u0026#34;: true, \u0026#34;globals\u0026#34;: { \u0026#34;primaryColorHex\u0026#34;: \u0026#34;#38BDF8\u0026#34;, \u0026#34;accentColorHex\u0026#34;: \u0026#34;#F43F5E\u0026#34;, \u0026#34;fontFamily\u0026#34;: \u0026#34;default\u0026#34;, \u0026#34;colorSchemeConfig\u0026#34;: { \u0026#34;sourceType\u0026#34;: \u0026#34;notification_media_expressive\u0026#34;, \u0026#34;mediaSourceKey\u0026#34;: \u0026#34;album_art\u0026#34; } }, \u0026#34;root\u0026#34;: { \u0026#34;id\u0026#34;: \u0026#34;root\u0026#34;, \u0026#34;layout\u0026#34;: \u0026#34;ROW\u0026#34;, \u0026#34;gapDp\u0026#34;: 12, \u0026#34;paddingDp\u0026#34;: 8, \u0026#34;backgroundType\u0026#34;: \u0026#34;solid\u0026#34;, \u0026#34;backgroundHex\u0026#34;: \u0026#34;#18181B\u0026#34;, \u0026#34;children\u0026#34;: [ { \u0026#34;type\u0026#34;: \u0026#34;image\u0026#34;, \u0026#34;id\u0026#34;: \u0026#34;album_cover\u0026#34;, \u0026#34;bounds\u0026#34;: { \u0026#34;x\u0026#34;: 0, \u0026#34;y\u0026#34;: 0, \u0026#34;widthDp\u0026#34;: 64, \u0026#34;heightDp\u0026#34;: 64, \u0026#34;rotation\u0026#34;: 0.0 }, \u0026#34;source\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;notif_media\u0026#34;, \u0026#34;mediaType\u0026#34;: \u0026#34;avatar\u0026#34; }, \u0026#34;shapeId\u0026#34;: \u0026#34;squircle\u0026#34;, \u0026#34;cornerRadiusDp\u0026#34;: 16, \u0026#34;mode\u0026#34;: \u0026#34;bitmap\u0026#34;, \u0026#34;scaleType\u0026#34;: \u0026#34;center_crop\u0026#34; }, { \u0026#34;type\u0026#34;: \u0026#34;container\u0026#34;, \u0026#34;id\u0026#34;: \u0026#34;meta_column\u0026#34;, \u0026#34;layout\u0026#34;: \u0026#34;COLUMN\u0026#34;, \u0026#34;gapDp\u0026#34;: 4, \u0026#34;paddingDp\u0026#34;: 0, \u0026#34;children\u0026#34;: [ { \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;, \u0026#34;id\u0026#34;: \u0026#34;track_title\u0026#34;, \u0026#34;template\u0026#34;: \u0026#34;{media.track}\u0026#34;, \u0026#34;fontSizeSp\u0026#34;: 15, \u0026#34;colorHex\u0026#34;: \u0026#34;#FFFFFF\u0026#34;, \u0026#34;bold\u0026#34;: true, \u0026#34;maxLines\u0026#34;: 1, \u0026#34;marquee\u0026#34;: true }, { \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;, \u0026#34;id\u0026#34;: \u0026#34;artist_name\u0026#34;, \u0026#34;template\u0026#34;: \u0026#34;{media.artist}\u0026#34;, \u0026#34;fontSizeSp\u0026#34;: 12, \u0026#34;colorHex\u0026#34;: \u0026#34;#A1A1AA\u0026#34;, \u0026#34;maxLines\u0026#34;: 1 }, { \u0026#34;type\u0026#34;: \u0026#34;progress\u0026#34;, \u0026#34;id\u0026#34;: \u0026#34;playback_bar\u0026#34;, \u0026#34;bounds\u0026#34;: { \u0026#34;x\u0026#34;: 0, \u0026#34;y\u0026#34;: 0, \u0026#34;widthDp\u0026#34;: 160, \u0026#34;heightDp\u0026#34;: 6, \u0026#34;rotation\u0026#34;: 0.0 }, \u0026#34;style\u0026#34;: \u0026#34;LINEAR\u0026#34;, \u0026#34;mode\u0026#34;: \u0026#34;WAVE\u0026#34;, \u0026#34;colorMode\u0026#34;: \u0026#34;GRADIENT\u0026#34;, \u0026#34;valueTemplate\u0026#34;: \u0026#34;{media.progress}\u0026#34;, \u0026#34;progressColorHex\u0026#34;: \u0026#34;#38BDF8\u0026#34;, \u0026#34;gradientEndColorHex\u0026#34;: \u0026#34;#818CF8\u0026#34;, \u0026#34;trackColorHex\u0026#34;: \u0026#34;#27272A\u0026#34;, \u0026#34;roundCaps\u0026#34;: true } ] }, { \u0026#34;type\u0026#34;: \u0026#34;button\u0026#34;, \u0026#34;id\u0026#34;: \u0026#34;play_toggle\u0026#34;, \u0026#34;bounds\u0026#34;: { \u0026#34;x\u0026#34;: 0, \u0026#34;y\u0026#34;: 0, \u0026#34;widthDp\u0026#34;: 44, \u0026#34;heightDp\u0026#34;: 44, \u0026#34;rotation\u0026#34;: 0.0 }, \u0026#34;label\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;action\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;media_control\u0026#34;, \u0026#34;command\u0026#34;: \u0026#34;play_pause\u0026#34; }, \u0026#34;icon\u0026#34;: \u0026#34;play\u0026#34;, \u0026#34;iconPosition\u0026#34;: \u0026#34;icon_only\u0026#34;, \u0026#34;shapeId\u0026#34;: \u0026#34;circle\u0026#34;, \u0026#34;backgroundHex\u0026#34;: \u0026#34;#27272A\u0026#34;, \u0026#34;conditionalEnabled\u0026#34;: true, \u0026#34;condition\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;is_media_playing\u0026#34; }, \u0026#34;conditionalIcon\u0026#34;: \u0026#34;pause\u0026#34;, \u0026#34;conditionalBackgroundHex\u0026#34;: \u0026#34;#38BDF8\u0026#34; } ] } } The translator.json File # This file binds your custom widget to incoming notifications via Hyper Bridge\u0026rsquo;s Custom Translators Engine:\n{ \u0026#34;id\u0026#34;: \u0026#34;translator_music_compact\u0026#34;, \u0026#34;meta\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;Compact Music Island\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Transforms Spotify and media player cards into wave islands\u0026#34;, \u0026#34;iconName\u0026#34;: \u0026#34;music_note\u0026#34;, \u0026#34;author\u0026#34;: \u0026#34;HyperCreator\u0026#34;, \u0026#34;version\u0026#34;: 1 }, \u0026#34;priority\u0026#34;: 100, \u0026#34;targetScope\u0026#34;: \u0026#34;NOTIFICATION_TYPE\u0026#34;, \u0026#34;targetNotificationTypes\u0026#34;: [\u0026#34;MEDIA\u0026#34;], \u0026#34;presentation\u0026#34;: { \u0026#34;mode\u0026#34;: \u0026#34;WIDGET\u0026#34;, \u0026#34;widgetId\u0026#34;: \u0026#34;music_compact_v1\u0026#34; } } 2. Handcrafting .hwidget Files from Scratch # For power users who prefer using code editors (VS Code, Sublime, etc.) instead of the phone screen:\nCreate a workspace folder on your PC named after your widget (e.g. my_widget/). Inside that folder, create widget.json and paste your layout tree. Create translator.json and specify which apps or notification types should trigger it. (Optional) Create an assets/ subfolder and place any custom icons, logos, or PNG backplates referenced by \u0026quot;source\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;custom_asset\u0026quot;, \u0026quot;fileName\u0026quot;: \u0026quot;logo.png\u0026quot; }. Compress the contents: Select the files inside the folder (widget.json, translator.json, and assets/). Create a standard ZIP archive. Rename .zip to .hwidget. Warning Avoid Nested Root Folders:\nEnsure your ZIP file contains widget.json at the root of the archive, rather than inside a parent subfolder (e.g., archive.zip \u0026gt; widget.json, NOT archive.zip \u0026gt; my_widget \u0026gt; widget.json).\n3. In-App Exporting \u0026amp; Sharing # Sharing your designs from inside Hyper Bridge takes just one tap:\nOpen the Designs Manager or the Studio. Tap the Export (Share) icon on the top app bar or inside the design card\u0026rsquo;s three-dot menu. Hyper Bridge packages the .hwidget archive and presents the system Android Share Sheet. Send the file directly through Telegram, Discord, email, or save it to Google Drive / local storage. Duplicating Designs # When you tap Duplicate on any design:\nHyper Bridge assigns a new, unique widget UUID. Clones and decouples all local asset files. Generates a separate bound translator. This ensures changes made to the duplicate will never overwrite or corrupt the original design! 4. In-App Importing \u0026amp; Safety Guardrails # Hyper Bridge 0.6.0-beta4 makes importing community widgets effortless and secure:\nSystem File Association # You can tap any .hwidget file directly in your mobile browser, Telegram, WhatsApp, Discord, or file manager. Android will automatically offer Hyper Bridge to open the file, bringing up a clean confirmation dialog displaying the widget name, author, and preview.\nBuilt-in Security Guardrails # To protect your device and app stability, every imported .hwidget undergoes strict checks by WidgetImportGuard and WidgetDimensionValidator:\nSafety Check Guardrail Limit Protection Safe Identifier Check Path traversal filter Prevents path traversal attacks (e.g. ../../ folder injections). Max Unpacked Size Size limit verification Rejects malicious \u0026ldquo;zip-bomb\u0026rdquo; archives that decompress beyond allowed thresholds. Max JSON Nesting Recursive depth limit Blocks maliciously nested JSON documents to prevent Android stack overflow crashes. Dimension Clamping Layout boundary validator Automatically clamps extreme or negative coordinates to keep the widget within physical island boundaries. 5. Full Backup \u0026amp; Restore Support # In Hyper Bridge 0.6.0-beta4, the app\u0026rsquo;s backup system includes full support for:\nAll installed and handcrafted Custom Widgets (custom_widgets/). Associated translators and notification binding rules. Custom YAML Color Schemes (color_schemes/). When backing up your settings in Settings \u0026gt; Backup \u0026amp; Restore, your custom designs are preserved completely, ready to be restored onto a new device with a single click.\nSummary of the Series # Congratulations! You now have a complete mastery of the Custom Widget Design architecture in Hyper Bridge:\n🎨 Part 1: Studio Overview \u0026amp; In-App Builder — Navigation, canvas controls, scenario switcher, and draft persistence. 📐 Part 2: Elements \u0026amp; Visual Properties — The 6 core elements (Text, Image, Progress, Button, Shape, Container) and their visual properties. ⚡ Part 3: Formulas, Dynamic Data \u0026amp; Visibility Conditions — Dynamic tokens, property bindings, and smart visibility conditions. 🌈 Part 4: Color Schemes \u0026amp; Dynamic Palettes — Material 3 dynamic color engine and .hscheme.yaml authoring. 📦 Part 5: Packaging, Sharing \u0026amp; Handcrafting .hwidget Files — Package structure, handcrafting files from scratch, importing, and safety guards. ","externalUrl":null,"permalink":"/docs/customization/custom-widget-files-packaging/","section":"Documentation","summary":"Every design created in Hyper Bridge can be packaged, backed up, and shared across devices as a standalone .hwidget file.\nUnder the hood, a .hwidget file is a standard ZIP archive containing the widget’s structural tree (widget.json), its notification binding rules (translator.json), and any embedded image or vector graphics (assets/).\n","title":"Packaging, Sharing \u0026 Handcrafting .hwidget Files","type":"docs"},{"content":"Configure the necessary Android and Xiaomi HyperOS permissions below to ensure uninterrupted Dynamic Island updates.\n","externalUrl":null,"permalink":"/docs/permissions/","section":"Documentation","summary":"Configure the necessary Android and Xiaomi HyperOS permissions below to ensure uninterrupted Dynamic Island updates.\n","title":"Permissions \u0026 HyperOS Setup","type":"docs"},{"content":"Learn how to pair Shizuku via Wireless Debugging (rootless) and unlock privileged System UI capabilities.\n","externalUrl":null,"permalink":"/docs/shizuku/","section":"Documentation","summary":"Learn how to pair Shizuku via Wireless Debugging (rootless) and unlock privileged System UI capabilities.\n","title":"Shizuku Integration","type":"docs"},{"content":"Explore step-by-step guides on personalizing your Xiaomi HyperOS HyperIsland using Hyper Bridge\u0026rsquo;s built-in visual tools:\nDesign Studio \u0026amp; Hub: Learn how the Bento grid, hero showcase, and central creation action sheet work. Visual Theme Creator: Customize colors, dynamic app extraction, geometric masks, call buttons, and export/import .hbr themes without code. System Widgets Guide: Mount any Android home-screen widget (Spotify, Google Calendar, Weather) directly into your HyperIsland. Island Templates \u0026amp; Designs: Browse and apply Xiaomi\u0026rsquo;s 10 official HyperIsland layouts (waypoint delivery, OTP payment, boarding pass, etc.). Custom Translators Guide: Build notification rules using the in-app visual editor, regex matching, and smart action buttons. 🎨 Custom Widget Design Series (Hyper Bridge 0.6.0-beta4) # A comprehensive 5-part guide to building, styling, and packaging KWGT-style micro-widgets for Xiaomi HyperOS HyperIsland:\nPart 1: Studio Overview \u0026amp; In-App Builder: Interface walkthrough, canvas controls (350dp), floating toolbar, scenario switcher, and draft persistence. Part 2: Elements \u0026amp; Visual Properties: All 6 building block elements (Text, Image, Progress, Button, Shape, Container) and their properties. Part 3: Formulas, Dynamic Data \u0026amp; Visibility Conditions: Dynamic {token} interpolation, bindable properties, and showIf visibility conditions. Part 4: Color Schemes \u0026amp; Dynamic Palettes: Material 3 dynamic color architecture, 5 palette sources, and YAML color scheme authoring (.hscheme.yaml). Part 5: Packaging, Sharing \u0026amp; Handcrafting .hwidget Files: Anatomy of .hwidget archives, handcrafting from scratch, in-app export/import, and safety guardrails. Looking for Developer Specifications \u0026amp; APIs?\nFor technical JSON schemas, the .htrans specification, RAW_PARAM_V2 direct Xiaomi protocol, .hbr ZIP packaging rules, and companion Android Intent APIs, visit the Advanced \u0026amp; Developer section. ","externalUrl":null,"permalink":"/docs/customization/","section":"Documentation","summary":"Explore step-by-step guides on personalizing your Xiaomi HyperOS HyperIsland using Hyper Bridge’s built-in visual tools:\nDesign Studio \u0026 Hub: Learn how the Bento grid, hero showcase, and central creation action sheet work. Visual Theme Creator: Customize colors, dynamic app extraction, geometric masks, call buttons, and export/import .hbr themes without code. System Widgets Guide: Mount any Android home-screen widget (Spotify, Google Calendar, Weather) directly into your HyperIsland. Island Templates \u0026 Designs: Browse and apply Xiaomi’s 10 official HyperIsland layouts (waypoint delivery, OTP payment, boarding pass, etc.). Custom Translators Guide: Build notification rules using the in-app visual editor, regex matching, and smart action buttons. 🎨 Custom Widget Design Series (Hyper Bridge 0.6.0-beta4) # A comprehensive 5-part guide to building, styling, and packaging KWGT-style micro-widgets for Xiaomi HyperOS HyperIsland:\n","title":"Customization \u0026 User Guides","type":"docs"},{"content":"Discover the core notification engine capabilities, media controls, smart 1-tap OTP copy, and native HyperOS system integrations in Hyper Bridge:\nDynamic Island Engine: How notifications and live events are transformed into HyperIslands. Permanent Island: Keep an elegant camera cutout pill displayed continuously during idle state. Inline Reply: Seamless floating chat reply box with glassmorphism and custom color modes. Native System Apps \u0026amp; Options: Specialized live indicators for Screen Recording, System Updates, and VPN. Smart Actions: Contextual 1-tap actions for two-factor authentication OTPs, parcel tracking, addresses, and call actions. ","externalUrl":null,"permalink":"/docs/features/","section":"Documentation","summary":"Discover the core notification engine capabilities, media controls, smart 1-tap OTP copy, and native HyperOS system integrations in Hyper Bridge:\nDynamic Island Engine: How notifications and live events are transformed into HyperIslands. Permanent Island: Keep an elegant camera cutout pill displayed continuously during idle state. Inline Reply: Seamless floating chat reply box with glassmorphism and custom color modes. Native System Apps \u0026 Options: Specialized live indicators for Screen Recording, System Updates, and VPN. Smart Actions: Contextual 1-tap actions for two-factor authentication OTPs, parcel tracking, addresses, and call actions. ","title":"Features Overview","type":"docs"},{"content":"The Advanced \u0026amp; Developer section contains complete technical references, JSON schemas, Android intent APIs, and architectural specifications for developers, theme makers, and power users.\nExplore the technical guides:\nTranslators Technical Specification: Detailed JSON schema reference for .htrans, pattern matching engine, RAW_PARAM_V2 direct Xiaomi protocol, custom variables, and Smart Action injection. Theme Packaging Specification (.hbr): Folder structure, theme_config.json schema, bundling custom translators, and Android Intent integration (com.d4viddf.hyperbridge.APPLY_THEME). Shizuku Privileged Capabilities: Technical details on rootless elevated permissions and HyperOS System UI integrations. ","externalUrl":null,"permalink":"/docs/advanced/","section":"Documentation","summary":"The Advanced \u0026 Developer section contains complete technical references, JSON schemas, Android intent APIs, and architectural specifications for developers, theme makers, and power users.\nExplore the technical guides:\nTranslators Technical Specification: Detailed JSON schema reference for .htrans, pattern matching engine, RAW_PARAM_V2 direct Xiaomi protocol, custom variables, and Smart Action injection. Theme Packaging Specification (.hbr): Folder structure, theme_config.json schema, bundling custom translators, and Android Intent integration (com.d4viddf.hyperbridge.APPLY_THEME). Shizuku Privileged Capabilities: Technical details on rootless elevated permissions and HyperOS System UI integrations. ","title":"Advanced \u0026 Developer","type":"docs"},{"content":"Find instant answers to frequently asked questions and troubleshooting guides for Xiaomi HyperOS quirks.\n","externalUrl":null,"permalink":"/docs/troubleshooting/","section":"Documentation","summary":"Find instant answers to frequently asked questions and troubleshooting guides for Xiaomi HyperOS quirks.\n","title":"Troubleshooting \u0026 FAQ","type":"docs"},{"content":"Learn how to get involved with the open-source Hyper Bridge project by contributing code, reporting issues, or submitting translations.\n","externalUrl":null,"permalink":"/docs/contributing/","section":"Documentation","summary":"Learn how to get involved with the open-source Hyper Bridge project by contributing code, reporting issues, or submitting translations.\n","title":"Community \u0026 Contributing","type":"docs"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Follow the latest updates, features, and release history for HyperBridge.\nHyperBridge v0.6.0-beta3 🚀 # Welcome to v0.6.0-beta3! This release introduces the all-new Design Hub with a Bento Grid layout, a visual Island Template Composer supporting all 10 official Xiaomi HyperOS island layouts, critical fixes for Xiaomi HyperOS 4 Beta compatibility, and a streamlined documentation section.\n🎨 Visual Island Template Composer \u0026amp; New Design Hub # Redesigned Design Screen: A modern Bento Grid interface that puts Themes, Island Widgets, Custom Designs, and Smart Translators at your fingertips. 10 Official HyperOS Island Templates: Compose rich Dynamic Island layouts directly within the app using official templates—ranging from delivery tracking, boarding passes, progress transfers, and call cards to media capsules. Visual Design Manager: Easily filter, inspect, preview, and toggle active custom designs per app or system-wide. 📖 Learn more in the docs: Customization Overview Design Hub Guide Custom Designs \u0026amp; Templates Theme Creator Widgets Guide ⚠️ Note on the Featured Section:\nThe Featured section on the Design screen is currently a work in progress (preview placeholders). In the stable HyperBridge 0.6.0 final release, this carousel will directly connect to the official website and community hub, allowing users to discover, browse, download, and install community themes, custom designs, and smart translators with a single tap.\n🚀 Streamlined Guides \u0026amp; Direct Documentation Access # In-app help sheets and guide links have been consolidated into clean, direct section cards pointing straight to official, up-to-date online guides: 🎨 Customization: Themes, templates, custom translators, and island widgets. ⚡ Features: System apps integration (Timer, Recorder, Screen Recording), Smart Actions, Inline Reply, and Permanent Island. 🛠️ Advanced: Shizuku override, troubleshooting, diagnostics, and power-user configurations. 🧩 Custom Translators Specification: Build regex and condition-based interceptors for any notification. 🛠️ Fixes \u0026amp; Improvements # HyperOS 4 Beta Compatibility: Fixed an issue where standard and messaging notification islands were skipped by the system on HyperOS 4 Beta by ensuring the dismissible island parameter is explicitly set to false. Direct App Launching from Messaging Islands: Tapping on message island capsules now opens the target application reliably via a direct activity intent rather than an intermediate broadcast trampoline. String Quota \u0026amp; Performance Optimization: Massive reduction and deduplication of app string resources to keep Crowdin hosted translations within limits, while keeping guides richer and always current on the website. What\u0026rsquo;s Changed # fix: message island tap opens the app through an activity, not a broadcast trampoline (#371, #382) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/386 fix: ensure small and big island visibility on HyperOS 4 Beta by setting dismissible to false by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/393 feat(design): Visual Island Template Composer with 10 official HyperOS templates, Design Hub Bento Grid \u0026amp; Design Manager (#272, #327, #383, #385) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/390 refactor(strings): optimize string resources for Crowdin quota and streamline documentation guides by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/399 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-beta2...v0.6.0-beta3\nHyperBridge v0.6.0-beta1 🚀 # Welcome to HyperBridge v0.6.0-beta1! This milestone release marks the arrival of the all-new Custom Translators Framework (.htrans), powerful RAW_PARAM_V2 presentation modes, built-in Visual Translator Editor, System Update Islands, and key stability fixes for Android 15 \u0026amp; 16.\n⚠️ Beta Notice: Custom Translators \u0026amp; Full Engine Rework # This release includes a complete architectural rework of our translation engine and the very first public implementation of the Custom Translators system.\nBecause this is a major transition:\nSome advanced features, custom edge-case layouts, or specific token interpolations may still behave unexpectedly or contain bugs. Certain legacy behaviors or templates may require minor adjustments. We need your feedback! If you encounter any bugs, crashes, broken presentations, or missing features, please let us know by opening a GitHub Issue or posting in our Discussions. Your reports directly help us stabilize the engine for the final 0.6.0 release.\n🌟 Highlights \u0026amp; Major Features # 🧩 Custom Translators Framework (.htrans) # Take total control over how any app\u0026rsquo;s notifications render on Xiaomi HyperOS Super Island. Define custom matching rules, regex extractions, variable tokens, dynamic actions, and theme bindings without waiting for app updates.\nImport, Export \u0026amp; Share: Seamlessly package .htrans or .htrans.zip packages with embedded artwork and share them across devices via Storage Access Framework (SAF). Built-in Visual Editor: Build and test translators directly inside the HyperBridge app. 📖 Learn more in our documentation:\nCustom Translators Overview Translators Specification \u0026amp; Schema Reference Theme Creator \u0026amp; Bundling Guide ⚡ Advanced Custom Translations: RAW_PARAM_V2 Mode # For advanced creators, the new RAW_PARAM_V2 presentation mode lets you bypass standard layout constraints and write pure HyperOS Super Island JSON contracts with dynamic token interpolation ({notif.title}, {media.artist}, {var.custom}, {pic.key}).\nDynamic Elements: Full support for coverInfo, progressInfo, chatInfo, baseInfo, and bgInfo (color \u0026amp; picture background). Dual Island Layouts: Full custom configurations for both smallIslandArea and bigIslandArea (imageTextInfoLeft / imageTextInfoRight). Dynamic Variables \u0026amp; Actions: Extract progress percentages, live timestamps (startText/endText), and map custom intents or smart actions on the fly. 🔗 Official Xiaomi Specifications \u0026amp; Guides:\nOfficial Xiaomi HyperOS Focus Notification \u0026amp; Island Parameters Guide Official Xiaomi Super Island Template Library Specification (PDF) 🔄 System Update Island Integration # HyperBridge now brings a native-like experience to Xiaomi System Updates:\nTrack download and install progress directly on the Super Island. Dedicated customization and timeout settings within the app. 🐛 Fixes \u0026amp; Improvements # Android 15+ Message Interaction: Fixed an issue where tapping a messaging island did not open the target application. Android 16+ Island Grouping: Fixed force-grouping behavior so bridged islands are only grouped where Android 16+ grouping APIs exist. Summary Island Clean-up: Fixed an issue where the island group summary lingered after all individual islands were dismissed. CI / Quality Gating: Added GitHub Actions workflow for automated PR test verification and APK artifact generation. 📋 What\u0026rsquo;s Changed # ci: add GitHub Actions workflow for PR test gating and debug APK artifact (#349) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/352 feat: add system update island integration and customization settings by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/365 fix: only group bridged islands on Android 16+, where force grouping exists (#358) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/368 feat(translators): Custom Translators Framework (.htrans), Visual Editor, Dynamic Engine, Theme Bundling \u0026amp; SAF Sharing (#271) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/353 feat: add RAW_PARAM_V2 presentation mode with custom variables and actions by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/369 fix: message island tap opens the app again on Android 15+ (#359) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/366 fix: drop the island group summary once no island is left (#372) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/373 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-dev4...v0.6.0-beta1\nHyperBridge v0.6.0-dev2 🚀 # Hyper Bridge v0.6.0-dev2 is the second development release of the v0.6.0 cycle!\nThis milestone introduces contextual Smart Action Buttons (one-tap OTP copy, URL opening, dialing, parcel tracking, and directions), resolves critical permanent island yielding and auto-hide TTL behaviors, enhances the real-time Diagnostics engine, overhauls settings navigation and M3 Expressive UI layouts, repairs multi-language character encodings, and brings a redesigned Featured Notification Warning Banner.\n⚡ Context-Aware Smart Action Buttons # One-Tap OTP Copy: Automatically detects one-time passwords and SMS verification codes from incoming message notifications and renders a dedicated copy button directly on the island. Open Links \u0026amp; Dial Numbers: Intelligent pattern detection extracts URLs and telephone numbers from notification bodies, letting you open links or start phone calls with a single tap. Track Parcels: Automatically recognizes carrier package tracking numbers and enables instant shipment lookups. Turn-by-Turn Directions: Identifies shared map links (Google Maps, etc.) and street addresses in message text, offering an immediate Directions action button. M3 Expressive App Exclusion Picker: Choose exactly which apps should or shouldn\u0026rsquo;t generate Smart Actions via a redesigned Material 3 Expressive bottom sheet with instant search and filter controls. ⚙️ How to Enable Smart Actions # Globally: Navigate to Settings → Global Settings → toggle Smart Actions on. Per-App: Open any application in the app list (Active Apps or Library) → Island Behavior → customize or override Smart Action buttons specifically for that app. 🏝️ Island Lifecycle \u0026amp; Timing Fixes # Permanent Island Yielding Overhaul: Fixed an issue where the Permanent Island remained hidden indefinitely behind long-lived native focus or media notifications (#255). It now yields to native islands only momentarily on new events before gracefully restoring. Accurate Auto-Hide TTL: Message and standard islands now strictly honor the user-configured Auto-Hide timeout (TTL) (#278), ensuring stale islands dismiss reliably and never remain stuck on screen. 🩺 Enhanced Diagnostics \u0026amp; Observability # Silent Drop Tracking: The Diagnostics event feed now records silent drops along with exact classification reasons (e.g. blocked keywords, DND, group summaries, or rate limits). System Removals \u0026amp; Spawns: Real-time event auditing for island additions, updates, and dismissals, giving users and developers clear transparency into notification pipeline decisions. 🎨 Settings Refinement \u0026amp; Material 3 Expressive UI # Streamlined Settings Hierarchy: Global Settings is now front-and-center as the primary entry point, with descriptive subtitles outlining island behavior, engine selection, inline replies, and smart actions. Guides \u0026amp; Help Reorganization: Moved system setup and permission walkthroughs into a consolidated \u0026ldquo;Guides and help\u0026rdquo; section for cleaner navigation. Redesigned Featured Notification Banner: Replaced intrusive dialogs/banners with an expressive FeaturedNotificationWarningBanner located cleanly beneath the top app bar exclusively on the Active Apps page, complete with an expandable detail dialog. Consistent Component Padding: Standardized card margins, toggle alignments, and content-to-action spacing across all configuration subscreens. 🌍 Translations \u0026amp; Encoding Repairs # Mojibake / Character Encoding Repair: Fixed corrupted special characters across community translations (Russian, Ukrainian, Polish, French, Hungarian, Indonesian, etc.) (#309) and integrated automated sanitization tooling. Spanish Localizations \u0026amp; Credits: Added full Spanish translations (values-es-rES and values-es-rEM) for call stages and new settings strings, alongside community credits for System Islands \u0026amp; Enhancements. What\u0026rsquo;s Changed # feat: Smart Action buttons — OTP copy, open link, dial, track parcel (#270, Phase 2) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/303 fix: permanent island no longer stays hidden behind long-lived media/focus notifications (#255) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/304 feat(diagnostics): record silent drops, new islands and system removals by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/308 fix(i18n): restore broken special characters across translations and preserve community updates (#309) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/311 fix: island TTL for message/standard islands now follows Auto-hide (#278) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/312 update dev branch by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/313 feat(settings): add System Islands \u0026amp; Enhancements credit and update Spanish localizations by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/314 refactor(ui): overhaul settings screens layout, navigation customization, and smart action app picker by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/315 feat(ui): introduce FeaturedNotificationWarningBanner and move warning UI to ActiveAppsPage by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/317 feat(smart-actions): Directions button for shared map links (#270) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/316 feat(smart-actions): Directions button for street addresses (#270) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/318 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-dev1...v0.6.0-dev2\nHyperBridge v0.6.0-dev1 🚀 # Hyper Bridge v0.6.0-dev1 is the first development release of the v0.6.0 cycle!\nThis release introduces native system islands for Screen Recording and VPN, overhauls the core notification lifecycle for zero-latency performance, integrates messaging deduplication and call state machines, adds step-by-step floating notification setup guidance, connects to the new web documentation \u0026amp; changelog platform, brings brand-new dedicated Diagnostics and Bug Report screens, and completely redesigns the per-app configuration experience with dedicated subscreens and integrated Island Widget management.\n📱 Redesigned App Configuration Screen \u0026amp; Subscreens # Full-Screen Workspace Migration: Migrated away from cramped modal bottom sheets on the Active Apps and Library tabs to a dedicated full-screen AppConfigScreen with complete gesture and hardware back-stack support. Expressive Card Grouping: Replaced cluttered inline accordion dropdowns with 3 distinct connected card groups using variable-corner shapes inspired by the Theme Creator: Core Behavior \u0026amp; Filters (Active Notification Types, Island Behavior, Blocked Terms). Island Widgets (Per-app widget management). Future Extensions (Custom Design \u0026amp; Custom Translators with prominent \u0026ldquo;COMING SOON\u0026rdquo; badges). Dedicated Subscreen Navigation: Smooth horizontal animated transitions into dedicated subscreen containers (SubscreenScaffold), complete with tonal back buttons matching the InfoScreen design. Streamlined Island Behavior: \u0026ldquo;Use Global Defaults\u0026rdquo; is now the top-level option; tweaking any slider or toggle seamlessly converts settings into custom overrides, while re-enabling global defaults instantly clears overrides back to defaults. Blocked Terms Vertical List: Blocked keywords are now organized in clean, separate containers featuring an input box card on top and an expressive vertical list below with one-tap removal. Future Extension Previews: Added dedicated placeholder subscreens for upcoming community Custom Designs and Custom Translators with direct links to track progress on GitHub. 🧩 Unified Island Widgets Management # Reusable App-Filtered Widget Picker: Clicking \u0026ldquo;Add Widget\u0026rdquo; in the app configuration screen opens the unified WidgetPickerScreen automatically filtered to providers from that specific application, auto-expanding its widget list and adapting the title to \u0026ldquo;Select Widget\u0026rdquo;. Live Configuration \u0026amp; Editing: Selecting any widget immediately transitions into WidgetConfigScreen to configure custom sizes, render modes, timeouts, and shade overlays. Configured widgets in the app list can also be tapped directly or edited via an edit icon button. Adaptive Live Previews: Widget previews in the list dynamically scale their container height to match the configured WidgetSize (SMALL, MEDIUM, LARGE, XLARGE, ORIGINAL), with proper measure and layout constraints for crisp rendering. Floating Action Button: Moved the \u0026ldquo;Add Widget\u0026rdquo; trigger to a prominent FloatingActionButton with comfortable bottom scroll padding. 🌐 New Documentation Website \u0026amp; Offloaded Changelogs # Dedicated Docs Platform: We have launched our official documentation website! Complete changelogs, setup guides, and technical explanations have moved to the web to keep the app lightweight and documentation easily searchable. Direct In-App Navigation: The Info screen now links directly to the online documentation and release notes, ensuring you always have access to the latest guides and version history. 🔍 New Diagnostics \u0026amp; Bug Report Screens # 🩺 Real-Time Diagnostics Screen # Subsystem Health Checks: Live status indicators for Notification Listener Service connection, POST_NOTIFICATIONS permission, HyperOS Island hardware support, and Featured Notification permissions. Live System Metrics: Instant visibility into active island counts, active widget tracking, and selected allowed apps. Rolling Sanitized Event Log: An in-app diagnostic log viewer showing recent notification events and translation statuses in real-time, making it effortless to see why a particular notification did or didn\u0026rsquo;t become an island. Material 3 Expressive Design: Clean card-based layout with full Compose preview support for faster development and inspection. 🐛 Streamlined Bug Report Screen # Automated System Profiling: Gathers device model, Android version, HyperOS build, active settings, and bridge status automatically. Privacy-Sanitized Exports: Sensitive text, notification content, and personal information are automatically scrubbed and redacted. One-Tap GitHub Ready Formatting: Formats your issue into a structured, clean Markdown template and copies it directly to your clipboard so you can paste it straight into GitHub Issues. 🚀 Key Highlights \u0026amp; New System Islands # 🎥 Native Xiaomi Screen Recording System Island # Live Recording Ticker: Dynamic island ticker displaying active recording duration in real time. Direct IPC Controls: Full interaction with Xiaomi’s screen recorder service (com.miui.screenrecorder) via IPC to pause, resume, and stop recordings directly from the island. Saved Completion Banner: Quick-access summary and preview banner with action handlers when a screen recording finishes saving. Dedicated Settings: Custom configuration screen to adjust screen recording island behavior. 🛡️ VPN Connectivity \u0026amp; System Island # System-Level Observer: Monitors VPN network capabilities (TRANSPORT_VPN) natively without needing root or Shizuku. Known Provider Adapters: Out-of-the-box support for popular VPN providers (WireGuard, OpenVPN, Cloudflare 1.1.1.1 WARP, ProtonVPN, Tailscale, Mullvad, and more). Active Status \u0026amp; Disconnect: Displays live connected duration, country flag resolution, and offers a one-tap disconnect button right from the island. System Integrations Tab: Conveniently manage VPN and system island toggles separate from regular apps. ⚡ Performance \u0026amp; Core Lifecycle Overhaul # Zero-Latency In-Memory Dispatch: Moved preference lookups on the hot notification path to cached in-memory state flows, eliminating SQLite/DataStore I/O bottlenecks. Generation Gating (SourceProcessingGeneration): Automatically supersedes outdated translation jobs during rapid notification updates. Expiry Registry (ExpiredIslandRegistry): Tracks expired notification state to eliminate ghost islands, resurrecting dismissed notifications, and visual flicker. IslandUpdateResolver: Reconciles incoming changes against existing active islands, updating state smoothly in-place. 💬 Messaging \u0026amp; Call Enhancements # Presentation Family Tracking: Correlates group summaries and per-conversation child notifications across apps like WhatsApp, Telegram, and Signal. Fingerprint Deduplication: Identifies and suppresses duplicate notification popups during rapid message bursts (\u0026ldquo;chat storms\u0026rdquo;). Call Lifecycle State Machine: Classifies and manages Incoming, Ongoing, Held, and Ending call states with dedicated microphone live/muted indicators. 🎨 UI \u0026amp; Setup Guidance # Floating Notification Setup: Step-by-step guidance to disable Xiaomi\u0026rsquo;s native floating heads-up notifications per app to avoid visual duplication over islands. System Integrations Section: Separates built-in system modules (Screen Recording, VPN) from standard third-party apps for clearer management. 🛠️ Stability \u0026amp; Framework Fixes # SecurityException Guard: Safely guarded calls to NotificationListenerService.activeNotifications before the listener service connects or after disconnection. Safe Intent Dispatch: Guarded against null or canceled PendingIntent executions. Unit Test Coverage: Comprehensive suite of 243 passing unit tests covering all reducers, trackers, and translation policies. 💖 Community \u0026amp; Credits # Special thanks to Sykeptical for their foundational contributions to Screen Recording controls, messaging deduplication, call state handling, and VPN integration originally developed in their fork and integrated into HyperBridge v0.6.0.\nWhat\u0026rsquo;s Changed # l10n: Update Korean translation by @alexkoala in https://github.com/D4vidDf/HyperBridge/pull/276 feat(i18n): add comprehensive Arabic language translation by @solom185 in https://github.com/D4vidDf/HyperBridge/pull/280 chore: bump version to 0.6.0-dev1 and migrate changelogs to web docum… by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/281 Epic/283 epic port integrate features and enhancements from sykeptical fork into hyper bridge v060 by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/300 Feature/app config screen by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/301 New Contributors # @solom185 made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/280 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.7...v0.6.0-dev1\nv0.5.7: Performance \u0026amp; Sync Update Latest (English) # Optimizations \u0026amp; Fixes\nCode Optimization: Upgraded to the latest Android Gradle Plugin and enabled R8 code shrinking for a smaller, faster app.\nStability: Improved notification synchronization and fixed an issue where original notifications were sometimes prematurely dismissed (PR #258).\nv0.5.6: Landscape Hide \u0026amp; Stability Fixes (English) # Fixes \u0026amp; Improvements\nSystem UI Stability: Validated highlightColor before passing to SystemUI to prevent crashes.\nPermanent Island Behavior: Fixed an issue where the permanent island disappeared after notifications or unlock.\nLandscape Mode: Added an option to hide the Permanent Island in landscape orientation.\nv0.5.5: Messaging \u0026amp; Update Fixes (English) # Live Updates \u0026amp; Islands\nIcons: Fixed an issue where the original app icon wouldn\u0026rsquo;t display properly on Android 16 Live Updates.\nInline Replies: You can now use inline replies directly from Live Update notifications.\nIsland Removal: Fixed an issue where islands were not being properly removed when dismissed.\nMessaging Grouping Overhaul\nDeduplication: Completely reworked how messaging-style notifications (like WhatsApp) are grouped to prevent duplicated islands. Fixes \u0026amp; Stability\nUpdate Migration: Fixed a critical bug where updating the app wouldn\u0026rsquo;t trigger the proper database migration logic.\nDefaults: Disabled \u0026ldquo;Show in shade\u0026rdquo; by default on the onboarding screen.\nLocalization: Resolved broken characters in translated strings.\nv0.5.2: Inline Reply, Performance \u0026amp; Stability (English) # New Inline Reply Feature!\nInline Reply: You can now reply to messages directly from the island without opening the app!\nCustomization: Fully customize the look of the new inline reply editor globally or per-app.\nGlobal Settings: Access the new Reply customization section directly from the Global Settings -\u0026gt; Inline reply.\nPlay Store Crash Fixes \u0026amp; Stability\nTheme Creator: Fixed a crash when parsing large sets of custom assets.\nPerformance: Resolved an ANR (Application Not Responding) issue on the initial Welcome Screen.\nWidget Picker: Eliminated crashes and Out-Of-Memory (OOM) errors caused by extremely large widget previews.\nUI Layouts: Fixed Jetpack Compose layout constraint exceptions that crashed the app when resizing certain menus.\nBackups: Resolved OOM errors when importing large backup files by optimizing JSON parsing.\nWarm Starts: Significantly improved app launch speeds and eliminated UI thread blocking on mid-range devices.\nBackground Service: Completely overhauled the Notification Listener memory architecture, dropping background overhead to 0% and improving battery life.\nv0.5.1: Fixes \u0026amp; Refinements (English) # Fixes \u0026amp; Stability\nWhatsApp Duplicates Fixed: Resolved an issue that caused duplicate WhatsApp notifications to appear.\nNotification Flicker \u0026amp; Crashes Fixed: Fixed a crash caused by receiving multiple notifications in a short timeframe. The app now safely updates notifications normally, eliminating the notification flicker and improving stability.\nNotification Intents Restored: Fixed an issue where clicking a featured notification would incorrectly route to the troubleshooting screen instead of the original app.\nFeatures \u0026amp; Polish\nRemove Island on Dismiss: Added a new option to automatically remove the island if the original system notification is dismissed.\nFeatured Notifications Diagnostics: Added a new check screen during Onboarding to verify if your Xiaomi device supports Featured Notifications and if the required permissions are enabled.\nSetup Health Integration: The Featured Notifications permission status is now continuously monitored and displayed inside the Setup Health screen.\nTroubleshooting Screen: Added a dedicated Troubleshooting Screen that guides users on how to enable the necessary hidden system permissions (or use Shizuku) to get islands working on strict Xiaomi ROMs.\nClearer Terminology: Renamed the \u0026ldquo;Live Updates\u0026rdquo; section in the settings menu to \u0026ldquo;Notification Management\u0026rdquo; to better reflect its purpose.\nSettings UI Polish: Restored the missing rounded corners on the \u0026ldquo;Permanent Island\u0026rdquo; option in the Global Settings list.\nSpanish Translations: Added full Spanish translations for all the new troubleshooting dialogues, setup health checks, and notification management settings.\nv0.5.0: The Live Update (English) # CN ROM Support\nEnable the new Sui \u0026amp; Shizuku workaround to enjoy the Hyper Islands in your devices running HyperOS CN (Chinese) ROMs without native support. Theme Engine Improvements\nEngine Selection: You can now choose animation engines per-app or globally.\nShizuku Workaround: Toggle added directly to the Theme Editor Engine tab.\nBehavior Controls: Custom timeouts and popup logic are now fully supported.\nIntelligent Permanent Island\nAlways Visible: Keep the island on screen even without active notifications.\nAuto-Hide: The permanent island now automatically hides itself whenever an active widget is shown on the screen.\nSmart Icon Tinting\nNew detection system automatically analyzes extracted notification icons and intelligently tints them white if they are dark or monochrome. Downloads \u0026amp; Progress\nNew Dedicated Download Layout: Separated download and progress layouts with dedicated visual designs.\nText Progress Support: Parsed percentage text (e.g. \u0026ldquo;12%\u0026rdquo;) for app updates even without native progress bars.\nSmart Filtering: Restricted text-based progress checking to store and installer downloads to prevent false triggers on other status notifications.\nMessaging Fixes\nFixed missing sender avatars in apps like Telegram (now correctly extracts \u0026ldquo;sender_person\u0026rdquo; data).\nResolved issues with grouped notifications (chat summaries) not triggering islands.\nFixed island disappearance bugs caused by notification update race conditions.\nSystem \u0026amp; Onboarding\nNew Onboarding Screen: A brand new and easier setup process for critical permissions.\nBoot Fix: Service now starts immediately and reliably after restart.\nSmarter Alerts: Downloads and Media update silently, while messaging updates reliably trigger popup animations.\nNavigation: Faster and smoother app transitions.\nv0.4.2: Hotfix Update (English) # Crash Fix: Resolved a critical issue that caused the app to crash when opening the settings menu in Traditional Chinese.\nUnder the Hood: General bug fixes and stability improvements to keep your Island running smoothly.\nv0.4.0: The Customization Update (English) # Theme Engine 🎨\nThe biggest update yet! You can now fully customize the Dynamic Island visual experience.\nTheme Creator: Design themes directly on your phone with real-time previews.\nGranular Control: Choose exactly how icons are shown, customize call notification colors and shapes, and configure individual app overrides.\nSmart Colors: Automatically extract vibrant brand colors from app icons.\nPer-Action Customization (Beta): Fine-tune the look of specific notification actions.\nSharing: Export and import themes as portable .hbr packages.\nWidget Support 🧩\nPin standard Android widgets to the island for quick access—even on your Lockscreen!\nChoose between Interactive mode for speed or Snapshot mode for battery efficiency. Notification Engine 2.0 ⚡\nA complete rewrite of the core logic for better stability:\nSmarter Parsing: Fixed issues where notifications showed package names (e.g., com.whatsapp) instead of message content.\nAnti-Flicker: New content hashing prevents redundant updates and stuttering.\nGhost Fixes: Solved race conditions where islands lingered after dismissal.\nVisual Refresh ✨\nRedesigned \u0026ldquo;Design\u0026rdquo; tab with fluid, native-feeling carousels.\nNew \u0026ldquo;Text Pill\u0026rdquo; buttons for clearer notification actions.\nAdded support for 🇮🇩 Indonesian and 🇹🇷 Turkish.\nNote: This release includes significant architectural changes. Please report any bugs on GitHub!\nv0.3.1: Backup \u0026amp; Polyglot Update # Backup \u0026amp; Restore 📦\nNew power-user feature! Securely export your settings, blocklists, and app priorities to a .hbr file and restore them anytime.\nNew Languages 🌍\nAdded support for:\n🇩🇪 German\n🇷🇺 Russian\n🇺🇦 Ukrainian (Improved)\nPlus: A new in-app Language Selector to change languages without affecting your system settings.\nVisual Refresh 🎨\nThe app has been updated with Material 3 Expressive design. Enjoy larger headers, rounder shapes, and a smoother experience.\nPrivacy \u0026amp; Setup 🛡️\nImproved Onboarding with a dedicated Privacy page clarifying offline-first architecture.\nStricter compatibility checks to ensure the best experience on HyperOS 3.0.\nFixes 🛠️\nFixed a critical issue where settings were lost after device reboot (migrated to database).\nFixed \u0026ldquo;Exit\u0026rdquo; button in Navigation island showing as an icon instead of text.\nFixed App Icon loading in Settings.\nv0.3.0: The Global Update # Hidden Notification 👻\nNew option to hide notifications from the system panel while keeping the Island active. Check Global Settings!\nNew Languages 🌍\nSpecial thanks to our community for these translations:\n🇧🇷 Portuguese (Brazil)\n🇵🇱 Polish\n🇰🇷 Korean\n🇺🇦 Ukranian\nNavigation Customization 🧭\nYou can now choose what information appears on the Left and Right sides of the Navigation Island (Distance, ETA, Instruction).\nSpoiler Protection 🛡️\nNew \u0026ldquo;Blocked Terms\u0026rdquo; feature. Define words globally or per-app to prevent specific notifications from showing up on the Island.\nCall Improvements 📞\nImproved detection logic to support a wider range of VoIP and Dialer applications.\nFixes \u0026amp; Improvements 🛠️\nFixed a critical bug where the app would get stuck loading after a reboot.\nFixed notifications sometimes showing raw package names (e.g. \u0026ldquo;com.google\u0026hellip;\u0026rdquo;) instead of content.\nRedesigned App Configuration sheet for better usability.\nImproved Compatibility Check screen with detailed device info.\nv0.2.0: The Information Update # Advanced Progress: Added support for \u0026ldquo;Step Progress\u0026rdquo; (e.g. 1 of 3) and progress bars with icons inside the notification shade.\nPriority System: New \u0026ldquo;Island Behavior\u0026rdquo; settings. Choose between \u0026ldquo;Most Recent\u0026rdquo;, \u0026ldquo;First Come\u0026rdquo;, or a custom \u0026ldquo;App Priority\u0026rdquo; list.\nSmart Filtering: Improved detection of duplicate notifications and grouped downloads.\nVisual Improvements: Fixed layout issues with Navigation instructions.\nPer-App Config: Customize Timeout and Floating behavior per app.\nv0.1.0: The Expressive Update # Major UI Overhaul: New Material 3 Expressive design with smooth animations.\nBetter Island: Text now appears on the right side. Added Green Tick for finished downloads.\nPer-App Config: Select specific notification types (Music, Maps, Calls) per app.\nSmart Filters: Blocks duplicate notifications and saves battery.\nNew Library: Filter apps by category and sort order.\nLocalization: Added Spanish support.\n","externalUrl":null,"permalink":"/changelog/_index.ca/","section":"Changelog","summary":"Follow the latest updates, features, and release history for HyperBridge.\nHyperBridge v0.6.0-beta3 🚀 # Welcome to v0.6.0-beta3! This release introduces the all-new Design Hub with a Bento Grid layout, a visual Island Template Composer supporting all 10 official Xiaomi HyperOS island layouts, critical fixes for Xiaomi HyperOS 4 Beta compatibility, and a streamlined documentation section.\n","title":"Changelog","type":"changelog"},{"content":"Follow the latest updates, features, and release history for HyperBridge.\nHyperBridge v0.6.0-beta3 🚀 # Welcome to v0.6.0-beta3! This release introduces the all-new Design Hub with a Bento Grid layout, a visual Island Template Composer supporting all 10 official Xiaomi HyperOS island layouts, critical fixes for Xiaomi HyperOS 4 Beta compatibility, and a streamlined documentation section.\n🎨 Visual Island Template Composer \u0026amp; New Design Hub # Redesigned Design Screen: A modern Bento Grid interface that puts Themes, Island Widgets, Custom Designs, and Smart Translators at your fingertips. 10 Official HyperOS Island Templates: Compose rich Dynamic Island layouts directly within the app using official templates—ranging from delivery tracking, boarding passes, progress transfers, and call cards to media capsules. Visual Design Manager: Easily filter, inspect, preview, and toggle active custom designs per app or system-wide. 📖 Learn more in the docs: Customization Overview Design Hub Guide Custom Designs \u0026amp; Templates Theme Creator Widgets Guide ⚠️ Note on the Featured Section:\nThe Featured section on the Design screen is currently a work in progress (preview placeholders). In the stable HyperBridge 0.6.0 final release, this carousel will directly connect to the official website and community hub, allowing users to discover, browse, download, and install community themes, custom designs, and smart translators with a single tap.\n🚀 Streamlined Guides \u0026amp; Direct Documentation Access # In-app help sheets and guide links have been consolidated into clean, direct section cards pointing straight to official, up-to-date online guides: 🎨 Customization: Themes, templates, custom translators, and island widgets. ⚡ Features: System apps integration (Timer, Recorder, Screen Recording), Smart Actions, Inline Reply, and Permanent Island. 🛠️ Advanced: Shizuku override, troubleshooting, diagnostics, and power-user configurations. 🧩 Custom Translators Specification: Build regex and condition-based interceptors for any notification. 🛠️ Fixes \u0026amp; Improvements # HyperOS 4 Beta Compatibility: Fixed an issue where standard and messaging notification islands were skipped by the system on HyperOS 4 Beta by ensuring the dismissible island parameter is explicitly set to false. Direct App Launching from Messaging Islands: Tapping on message island capsules now opens the target application reliably via a direct activity intent rather than an intermediate broadcast trampoline. String Quota \u0026amp; Performance Optimization: Massive reduction and deduplication of app string resources to keep Crowdin hosted translations within limits, while keeping guides richer and always current on the website. What\u0026rsquo;s Changed # fix: message island tap opens the app through an activity, not a broadcast trampoline (#371, #382) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/386 fix: ensure small and big island visibility on HyperOS 4 Beta by setting dismissible to false by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/393 feat(design): Visual Island Template Composer with 10 official HyperOS templates, Design Hub Bento Grid \u0026amp; Design Manager (#272, #327, #383, #385) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/390 refactor(strings): optimize string resources for Crowdin quota and streamline documentation guides by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/399 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-beta2...v0.6.0-beta3\nHyperBridge v0.6.0-beta1 🚀 # Welcome to HyperBridge v0.6.0-beta1! This milestone release marks the arrival of the all-new Custom Translators Framework (.htrans), powerful RAW_PARAM_V2 presentation modes, built-in Visual Translator Editor, System Update Islands, and key stability fixes for Android 15 \u0026amp; 16.\n⚠️ Beta Notice: Custom Translators \u0026amp; Full Engine Rework # This release includes a complete architectural rework of our translation engine and the very first public implementation of the Custom Translators system.\nBecause this is a major transition:\nSome advanced features, custom edge-case layouts, or specific token interpolations may still behave unexpectedly or contain bugs. Certain legacy behaviors or templates may require minor adjustments. We need your feedback! If you encounter any bugs, crashes, broken presentations, or missing features, please let us know by opening a GitHub Issue or posting in our Discussions. Your reports directly help us stabilize the engine for the final 0.6.0 release.\n🌟 Highlights \u0026amp; Major Features # 🧩 Custom Translators Framework (.htrans) # Take total control over how any app\u0026rsquo;s notifications render on Xiaomi HyperOS Super Island. Define custom matching rules, regex extractions, variable tokens, dynamic actions, and theme bindings without waiting for app updates.\nImport, Export \u0026amp; Share: Seamlessly package .htrans or .htrans.zip packages with embedded artwork and share them across devices via Storage Access Framework (SAF). Built-in Visual Editor: Build and test translators directly inside the HyperBridge app. 📖 Learn more in our documentation:\nCustom Translators Overview Translators Specification \u0026amp; Schema Reference Theme Creator \u0026amp; Bundling Guide ⚡ Advanced Custom Translations: RAW_PARAM_V2 Mode # For advanced creators, the new RAW_PARAM_V2 presentation mode lets you bypass standard layout constraints and write pure HyperOS Super Island JSON contracts with dynamic token interpolation ({notif.title}, {media.artist}, {var.custom}, {pic.key}).\nDynamic Elements: Full support for coverInfo, progressInfo, chatInfo, baseInfo, and bgInfo (color \u0026amp; picture background). Dual Island Layouts: Full custom configurations for both smallIslandArea and bigIslandArea (imageTextInfoLeft / imageTextInfoRight). Dynamic Variables \u0026amp; Actions: Extract progress percentages, live timestamps (startText/endText), and map custom intents or smart actions on the fly. 🔗 Official Xiaomi Specifications \u0026amp; Guides:\nOfficial Xiaomi HyperOS Focus Notification \u0026amp; Island Parameters Guide Official Xiaomi Super Island Template Library Specification (PDF) 🔄 System Update Island Integration # HyperBridge now brings a native-like experience to Xiaomi System Updates:\nTrack download and install progress directly on the Super Island. Dedicated customization and timeout settings within the app. 🐛 Fixes \u0026amp; Improvements # Android 15+ Message Interaction: Fixed an issue where tapping a messaging island did not open the target application. Android 16+ Island Grouping: Fixed force-grouping behavior so bridged islands are only grouped where Android 16+ grouping APIs exist. Summary Island Clean-up: Fixed an issue where the island group summary lingered after all individual islands were dismissed. CI / Quality Gating: Added GitHub Actions workflow for automated PR test verification and APK artifact generation. 📋 What\u0026rsquo;s Changed # ci: add GitHub Actions workflow for PR test gating and debug APK artifact (#349) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/352 feat: add system update island integration and customization settings by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/365 fix: only group bridged islands on Android 16+, where force grouping exists (#358) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/368 feat(translators): Custom Translators Framework (.htrans), Visual Editor, Dynamic Engine, Theme Bundling \u0026amp; SAF Sharing (#271) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/353 feat: add RAW_PARAM_V2 presentation mode with custom variables and actions by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/369 fix: message island tap opens the app again on Android 15+ (#359) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/366 fix: drop the island group summary once no island is left (#372) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/373 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-dev4...v0.6.0-beta1\nHyperBridge v0.6.0-dev2 🚀 # Hyper Bridge v0.6.0-dev2 is the second development release of the v0.6.0 cycle!\nThis milestone introduces contextual Smart Action Buttons (one-tap OTP copy, URL opening, dialing, parcel tracking, and directions), resolves critical permanent island yielding and auto-hide TTL behaviors, enhances the real-time Diagnostics engine, overhauls settings navigation and M3 Expressive UI layouts, repairs multi-language character encodings, and brings a redesigned Featured Notification Warning Banner.\n⚡ Context-Aware Smart Action Buttons # One-Tap OTP Copy: Automatically detects one-time passwords and SMS verification codes from incoming message notifications and renders a dedicated copy button directly on the island. Open Links \u0026amp; Dial Numbers: Intelligent pattern detection extracts URLs and telephone numbers from notification bodies, letting you open links or start phone calls with a single tap. Track Parcels: Automatically recognizes carrier package tracking numbers and enables instant shipment lookups. Turn-by-Turn Directions: Identifies shared map links (Google Maps, etc.) and street addresses in message text, offering an immediate Directions action button. M3 Expressive App Exclusion Picker: Choose exactly which apps should or shouldn\u0026rsquo;t generate Smart Actions via a redesigned Material 3 Expressive bottom sheet with instant search and filter controls. ⚙️ How to Enable Smart Actions # Globally: Navigate to Settings → Global Settings → toggle Smart Actions on. Per-App: Open any application in the app list (Active Apps or Library) → Island Behavior → customize or override Smart Action buttons specifically for that app. 🏝️ Island Lifecycle \u0026amp; Timing Fixes # Permanent Island Yielding Overhaul: Fixed an issue where the Permanent Island remained hidden indefinitely behind long-lived native focus or media notifications (#255). It now yields to native islands only momentarily on new events before gracefully restoring. Accurate Auto-Hide TTL: Message and standard islands now strictly honor the user-configured Auto-Hide timeout (TTL) (#278), ensuring stale islands dismiss reliably and never remain stuck on screen. 🩺 Enhanced Diagnostics \u0026amp; Observability # Silent Drop Tracking: The Diagnostics event feed now records silent drops along with exact classification reasons (e.g. blocked keywords, DND, group summaries, or rate limits). System Removals \u0026amp; Spawns: Real-time event auditing for island additions, updates, and dismissals, giving users and developers clear transparency into notification pipeline decisions. 🎨 Settings Refinement \u0026amp; Material 3 Expressive UI # Streamlined Settings Hierarchy: Global Settings is now front-and-center as the primary entry point, with descriptive subtitles outlining island behavior, engine selection, inline replies, and smart actions. Guides \u0026amp; Help Reorganization: Moved system setup and permission walkthroughs into a consolidated \u0026ldquo;Guides and help\u0026rdquo; section for cleaner navigation. Redesigned Featured Notification Banner: Replaced intrusive dialogs/banners with an expressive FeaturedNotificationWarningBanner located cleanly beneath the top app bar exclusively on the Active Apps page, complete with an expandable detail dialog. Consistent Component Padding: Standardized card margins, toggle alignments, and content-to-action spacing across all configuration subscreens. 🌍 Translations \u0026amp; Encoding Repairs # Mojibake / Character Encoding Repair: Fixed corrupted special characters across community translations (Russian, Ukrainian, Polish, French, Hungarian, Indonesian, etc.) (#309) and integrated automated sanitization tooling. Spanish Localizations \u0026amp; Credits: Added full Spanish translations (values-es-rES and values-es-rEM) for call stages and new settings strings, alongside community credits for System Islands \u0026amp; Enhancements. What\u0026rsquo;s Changed # feat: Smart Action buttons — OTP copy, open link, dial, track parcel (#270, Phase 2) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/303 fix: permanent island no longer stays hidden behind long-lived media/focus notifications (#255) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/304 feat(diagnostics): record silent drops, new islands and system removals by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/308 fix(i18n): restore broken special characters across translations and preserve community updates (#309) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/311 fix: island TTL for message/standard islands now follows Auto-hide (#278) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/312 update dev branch by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/313 feat(settings): add System Islands \u0026amp; Enhancements credit and update Spanish localizations by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/314 refactor(ui): overhaul settings screens layout, navigation customization, and smart action app picker by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/315 feat(ui): introduce FeaturedNotificationWarningBanner and move warning UI to ActiveAppsPage by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/317 feat(smart-actions): Directions button for shared map links (#270) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/316 feat(smart-actions): Directions button for street addresses (#270) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/318 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-dev1...v0.6.0-dev2\nHyperBridge v0.6.0-dev1 🚀 # Hyper Bridge v0.6.0-dev1 is the first development release of the v0.6.0 cycle!\nThis release introduces native system islands for Screen Recording and VPN, overhauls the core notification lifecycle for zero-latency performance, integrates messaging deduplication and call state machines, adds step-by-step floating notification setup guidance, connects to the new web documentation \u0026amp; changelog platform, brings brand-new dedicated Diagnostics and Bug Report screens, and completely redesigns the per-app configuration experience with dedicated subscreens and integrated Island Widget management.\n📱 Redesigned App Configuration Screen \u0026amp; Subscreens # Full-Screen Workspace Migration: Migrated away from cramped modal bottom sheets on the Active Apps and Library tabs to a dedicated full-screen AppConfigScreen with complete gesture and hardware back-stack support. Expressive Card Grouping: Replaced cluttered inline accordion dropdowns with 3 distinct connected card groups using variable-corner shapes inspired by the Theme Creator: Core Behavior \u0026amp; Filters (Active Notification Types, Island Behavior, Blocked Terms). Island Widgets (Per-app widget management). Future Extensions (Custom Design \u0026amp; Custom Translators with prominent \u0026ldquo;COMING SOON\u0026rdquo; badges). Dedicated Subscreen Navigation: Smooth horizontal animated transitions into dedicated subscreen containers (SubscreenScaffold), complete with tonal back buttons matching the InfoScreen design. Streamlined Island Behavior: \u0026ldquo;Use Global Defaults\u0026rdquo; is now the top-level option; tweaking any slider or toggle seamlessly converts settings into custom overrides, while re-enabling global defaults instantly clears overrides back to defaults. Blocked Terms Vertical List: Blocked keywords are now organized in clean, separate containers featuring an input box card on top and an expressive vertical list below with one-tap removal. Future Extension Previews: Added dedicated placeholder subscreens for upcoming community Custom Designs and Custom Translators with direct links to track progress on GitHub. 🧩 Unified Island Widgets Management # Reusable App-Filtered Widget Picker: Clicking \u0026ldquo;Add Widget\u0026rdquo; in the app configuration screen opens the unified WidgetPickerScreen automatically filtered to providers from that specific application, auto-expanding its widget list and adapting the title to \u0026ldquo;Select Widget\u0026rdquo;. Live Configuration \u0026amp; Editing: Selecting any widget immediately transitions into WidgetConfigScreen to configure custom sizes, render modes, timeouts, and shade overlays. Configured widgets in the app list can also be tapped directly or edited via an edit icon button. Adaptive Live Previews: Widget previews in the list dynamically scale their container height to match the configured WidgetSize (SMALL, MEDIUM, LARGE, XLARGE, ORIGINAL), with proper measure and layout constraints for crisp rendering. Floating Action Button: Moved the \u0026ldquo;Add Widget\u0026rdquo; trigger to a prominent FloatingActionButton with comfortable bottom scroll padding. 🌐 New Documentation Website \u0026amp; Offloaded Changelogs # Dedicated Docs Platform: We have launched our official documentation website! Complete changelogs, setup guides, and technical explanations have moved to the web to keep the app lightweight and documentation easily searchable. Direct In-App Navigation: The Info screen now links directly to the online documentation and release notes, ensuring you always have access to the latest guides and version history. 🔍 New Diagnostics \u0026amp; Bug Report Screens # 🩺 Real-Time Diagnostics Screen # Subsystem Health Checks: Live status indicators for Notification Listener Service connection, POST_NOTIFICATIONS permission, HyperOS Island hardware support, and Featured Notification permissions. Live System Metrics: Instant visibility into active island counts, active widget tracking, and selected allowed apps. Rolling Sanitized Event Log: An in-app diagnostic log viewer showing recent notification events and translation statuses in real-time, making it effortless to see why a particular notification did or didn\u0026rsquo;t become an island. Material 3 Expressive Design: Clean card-based layout with full Compose preview support for faster development and inspection. 🐛 Streamlined Bug Report Screen # Automated System Profiling: Gathers device model, Android version, HyperOS build, active settings, and bridge status automatically. Privacy-Sanitized Exports: Sensitive text, notification content, and personal information are automatically scrubbed and redacted. One-Tap GitHub Ready Formatting: Formats your issue into a structured, clean Markdown template and copies it directly to your clipboard so you can paste it straight into GitHub Issues. 🚀 Key Highlights \u0026amp; New System Islands # 🎥 Native Xiaomi Screen Recording System Island # Live Recording Ticker: Dynamic island ticker displaying active recording duration in real time. Direct IPC Controls: Full interaction with Xiaomi’s screen recorder service (com.miui.screenrecorder) via IPC to pause, resume, and stop recordings directly from the island. Saved Completion Banner: Quick-access summary and preview banner with action handlers when a screen recording finishes saving. Dedicated Settings: Custom configuration screen to adjust screen recording island behavior. 🛡️ VPN Connectivity \u0026amp; System Island # System-Level Observer: Monitors VPN network capabilities (TRANSPORT_VPN) natively without needing root or Shizuku. Known Provider Adapters: Out-of-the-box support for popular VPN providers (WireGuard, OpenVPN, Cloudflare 1.1.1.1 WARP, ProtonVPN, Tailscale, Mullvad, and more). Active Status \u0026amp; Disconnect: Displays live connected duration, country flag resolution, and offers a one-tap disconnect button right from the island. System Integrations Tab: Conveniently manage VPN and system island toggles separate from regular apps. ⚡ Performance \u0026amp; Core Lifecycle Overhaul # Zero-Latency In-Memory Dispatch: Moved preference lookups on the hot notification path to cached in-memory state flows, eliminating SQLite/DataStore I/O bottlenecks. Generation Gating (SourceProcessingGeneration): Automatically supersedes outdated translation jobs during rapid notification updates. Expiry Registry (ExpiredIslandRegistry): Tracks expired notification state to eliminate ghost islands, resurrecting dismissed notifications, and visual flicker. IslandUpdateResolver: Reconciles incoming changes against existing active islands, updating state smoothly in-place. 💬 Messaging \u0026amp; Call Enhancements # Presentation Family Tracking: Correlates group summaries and per-conversation child notifications across apps like WhatsApp, Telegram, and Signal. Fingerprint Deduplication: Identifies and suppresses duplicate notification popups during rapid message bursts (\u0026ldquo;chat storms\u0026rdquo;). Call Lifecycle State Machine: Classifies and manages Incoming, Ongoing, Held, and Ending call states with dedicated microphone live/muted indicators. 🎨 UI \u0026amp; Setup Guidance # Floating Notification Setup: Step-by-step guidance to disable Xiaomi\u0026rsquo;s native floating heads-up notifications per app to avoid visual duplication over islands. System Integrations Section: Separates built-in system modules (Screen Recording, VPN) from standard third-party apps for clearer management. 🛠️ Stability \u0026amp; Framework Fixes # SecurityException Guard: Safely guarded calls to NotificationListenerService.activeNotifications before the listener service connects or after disconnection. Safe Intent Dispatch: Guarded against null or canceled PendingIntent executions. Unit Test Coverage: Comprehensive suite of 243 passing unit tests covering all reducers, trackers, and translation policies. 💖 Community \u0026amp; Credits # Special thanks to Sykeptical for their foundational contributions to Screen Recording controls, messaging deduplication, call state handling, and VPN integration originally developed in their fork and integrated into HyperBridge v0.6.0.\nWhat\u0026rsquo;s Changed # l10n: Update Korean translation by @alexkoala in https://github.com/D4vidDf/HyperBridge/pull/276 feat(i18n): add comprehensive Arabic language translation by @solom185 in https://github.com/D4vidDf/HyperBridge/pull/280 chore: bump version to 0.6.0-dev1 and migrate changelogs to web docum… by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/281 Epic/283 epic port integrate features and enhancements from sykeptical fork into hyper bridge v060 by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/300 Feature/app config screen by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/301 New Contributors # @solom185 made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/280 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.7...v0.6.0-dev1\nv0.5.7: Performance \u0026amp; Sync Update Latest (English) # Optimizations \u0026amp; Fixes\nCode Optimization: Upgraded to the latest Android Gradle Plugin and enabled R8 code shrinking for a smaller, faster app.\nStability: Improved notification synchronization and fixed an issue where original notifications were sometimes prematurely dismissed (PR #258).\nv0.5.6: Landscape Hide \u0026amp; Stability Fixes (English) # Fixes \u0026amp; Improvements\nSystem UI Stability: Validated highlightColor before passing to SystemUI to prevent crashes.\nPermanent Island Behavior: Fixed an issue where the permanent island disappeared after notifications or unlock.\nLandscape Mode: Added an option to hide the Permanent Island in landscape orientation.\nv0.5.5: Messaging \u0026amp; Update Fixes (English) # Live Updates \u0026amp; Islands\nIcons: Fixed an issue where the original app icon wouldn\u0026rsquo;t display properly on Android 16 Live Updates.\nInline Replies: You can now use inline replies directly from Live Update notifications.\nIsland Removal: Fixed an issue where islands were not being properly removed when dismissed.\nMessaging Grouping Overhaul\nDeduplication: Completely reworked how messaging-style notifications (like WhatsApp) are grouped to prevent duplicated islands. Fixes \u0026amp; Stability\nUpdate Migration: Fixed a critical bug where updating the app wouldn\u0026rsquo;t trigger the proper database migration logic.\nDefaults: Disabled \u0026ldquo;Show in shade\u0026rdquo; by default on the onboarding screen.\nLocalization: Resolved broken characters in translated strings.\nv0.5.2: Inline Reply, Performance \u0026amp; Stability (English) # New Inline Reply Feature!\nInline Reply: You can now reply to messages directly from the island without opening the app!\nCustomization: Fully customize the look of the new inline reply editor globally or per-app.\nGlobal Settings: Access the new Reply customization section directly from the Global Settings -\u0026gt; Inline reply.\nPlay Store Crash Fixes \u0026amp; Stability\nTheme Creator: Fixed a crash when parsing large sets of custom assets.\nPerformance: Resolved an ANR (Application Not Responding) issue on the initial Welcome Screen.\nWidget Picker: Eliminated crashes and Out-Of-Memory (OOM) errors caused by extremely large widget previews.\nUI Layouts: Fixed Jetpack Compose layout constraint exceptions that crashed the app when resizing certain menus.\nBackups: Resolved OOM errors when importing large backup files by optimizing JSON parsing.\nWarm Starts: Significantly improved app launch speeds and eliminated UI thread blocking on mid-range devices.\nBackground Service: Completely overhauled the Notification Listener memory architecture, dropping background overhead to 0% and improving battery life.\nv0.5.1: Fixes \u0026amp; Refinements (English) # Fixes \u0026amp; Stability\nWhatsApp Duplicates Fixed: Resolved an issue that caused duplicate WhatsApp notifications to appear.\nNotification Flicker \u0026amp; Crashes Fixed: Fixed a crash caused by receiving multiple notifications in a short timeframe. The app now safely updates notifications normally, eliminating the notification flicker and improving stability.\nNotification Intents Restored: Fixed an issue where clicking a featured notification would incorrectly route to the troubleshooting screen instead of the original app.\nFeatures \u0026amp; Polish\nRemove Island on Dismiss: Added a new option to automatically remove the island if the original system notification is dismissed.\nFeatured Notifications Diagnostics: Added a new check screen during Onboarding to verify if your Xiaomi device supports Featured Notifications and if the required permissions are enabled.\nSetup Health Integration: The Featured Notifications permission status is now continuously monitored and displayed inside the Setup Health screen.\nTroubleshooting Screen: Added a dedicated Troubleshooting Screen that guides users on how to enable the necessary hidden system permissions (or use Shizuku) to get islands working on strict Xiaomi ROMs.\nClearer Terminology: Renamed the \u0026ldquo;Live Updates\u0026rdquo; section in the settings menu to \u0026ldquo;Notification Management\u0026rdquo; to better reflect its purpose.\nSettings UI Polish: Restored the missing rounded corners on the \u0026ldquo;Permanent Island\u0026rdquo; option in the Global Settings list.\nSpanish Translations: Added full Spanish translations for all the new troubleshooting dialogues, setup health checks, and notification management settings.\nv0.5.0: The Live Update (English) # CN ROM Support\nEnable the new Sui \u0026amp; Shizuku workaround to enjoy the Hyper Islands in your devices running HyperOS CN (Chinese) ROMs without native support. Theme Engine Improvements\nEngine Selection: You can now choose animation engines per-app or globally.\nShizuku Workaround: Toggle added directly to the Theme Editor Engine tab.\nBehavior Controls: Custom timeouts and popup logic are now fully supported.\nIntelligent Permanent Island\nAlways Visible: Keep the island on screen even without active notifications.\nAuto-Hide: The permanent island now automatically hides itself whenever an active widget is shown on the screen.\nSmart Icon Tinting\nNew detection system automatically analyzes extracted notification icons and intelligently tints them white if they are dark or monochrome. Downloads \u0026amp; Progress\nNew Dedicated Download Layout: Separated download and progress layouts with dedicated visual designs.\nText Progress Support: Parsed percentage text (e.g. \u0026ldquo;12%\u0026rdquo;) for app updates even without native progress bars.\nSmart Filtering: Restricted text-based progress checking to store and installer downloads to prevent false triggers on other status notifications.\nMessaging Fixes\nFixed missing sender avatars in apps like Telegram (now correctly extracts \u0026ldquo;sender_person\u0026rdquo; data).\nResolved issues with grouped notifications (chat summaries) not triggering islands.\nFixed island disappearance bugs caused by notification update race conditions.\nSystem \u0026amp; Onboarding\nNew Onboarding Screen: A brand new and easier setup process for critical permissions.\nBoot Fix: Service now starts immediately and reliably after restart.\nSmarter Alerts: Downloads and Media update silently, while messaging updates reliably trigger popup animations.\nNavigation: Faster and smoother app transitions.\nv0.4.2: Hotfix Update (English) # Crash Fix: Resolved a critical issue that caused the app to crash when opening the settings menu in Traditional Chinese.\nUnder the Hood: General bug fixes and stability improvements to keep your Island running smoothly.\nv0.4.0: The Customization Update (English) # Theme Engine 🎨\nThe biggest update yet! You can now fully customize the Dynamic Island visual experience.\nTheme Creator: Design themes directly on your phone with real-time previews.\nGranular Control: Choose exactly how icons are shown, customize call notification colors and shapes, and configure individual app overrides.\nSmart Colors: Automatically extract vibrant brand colors from app icons.\nPer-Action Customization (Beta): Fine-tune the look of specific notification actions.\nSharing: Export and import themes as portable .hbr packages.\nWidget Support 🧩\nPin standard Android widgets to the island for quick access—even on your Lockscreen!\nChoose between Interactive mode for speed or Snapshot mode for battery efficiency. Notification Engine 2.0 ⚡\nA complete rewrite of the core logic for better stability:\nSmarter Parsing: Fixed issues where notifications showed package names (e.g., com.whatsapp) instead of message content.\nAnti-Flicker: New content hashing prevents redundant updates and stuttering.\nGhost Fixes: Solved race conditions where islands lingered after dismissal.\nVisual Refresh ✨\nRedesigned \u0026ldquo;Design\u0026rdquo; tab with fluid, native-feeling carousels.\nNew \u0026ldquo;Text Pill\u0026rdquo; buttons for clearer notification actions.\nAdded support for 🇮🇩 Indonesian and 🇹🇷 Turkish.\nNote: This release includes significant architectural changes. Please report any bugs on GitHub!\nv0.3.1: Backup \u0026amp; Polyglot Update # Backup \u0026amp; Restore 📦\nNew power-user feature! Securely export your settings, blocklists, and app priorities to a .hbr file and restore them anytime.\nNew Languages 🌍\nAdded support for:\n🇩🇪 German\n🇷🇺 Russian\n🇺🇦 Ukrainian (Improved)\nPlus: A new in-app Language Selector to change languages without affecting your system settings.\nVisual Refresh 🎨\nThe app has been updated with Material 3 Expressive design. Enjoy larger headers, rounder shapes, and a smoother experience.\nPrivacy \u0026amp; Setup 🛡️\nImproved Onboarding with a dedicated Privacy page clarifying offline-first architecture.\nStricter compatibility checks to ensure the best experience on HyperOS 3.0.\nFixes 🛠️\nFixed a critical issue where settings were lost after device reboot (migrated to database).\nFixed \u0026ldquo;Exit\u0026rdquo; button in Navigation island showing as an icon instead of text.\nFixed App Icon loading in Settings.\nv0.3.0: The Global Update # Hidden Notification 👻\nNew option to hide notifications from the system panel while keeping the Island active. Check Global Settings!\nNew Languages 🌍\nSpecial thanks to our community for these translations:\n🇧🇷 Portuguese (Brazil)\n🇵🇱 Polish\n🇰🇷 Korean\n🇺🇦 Ukranian\nNavigation Customization 🧭\nYou can now choose what information appears on the Left and Right sides of the Navigation Island (Distance, ETA, Instruction).\nSpoiler Protection 🛡️\nNew \u0026ldquo;Blocked Terms\u0026rdquo; feature. Define words globally or per-app to prevent specific notifications from showing up on the Island.\nCall Improvements 📞\nImproved detection logic to support a wider range of VoIP and Dialer applications.\nFixes \u0026amp; Improvements 🛠️\nFixed a critical bug where the app would get stuck loading after a reboot.\nFixed notifications sometimes showing raw package names (e.g. \u0026ldquo;com.google\u0026hellip;\u0026rdquo;) instead of content.\nRedesigned App Configuration sheet for better usability.\nImproved Compatibility Check screen with detailed device info.\nv0.2.0: The Information Update # Advanced Progress: Added support for \u0026ldquo;Step Progress\u0026rdquo; (e.g. 1 of 3) and progress bars with icons inside the notification shade.\nPriority System: New \u0026ldquo;Island Behavior\u0026rdquo; settings. Choose between \u0026ldquo;Most Recent\u0026rdquo;, \u0026ldquo;First Come\u0026rdquo;, or a custom \u0026ldquo;App Priority\u0026rdquo; list.\nSmart Filtering: Improved detection of duplicate notifications and grouped downloads.\nVisual Improvements: Fixed layout issues with Navigation instructions.\nPer-App Config: Customize Timeout and Floating behavior per app.\nv0.1.0: The Expressive Update # Major UI Overhaul: New Material 3 Expressive design with smooth animations.\nBetter Island: Text now appears on the right side. Added Green Tick for finished downloads.\nPer-App Config: Select specific notification types (Music, Maps, Calls) per app.\nSmart Filters: Blocks duplicate notifications and saves battery.\nNew Library: Filter apps by category and sort order.\nLocalization: Added Spanish support.\n","externalUrl":null,"permalink":"/changelog/_index.gl/","section":"Changelog","summary":"Follow the latest updates, features, and release history for HyperBridge.\nHyperBridge v0.6.0-beta3 🚀 # Welcome to v0.6.0-beta3! This release introduces the all-new Design Hub with a Bento Grid layout, a visual Island Template Composer supporting all 10 official Xiaomi HyperOS island layouts, critical fixes for Xiaomi HyperOS 4 Beta compatibility, and a streamlined documentation section.\n","title":"Changelog","type":"changelog"},{"content":"Follow the latest updates, features, and release history for HyperBridge.\nHyperBridge v0.6.0-beta3 🚀 # Welcome to v0.6.0-beta3! This release introduces the all-new Design Hub with a Bento Grid layout, a visual Island Template Composer supporting all 10 official Xiaomi HyperOS island layouts, critical fixes for Xiaomi HyperOS 4 Beta compatibility, and a streamlined documentation section.\n🎨 Visual Island Template Composer \u0026amp; New Design Hub # Redesigned Design Screen: A modern Bento Grid interface that puts Themes, Island Widgets, Custom Designs, and Smart Translators at your fingertips. 10 Official HyperOS Island Templates: Compose rich Dynamic Island layouts directly within the app using official templates—ranging from delivery tracking, boarding passes, progress transfers, and call cards to media capsules. Visual Design Manager: Easily filter, inspect, preview, and toggle active custom designs per app or system-wide. 📖 Learn more in the docs: Customization Overview Design Hub Guide Custom Designs \u0026amp; Templates Theme Creator Widgets Guide ⚠️ Note on the Featured Section:\nThe Featured section on the Design screen is currently a work in progress (preview placeholders). In the stable HyperBridge 0.6.0 final release, this carousel will directly connect to the official website and community hub, allowing users to discover, browse, download, and install community themes, custom designs, and smart translators with a single tap.\n🚀 Streamlined Guides \u0026amp; Direct Documentation Access # In-app help sheets and guide links have been consolidated into clean, direct section cards pointing straight to official, up-to-date online guides: 🎨 Customization: Themes, templates, custom translators, and island widgets. ⚡ Features: System apps integration (Timer, Recorder, Screen Recording), Smart Actions, Inline Reply, and Permanent Island. 🛠️ Advanced: Shizuku override, troubleshooting, diagnostics, and power-user configurations. 🧩 Custom Translators Specification: Build regex and condition-based interceptors for any notification. 🛠️ Fixes \u0026amp; Improvements # HyperOS 4 Beta Compatibility: Fixed an issue where standard and messaging notification islands were skipped by the system on HyperOS 4 Beta by ensuring the dismissible island parameter is explicitly set to false. Direct App Launching from Messaging Islands: Tapping on message island capsules now opens the target application reliably via a direct activity intent rather than an intermediate broadcast trampoline. String Quota \u0026amp; Performance Optimization: Massive reduction and deduplication of app string resources to keep Crowdin hosted translations within limits, while keeping guides richer and always current on the website. What\u0026rsquo;s Changed # fix: message island tap opens the app through an activity, not a broadcast trampoline (#371, #382) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/386 fix: ensure small and big island visibility on HyperOS 4 Beta by setting dismissible to false by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/393 feat(design): Visual Island Template Composer with 10 official HyperOS templates, Design Hub Bento Grid \u0026amp; Design Manager (#272, #327, #383, #385) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/390 refactor(strings): optimize string resources for Crowdin quota and streamline documentation guides by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/399 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-beta2...v0.6.0-beta3\nHyperBridge v0.6.0-beta1 🚀 # Welcome to HyperBridge v0.6.0-beta1! This milestone release marks the arrival of the all-new Custom Translators Framework (.htrans), powerful RAW_PARAM_V2 presentation modes, built-in Visual Translator Editor, System Update Islands, and key stability fixes for Android 15 \u0026amp; 16.\n⚠️ Beta Notice: Custom Translators \u0026amp; Full Engine Rework # This release includes a complete architectural rework of our translation engine and the very first public implementation of the Custom Translators system.\nBecause this is a major transition:\nSome advanced features, custom edge-case layouts, or specific token interpolations may still behave unexpectedly or contain bugs. Certain legacy behaviors or templates may require minor adjustments. We need your feedback! If you encounter any bugs, crashes, broken presentations, or missing features, please let us know by opening a GitHub Issue or posting in our Discussions. Your reports directly help us stabilize the engine for the final 0.6.0 release.\n🌟 Highlights \u0026amp; Major Features # 🧩 Custom Translators Framework (.htrans) # Take total control over how any app\u0026rsquo;s notifications render on Xiaomi HyperOS Super Island. Define custom matching rules, regex extractions, variable tokens, dynamic actions, and theme bindings without waiting for app updates.\nImport, Export \u0026amp; Share: Seamlessly package .htrans or .htrans.zip packages with embedded artwork and share them across devices via Storage Access Framework (SAF). Built-in Visual Editor: Build and test translators directly inside the HyperBridge app. 📖 Learn more in our documentation:\nCustom Translators Overview Translators Specification \u0026amp; Schema Reference Theme Creator \u0026amp; Bundling Guide ⚡ Advanced Custom Translations: RAW_PARAM_V2 Mode # For advanced creators, the new RAW_PARAM_V2 presentation mode lets you bypass standard layout constraints and write pure HyperOS Super Island JSON contracts with dynamic token interpolation ({notif.title}, {media.artist}, {var.custom}, {pic.key}).\nDynamic Elements: Full support for coverInfo, progressInfo, chatInfo, baseInfo, and bgInfo (color \u0026amp; picture background). Dual Island Layouts: Full custom configurations for both smallIslandArea and bigIslandArea (imageTextInfoLeft / imageTextInfoRight). Dynamic Variables \u0026amp; Actions: Extract progress percentages, live timestamps (startText/endText), and map custom intents or smart actions on the fly. 🔗 Official Xiaomi Specifications \u0026amp; Guides:\nOfficial Xiaomi HyperOS Focus Notification \u0026amp; Island Parameters Guide Official Xiaomi Super Island Template Library Specification (PDF) 🔄 System Update Island Integration # HyperBridge now brings a native-like experience to Xiaomi System Updates:\nTrack download and install progress directly on the Super Island. Dedicated customization and timeout settings within the app. 🐛 Fixes \u0026amp; Improvements # Android 15+ Message Interaction: Fixed an issue where tapping a messaging island did not open the target application. Android 16+ Island Grouping: Fixed force-grouping behavior so bridged islands are only grouped where Android 16+ grouping APIs exist. Summary Island Clean-up: Fixed an issue where the island group summary lingered after all individual islands were dismissed. CI / Quality Gating: Added GitHub Actions workflow for automated PR test verification and APK artifact generation. 📋 What\u0026rsquo;s Changed # ci: add GitHub Actions workflow for PR test gating and debug APK artifact (#349) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/352 feat: add system update island integration and customization settings by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/365 fix: only group bridged islands on Android 16+, where force grouping exists (#358) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/368 feat(translators): Custom Translators Framework (.htrans), Visual Editor, Dynamic Engine, Theme Bundling \u0026amp; SAF Sharing (#271) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/353 feat: add RAW_PARAM_V2 presentation mode with custom variables and actions by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/369 fix: message island tap opens the app again on Android 15+ (#359) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/366 fix: drop the island group summary once no island is left (#372) by @noelpatata in https://github.com/D4vidDf/HyperBridge/pull/373 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-dev4...v0.6.0-beta1\nHyperBridge v0.6.0-dev2 🚀 # Hyper Bridge v0.6.0-dev2 is the second development release of the v0.6.0 cycle!\nThis milestone introduces contextual Smart Action Buttons (one-tap OTP copy, URL opening, dialing, parcel tracking, and directions), resolves critical permanent island yielding and auto-hide TTL behaviors, enhances the real-time Diagnostics engine, overhauls settings navigation and M3 Expressive UI layouts, repairs multi-language character encodings, and brings a redesigned Featured Notification Warning Banner.\n⚡ Context-Aware Smart Action Buttons # One-Tap OTP Copy: Automatically detects one-time passwords and SMS verification codes from incoming message notifications and renders a dedicated copy button directly on the island. Open Links \u0026amp; Dial Numbers: Intelligent pattern detection extracts URLs and telephone numbers from notification bodies, letting you open links or start phone calls with a single tap. Track Parcels: Automatically recognizes carrier package tracking numbers and enables instant shipment lookups. Turn-by-Turn Directions: Identifies shared map links (Google Maps, etc.) and street addresses in message text, offering an immediate Directions action button. M3 Expressive App Exclusion Picker: Choose exactly which apps should or shouldn\u0026rsquo;t generate Smart Actions via a redesigned Material 3 Expressive bottom sheet with instant search and filter controls. ⚙️ How to Enable Smart Actions # Globally: Navigate to Settings → Global Settings → toggle Smart Actions on. Per-App: Open any application in the app list (Active Apps or Library) → Island Behavior → customize or override Smart Action buttons specifically for that app. 🏝️ Island Lifecycle \u0026amp; Timing Fixes # Permanent Island Yielding Overhaul: Fixed an issue where the Permanent Island remained hidden indefinitely behind long-lived native focus or media notifications (#255). It now yields to native islands only momentarily on new events before gracefully restoring. Accurate Auto-Hide TTL: Message and standard islands now strictly honor the user-configured Auto-Hide timeout (TTL) (#278), ensuring stale islands dismiss reliably and never remain stuck on screen. 🩺 Enhanced Diagnostics \u0026amp; Observability # Silent Drop Tracking: The Diagnostics event feed now records silent drops along with exact classification reasons (e.g. blocked keywords, DND, group summaries, or rate limits). System Removals \u0026amp; Spawns: Real-time event auditing for island additions, updates, and dismissals, giving users and developers clear transparency into notification pipeline decisions. 🎨 Settings Refinement \u0026amp; Material 3 Expressive UI # Streamlined Settings Hierarchy: Global Settings is now front-and-center as the primary entry point, with descriptive subtitles outlining island behavior, engine selection, inline replies, and smart actions. Guides \u0026amp; Help Reorganization: Moved system setup and permission walkthroughs into a consolidated \u0026ldquo;Guides and help\u0026rdquo; section for cleaner navigation. Redesigned Featured Notification Banner: Replaced intrusive dialogs/banners with an expressive FeaturedNotificationWarningBanner located cleanly beneath the top app bar exclusively on the Active Apps page, complete with an expandable detail dialog. Consistent Component Padding: Standardized card margins, toggle alignments, and content-to-action spacing across all configuration subscreens. 🌍 Translations \u0026amp; Encoding Repairs # Mojibake / Character Encoding Repair: Fixed corrupted special characters across community translations (Russian, Ukrainian, Polish, French, Hungarian, Indonesian, etc.) (#309) and integrated automated sanitization tooling. Spanish Localizations \u0026amp; Credits: Added full Spanish translations (values-es-rES and values-es-rEM) for call stages and new settings strings, alongside community credits for System Islands \u0026amp; Enhancements. What\u0026rsquo;s Changed # feat: Smart Action buttons — OTP copy, open link, dial, track parcel (#270, Phase 2) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/303 fix: permanent island no longer stays hidden behind long-lived media/focus notifications (#255) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/304 feat(diagnostics): record silent drops, new islands and system removals by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/308 fix(i18n): restore broken special characters across translations and preserve community updates (#309) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/311 fix: island TTL for message/standard islands now follows Auto-hide (#278) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/312 update dev branch by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/313 feat(settings): add System Islands \u0026amp; Enhancements credit and update Spanish localizations by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/314 refactor(ui): overhaul settings screens layout, navigation customization, and smart action app picker by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/315 feat(ui): introduce FeaturedNotificationWarningBanner and move warning UI to ActiveAppsPage by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/317 feat(smart-actions): Directions button for shared map links (#270) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/316 feat(smart-actions): Directions button for street addresses (#270) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/318 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.6.0-dev1...v0.6.0-dev2\nHyperBridge v0.6.0-dev1 🚀 # Hyper Bridge v0.6.0-dev1 is the first development release of the v0.6.0 cycle!\nThis release introduces native system islands for Screen Recording and VPN, overhauls the core notification lifecycle for zero-latency performance, integrates messaging deduplication and call state machines, adds step-by-step floating notification setup guidance, connects to the new web documentation \u0026amp; changelog platform, brings brand-new dedicated Diagnostics and Bug Report screens, and completely redesigns the per-app configuration experience with dedicated subscreens and integrated Island Widget management.\n📱 Redesigned App Configuration Screen \u0026amp; Subscreens # Full-Screen Workspace Migration: Migrated away from cramped modal bottom sheets on the Active Apps and Library tabs to a dedicated full-screen AppConfigScreen with complete gesture and hardware back-stack support. Expressive Card Grouping: Replaced cluttered inline accordion dropdowns with 3 distinct connected card groups using variable-corner shapes inspired by the Theme Creator: Core Behavior \u0026amp; Filters (Active Notification Types, Island Behavior, Blocked Terms). Island Widgets (Per-app widget management). Future Extensions (Custom Design \u0026amp; Custom Translators with prominent \u0026ldquo;COMING SOON\u0026rdquo; badges). Dedicated Subscreen Navigation: Smooth horizontal animated transitions into dedicated subscreen containers (SubscreenScaffold), complete with tonal back buttons matching the InfoScreen design. Streamlined Island Behavior: \u0026ldquo;Use Global Defaults\u0026rdquo; is now the top-level option; tweaking any slider or toggle seamlessly converts settings into custom overrides, while re-enabling global defaults instantly clears overrides back to defaults. Blocked Terms Vertical List: Blocked keywords are now organized in clean, separate containers featuring an input box card on top and an expressive vertical list below with one-tap removal. Future Extension Previews: Added dedicated placeholder subscreens for upcoming community Custom Designs and Custom Translators with direct links to track progress on GitHub. 🧩 Unified Island Widgets Management # Reusable App-Filtered Widget Picker: Clicking \u0026ldquo;Add Widget\u0026rdquo; in the app configuration screen opens the unified WidgetPickerScreen automatically filtered to providers from that specific application, auto-expanding its widget list and adapting the title to \u0026ldquo;Select Widget\u0026rdquo;. Live Configuration \u0026amp; Editing: Selecting any widget immediately transitions into WidgetConfigScreen to configure custom sizes, render modes, timeouts, and shade overlays. Configured widgets in the app list can also be tapped directly or edited via an edit icon button. Adaptive Live Previews: Widget previews in the list dynamically scale their container height to match the configured WidgetSize (SMALL, MEDIUM, LARGE, XLARGE, ORIGINAL), with proper measure and layout constraints for crisp rendering. Floating Action Button: Moved the \u0026ldquo;Add Widget\u0026rdquo; trigger to a prominent FloatingActionButton with comfortable bottom scroll padding. 🌐 New Documentation Website \u0026amp; Offloaded Changelogs # Dedicated Docs Platform: We have launched our official documentation website! Complete changelogs, setup guides, and technical explanations have moved to the web to keep the app lightweight and documentation easily searchable. Direct In-App Navigation: The Info screen now links directly to the online documentation and release notes, ensuring you always have access to the latest guides and version history. 🔍 New Diagnostics \u0026amp; Bug Report Screens # 🩺 Real-Time Diagnostics Screen # Subsystem Health Checks: Live status indicators for Notification Listener Service connection, POST_NOTIFICATIONS permission, HyperOS Island hardware support, and Featured Notification permissions. Live System Metrics: Instant visibility into active island counts, active widget tracking, and selected allowed apps. Rolling Sanitized Event Log: An in-app diagnostic log viewer showing recent notification events and translation statuses in real-time, making it effortless to see why a particular notification did or didn\u0026rsquo;t become an island. Material 3 Expressive Design: Clean card-based layout with full Compose preview support for faster development and inspection. 🐛 Streamlined Bug Report Screen # Automated System Profiling: Gathers device model, Android version, HyperOS build, active settings, and bridge status automatically. Privacy-Sanitized Exports: Sensitive text, notification content, and personal information are automatically scrubbed and redacted. One-Tap GitHub Ready Formatting: Formats your issue into a structured, clean Markdown template and copies it directly to your clipboard so you can paste it straight into GitHub Issues. 🚀 Key Highlights \u0026amp; New System Islands # 🎥 Native Xiaomi Screen Recording System Island # Live Recording Ticker: Dynamic island ticker displaying active recording duration in real time. Direct IPC Controls: Full interaction with Xiaomi’s screen recorder service (com.miui.screenrecorder) via IPC to pause, resume, and stop recordings directly from the island. Saved Completion Banner: Quick-access summary and preview banner with action handlers when a screen recording finishes saving. Dedicated Settings: Custom configuration screen to adjust screen recording island behavior. 🛡️ VPN Connectivity \u0026amp; System Island # System-Level Observer: Monitors VPN network capabilities (TRANSPORT_VPN) natively without needing root or Shizuku. Known Provider Adapters: Out-of-the-box support for popular VPN providers (WireGuard, OpenVPN, Cloudflare 1.1.1.1 WARP, ProtonVPN, Tailscale, Mullvad, and more). Active Status \u0026amp; Disconnect: Displays live connected duration, country flag resolution, and offers a one-tap disconnect button right from the island. System Integrations Tab: Conveniently manage VPN and system island toggles separate from regular apps. ⚡ Performance \u0026amp; Core Lifecycle Overhaul # Zero-Latency In-Memory Dispatch: Moved preference lookups on the hot notification path to cached in-memory state flows, eliminating SQLite/DataStore I/O bottlenecks. Generation Gating (SourceProcessingGeneration): Automatically supersedes outdated translation jobs during rapid notification updates. Expiry Registry (ExpiredIslandRegistry): Tracks expired notification state to eliminate ghost islands, resurrecting dismissed notifications, and visual flicker. IslandUpdateResolver: Reconciles incoming changes against existing active islands, updating state smoothly in-place. 💬 Messaging \u0026amp; Call Enhancements # Presentation Family Tracking: Correlates group summaries and per-conversation child notifications across apps like WhatsApp, Telegram, and Signal. Fingerprint Deduplication: Identifies and suppresses duplicate notification popups during rapid message bursts (\u0026ldquo;chat storms\u0026rdquo;). Call Lifecycle State Machine: Classifies and manages Incoming, Ongoing, Held, and Ending call states with dedicated microphone live/muted indicators. 🎨 UI \u0026amp; Setup Guidance # Floating Notification Setup: Step-by-step guidance to disable Xiaomi\u0026rsquo;s native floating heads-up notifications per app to avoid visual duplication over islands. System Integrations Section: Separates built-in system modules (Screen Recording, VPN) from standard third-party apps for clearer management. 🛠️ Stability \u0026amp; Framework Fixes # SecurityException Guard: Safely guarded calls to NotificationListenerService.activeNotifications before the listener service connects or after disconnection. Safe Intent Dispatch: Guarded against null or canceled PendingIntent executions. Unit Test Coverage: Comprehensive suite of 243 passing unit tests covering all reducers, trackers, and translation policies. 💖 Community \u0026amp; Credits # Special thanks to Sykeptical for their foundational contributions to Screen Recording controls, messaging deduplication, call state handling, and VPN integration originally developed in their fork and integrated into HyperBridge v0.6.0.\nWhat\u0026rsquo;s Changed # l10n: Update Korean translation by @alexkoala in https://github.com/D4vidDf/HyperBridge/pull/276 feat(i18n): add comprehensive Arabic language translation by @solom185 in https://github.com/D4vidDf/HyperBridge/pull/280 chore: bump version to 0.6.0-dev1 and migrate changelogs to web docum… by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/281 Epic/283 epic port integrate features and enhancements from sykeptical fork into hyper bridge v060 by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/300 Feature/app config screen by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/301 New Contributors # @solom185 made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/280 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.7...v0.6.0-dev1\nv0.5.7: Performance \u0026amp; Sync Update # This release focuses on significant under-the-hood performance improvements and stability fixes. Version 0.5.7 marks the final minor update for the 0.5.x branch, as Hyper Bridge officially begins the development of the next major milestone: v0.6.0.\n⚡ Performance \u0026amp; R8 Optimizations # App Optimization Enabled: Enabled full R8 code shrinking, obfuscation, and resource shrinking. This results in a significantly smaller APK size and improved runtime performance by removing unused code and optimizing class loading. Build System Upgrade: Upgraded to Android Gradle Plugin 9.3.2 and Gradle 9.5.0 to leverage the latest stability and build-time optimizations. 🛠️ Bug Fixes \u0026amp; Stability # Duplicate Prevention: Improved the logic for messaging apps (like WhatsApp/Telegram). The service now intelligently skips group summaries that would otherwise create redundant islands when live conversations are already active (Fixes #258 — Thanks @noelpatata2!). Sync Reliability: Refined the notification synchronization engine to prevent original system notifications from being prematurely dismissed. 🌐 Localization # Added Japanese translation (Thanks @gyuhowa1122-glitch!). Updated Spanish and Portuguese (BR) strings. 🤝 Acknowledgements # Added a Special Thanks section in the app settings acknowledging Stardawn for their research on the XMSF workaround that enables HyperIslands on Chinese ROMs. What\u0026rsquo;s Changed # Add Japanese translation by @gyuhowa1122-glitch in https://github.com/D4vidDf/HyperBridge/pull/253 fix: skip group summaries that duplicate live conversation notifications by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/258 New Contributors # @gyuhowa1122-glitch made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/253 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.6...v0.5.7\nv0.5.6: Landscape Hide \u0026amp; Stability Fixes # What\u0026rsquo;s Changed # fix: validate highlightColor before passing to SystemUI by @Wangtaotaoo in https://github.com/D4vidDf/HyperBridge/pull/248 fix: permanent island disappearing after notifications/unlock (#237) by @noelpatata2 in https://github.com/D4vidDf/HyperBridge/pull/243 feat: Add option to hide Permanent Island in landscape orientation by @ansjdev in https://github.com/D4vidDf/HyperBridge/pull/235 New Contributors # @noelpatata2 made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/243 @ansjdev made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/235 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.5...v0.5.6\nv0.5.5: Messaging \u0026amp; Update Fixes # This release focuses on significantly improving how islands handle notifications, squashing bugs related to Live Updates, and overhauling messaging grouping so your experience feels smoother and less cluttered.\n✨ Features \u0026amp; Improvements # Messaging Grouping Overhaul: Completely reworked how messaging-style notifications (like WhatsApp) are grouped to prevent duplicate islands from spawning. (#217) Permanent Island Upgrades: Improved the stability and logic for permanent/sticky islands to ensure they display and behave correctly. (#222) Live Update Inline Replies: You can now use the inline reply editor directly from Android 16 Live Update notifications. (#224) 🐛 Bug Fixes # Notification Drop \u0026amp; Discard Logic: Fixed a critical issue where islands were not being properly removed when dismissed, and prevented random notification drops. (#221) Live Update Icons: Fixed a bug where the original application icon wouldn\u0026rsquo;t display properly inside the Live Update builder. (#224) 🧹 Maintenance \u0026amp; Chores # Cleaned Up Localization: Safely removed 98 unused strings from the project without breaking UTF-8 encoding, resolving broken characters in localized strings. (#219) Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.4...v0.5.5\nv0.5.4: Critical Bug Fix # What\u0026rsquo;s Changed # fix: NLS reliability, Safe Mode crash loop, and implement auto-migration by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/216 fix: Clamp progress percent to [0, 100] to prevent SystemUI crash by @Wangtaotaoo in https://github.com/D4vidDf/HyperBridge/pull/214 New Contributors # @Wangtaotaoo made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/214 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.3...v0.5.4\nv0.5.3: Stability \u0026amp; Crash Fixes # This release focuses on improving stability and fixing several major crashes reported in production.\n🛠️ Bug Fixes # App Startup Stability: Fixed a critical double-checked locking bug in the internal database connection that caused SQLiteCantOpenDatabaseException and exhausted file descriptors during warm starts. Theme Creator Reliability: Fixed a ConcurrentModificationException when saving themes by ensuring thread-safe map copying during background generation. MIUI Compatibility: Bypassed aggressive MIUI theme engine hooks that intercepted the standard launcher icon in the onboarding flow, causing an instant OutOfMemoryError (RecordingCanvas.throwIfCannotDraw) on Xiaomi devices. Backup Resilience: Improved the JSON backup parser to catch and handle Throwable (including OutOfMemoryError), allowing the app to gracefully reject corrupted or oversized backups without crashing. Predictive Back: Mitigated rare WindowOnBackInvokedDispatcher null pointer exceptions related to Jetpack Compose gestures. Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.2...v0.5.3\nv0.5.2: Inline Reply, Performance \u0026amp; Stability # This release brings a brand new inline reply experience, allowing you to respond directly from the island, along with major performance optimizations and crash fixes.\n✨ New Features \u0026amp; Improvements # Inline Reply Overlay: Implement a brand new Inline Reply overlay! Reply to messages directly from the island without opening the app. Inline Reply Customization: Fully customize the look of the new inline reply editor globally or per-app via the new Global Settings -\u0026gt; Inline reply section. Service Memory Overhaul: Overhauled NotificationListener memory architecture to use an in-memory ConcurrentHashMap, dropping background CPU overhead and database reads to 0%. Warm Start Performance: Deferred AppDatabase allocation and moved getPackageInfo requests off the main UI thread, vastly improving warm start performance on ARM Cortex-A75 / Mali G52 architectures. 🐛 Bug Fixes # Theme Creator Crash: Migrated to ConcurrentHashMap to resolve ConcurrentModificationException during theme asset generation. WelcomePage ANR: Replaced synchronous PackageManager operations with standard painterResource to prevent WelcomePage ANR (Input Timeout). Widget Picker OOM: Offloaded toBitmap scaling to Dispatchers.IO and enforced dimension coercions to eliminate RecordingCanvas.throwIfCannotDraw constraints and OOM crashes. UI Layout Exceptions: Replaced rigid .heightIn(min = XX.dp) with .defaultMinSize(minHeight = XX.dp) globally to prevent Jetpack Compose Layout Constraint Exceptions on smaller screens. Backup Errors: Re-routed Gson to consume native InputStreamReader streams, dramatically reducing heap usage and preventing OutOfMemoryError on large JSON backups. What\u0026rsquo;s Changed # Fix/system UI crash by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/204 perf: optimize Notification Listener via synchronous memory caching by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/206 feat: implement Inline Reply overlay and theme customization by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/207 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.1...v0.5.2\nv0.5.1: Fixes \u0026amp; Refinements # This release focuses on major bug fixes regarding notification stability, quality-of-life improvements, and permission handling for Xiaomi devices.\n🐛 Bug Fixes # WhatsApp Duplicates Fixed: Resolved an issue that caused duplicate WhatsApp notifications to appear. Notification Flicker \u0026amp; Crashes Fixed: Fixed a crash caused by receiving multiple notifications in a short timeframe. Previously, the app would cancel and recreate notifications upon updates; it now safely updates notifications normally, completely eliminating the notification flicker and improving stability. Notification Intents Restored: Fixed an issue where clicking a featured notification would incorrectly route to the troubleshooting screen instead of the original app (e.g., Spotify, WhatsApp). Notifications now route correctly when permissions are granted! Settings UI Polish: Restored the missing rounded corners on the \u0026ldquo;Permanent Island\u0026rdquo; option in the Global Settings list for a cleaner aesthetic. Improved Fallback Notifications: If HyperBridge detects that the system cannot render a Featured Notification, it falls back to a standard Android notification. Clicking the fallback notification or its \u0026ldquo;Troubleshoot\u0026rdquo; action button now directly opens the Troubleshooting guide. ✨ New Features \u0026amp; Improvements # Remove Island on Dismiss: Added a new option to automatically remove the island if the original system notification is dismissed. Featured Notifications Diagnostics: Added a new check screen during Onboarding to verify if your Xiaomi device supports Featured Notifications and if the required system permissions are enabled. Setup Health Integration: The \u0026ldquo;Featured Notifications\u0026rdquo; permission status is now continuously monitored and displayed inside the Setup Health screen (under the Permissions section). You can quickly jump to System Settings from there. Troubleshooting Screen: Added a dedicated Troubleshooting Screen that guides users on how to enable the necessary hidden system permissions (or use Shizuku) to get islands working on strict Xiaomi ROMs. Clearer Terminology: Renamed the \u0026ldquo;Live Updates\u0026rdquo; section in the settings menu to \u0026ldquo;Notification Management\u0026rdquo; to better reflect its purpose and avoid confusion with native Live Update engines. Spanish Translations: Added full Spanish translations (es-rES) for all the new troubleshooting dialogues, setup health checks, and notification management settings. What\u0026rsquo;s Changed # fix(service): resolve WhatsApp duplication and update flashing/crashes by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/200 Fix: call islands lingering, permanent island flicker, and system cr by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/201 fix: implement Featured Notification diagnostics and stability refine… by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/202 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.5.0...v0.5.1\nv0.5.0: The Live Update # Hyper Bridge 0.5.0 is a massive feature release bringing full support for Native Live Updates, CN ROMs, a completely overhauled theme engine, dedicated layouts, and major system improvements.\n🌟 Headline Features # ⚡ Native Live Updates Support\nFull support for Native Android 16/HyperOS Live Updates. Requirement: Requires HyperOS 3.0.3xx+ or higher. Added as a brand new option in the Engine Selector (available globally or per-app), allowing you to choose between the custom \u0026ldquo;Xiaomi Featured Design\u0026rdquo; or native system Live Updates. 🇨🇳 Full CN ROM Support (Sui \u0026amp; Shizuku)\nAdded a dedicated workaround using Sui and Shizuku allowing users on HyperOS CN (Chinese) ROMs to fully enjoy Hyper Islands without needing native system support. Ensures seamless network operations and bypasses regional limitations on notifications. 🧠 Intelligent Permanent Island\nAlways Visible: You can now choose to keep the empty island permanently on your screen even when there are no active notifications. Auto-Hide Logic: The permanent island is smart—it automatically hides itself whenever an active widget is shown on the screen to prevent awkward UI overlaps. Customize the width of the permanent island directly from the settings to perfectly match your camera cutout. 🎨 Theme Engine \u0026amp; Color Customization Improvements\nNew HSL Color Picker: Replaced standard hex fields with a beautiful new HSL (Hue, Saturation, Lightness) bottom sheet color picker for ultra-precise theme customization. Engine Selection: You can now choose between the \u0026ldquo;Xiaomi Featured Design\u0026rdquo; or \u0026ldquo;Native Android Live Updates\u0026rdquo; on a per-app basis or globally. Layered Behavior Controls: Set custom timeouts and popup logic directly within themes. Shizuku Toggle: Added the Shizuku workaround toggle directly to the Theme Editor Engine tab for easy access. ⬇️ Dedicated Downloads \u0026amp; Text Progress\nNew Download Layout: Downloads now have a completely separated layout and visual design from standard progress bars, finishing with a satisfying \u0026ldquo;Green Tick\u0026rdquo; animation. Text Progress Support: The engine now parses raw percentage text (e.g., \u0026ldquo;12%\u0026rdquo;) from notifications, allowing apps that don\u0026rsquo;t use native progress bars to still trigger the island. Smart Filtering: Text-based progress is strictly filtered to store and installer downloads to prevent false triggers on regular status notifications. ⚙️ Advanced Island Behaviors \u0026amp; DND\nDo Not Disturb (DND): You can now enable DND mode to suppress island popups when you don\u0026rsquo;t want to be interrupted. Remove Original Notification: A highly requested new option allows you to automatically remove the original system notification when it\u0026rsquo;s being displayed in the Island, keeping your status bar completely clean. Custom Heads-up Popups: You can now define exactly how long the floating \u0026ldquo;heads-up\u0026rdquo; popup shows before smoothly transitioning back into the collapsed island. 💡 Smart Icon Tinting\nImplemented a new detection system that automatically analyzes extracted app notification icons. If an icon is dark or monochrome (making it invisible on the black island background), the system will intelligently tint it white. 🛠 System, UX \u0026amp; Bug Fixes # New Onboarding Experience: Completely redesigned the onboarding flow into an 11-page guided setup, making it significantly easier to grant critical permissions, configure engines, and set up island behaviors on your first launch. Direct Boot Support: The service now supports Direct Boot (LOCKED_BOOT_COMPLETED), meaning it starts immediately and reliably after a device restart—even before you unlock your phone for the first time. Widget Enhancements: Added a \u0026ldquo;Favorites\u0026rdquo; system and \u0026ldquo;Recommended\u0026rdquo; filter for the Widget Picker to quickly find island-compatible 1x4 and 2x4 widgets. Added a \u0026ldquo;Kill Active Widgets\u0026rdquo; action to instantly dismiss all running overlays. Messaging Fixes: Fixed missing sender avatars in apps like Telegram (now accurately extracts \u0026quot;sender_person\u0026quot; data). Resolved issues where grouped notifications (chat summaries) failed to trigger the island. Fixed island disappearance bugs caused by notification update race conditions (e.g., rapid progress updates). Navigation 3 Migration: Fully migrated app routing to AndroidX Navigation 3, resulting in faster, smoother screen transitions and predictive back gesture support. 🌍 Localization # Added full French localization. Updated strings across Spanish, Traditional Chinese, Italian, Indonesian, Portuguese, Hungarian, and more for all the new features. What\u0026rsquo;s Changed # master by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/126 Feat/color picker by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/127 feat(widget): add favorites, recommended filtering, and update notice by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/128 Feat/live updates by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/129 build: update project dependencies and gradle configuration by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/134 Feature/ux iprovement global configuration by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/137 feat(theme): enhance engine resolution and theme-persistent configuration by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/147 Feature/nav3 migration by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/152 Feature/duplication toggle by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/153 Feature/onboarding screen by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/155 fix(service): refine progress notification behavior and navigation state by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/157 feat(boot): add support for Direct Boot by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/159 refactor(service): refine floating behavior for progress notifications by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/164 Fix/162 bug crash unable to start service with null by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/165 Feature/permanent island by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/179 Beta/0 5 0 by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/190 Dev by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/193 Closed \u0026amp; Fixed Issues:\n#21: [FEAT] Opción para desactivar las notificaciones originales (Closed by @D4vidDf) #72: [FEAT] 0.4.0 dev (build 5) FEATURE REQUESTS (Closed by @D4vidDf) #94: [FEAT] Display Hyper Island even without any notification. (Closed by @D4vidDf) #97: [BUG] Dose not work on Hyper Os 3CN ( Turbo 4 pro) (Closed by @D4vidDf) #99: [FEAT] Improved island parameters (Closed by @D4vidDf) #107: [FEAT] Move Navigation island design screen (Closed by @D4vidDf) #119: Please add Do not Disturb (Closed by @D4vidDf) #120: Hyper bridge double notification problem (Closed by @D4vidDf) #141: [BUG] Still not working on CN device (Redmi K70 Pro) (Closed by @D4vidDf) #146: [BUG] Double notification (Closed by @D4vidDf) #156: [BUG] Progress bar/Download can\u0026rsquo;t close notification (Closed by @D4vidDf) #158: [BUG] Crash on Phone Boot (Closed by @D4vidDf) #162: [BUG] Crash Unable to start service with null on parameter specified as no-null (Closed by @D4vidDf) #163: [BUG] Download popup (Closed by @D4vidDf) #177: [BUG] No funciona después de la actualización del sistema (Closed by @D4vidDf) Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.4.2...v0.5.0\nv0.4.2: Hotfix Update # Status: Hotfix Release 🩹\nThis is a quick hotfix update to address a critical issue introduced in the recent localization update, alongside some under-the-hood improvements.\n🛠️ Fixes \u0026amp; Improvements # Crash Fix: Resolved a critical UnknownFormatConversionException crash that occurred when opening the app configuration menu while the device language was set to Traditional Chinese (Taiwan). General: Minor bug fixes and core stability improvements to keep the Island running smoothly. A huge thank you to the community for reporting the crash so quickly!\nFull Changelog: https://github.com/D4vidDf/HyperBridge/compare/v0.4.0...v0.4.2\nv0.4.0: The Customization Update # Build Date: January 22, 2026 Status: Stable Release 🌟\nTip This is a major feature update introducing the Theme Engine, Widget Support, and a complete rewrite of the Notification Core. If you are upgrading from v0.3.x, you may need to re-grant notification permissions or battery optimizations.\n✨ Highlights # 🎨 The HyperTheme Engine # We have unlocked full customization. You are no longer limited to the default look.\nTheme Creator: Design your own Dynamic Island themes directly inside the app with a real-time visual editor. Smart Colors: Enable useAppColors to automatically extract vibrant brand colors from the notification\u0026rsquo;s app icon (e.g., Green for WhatsApp, Blue for Telegram). Icon Shaping: Customize action buttons with shapes like Squircle, Clover, Arch, Cookie, and more. Granular Control: Configure specific colors for Calls (Answer/Decline) and override rules for individual apps. Sharing: Export your creations as .hbr files to share with the community. 🧩 Widget Support # Your favorite Android widgets now live in the Dynamic Island.\nPin Anywhere: Access music controls, calendars, or weather widgets from the island layer. Lockscreen Ready: Widgets remain visible and interactive even on the lockscreen. Dual Modes: Choose between Interactive (real-time, high refresh) or Snapshot (battery-efficient) rendering. ⚠️ Important: Widgets containing scrollable lists (e.g., Todo lists, Email streams) cannot be rendered in Interactive Mode due to system limitations. Please select Snapshot Mode for these widgets to display them correctly.\n⚡ Notification Engine 2.0 # The core listening service has been rewritten for maximum stability and performance.\nSmart Parsing: Fixed long-standing issues where notifications displayed package names (e.g., com.whatsapp) instead of message content. Anti-Flicker: Implemented content hashing to eliminate UI stuttering during rapid updates (e.g., download progress). Ghost Busters: Resolved race conditions that caused \u0026ldquo;ghost islands\u0026rdquo; to linger after a notification was dismissed. 🛠️ Improvements \u0026amp; Fixes # UI Redesign: A completely new \u0026ldquo;Design\u0026rdquo; hub with fluid carousels for managing Themes and Widgets. Privacy: Added a Global Blocklist to hide specific words or spoilers from appearing on the island. Navigation: Fixed issues where \u0026ldquo;Exit Navigation\u0026rdquo; buttons were missing from the notification shade. Progress Islands: Fixed rendering issues where download/upload islands would collapse or fail to show action buttons. Database: Migrated internal storage to Room Database for better reliability and boot persistence. Stability: Fixed a NullPointerException crash when configuring apps via the bottom sheet. 🌍 Localization # We have moved our translation workflow to Crowdin! A massive thank you to everyone who contributed.\n👉 Help translate HyperBridge on Crowdin\nNew Languages: 🇮🇩 Indonesian (Bahasa Indonesia) 🇹🇷 Turkish (Türkçe) 🇸🇰 Slovak (Slovenčina) Updated: 🇧🇷 Portuguese (Brazil), 🇵🇱 Polish, 🇰🇷 Korean, 🇺🇦 Ukrainian, 🇷🇺 Russian, 🇩🇪 German. 👩‍💻 For Developers # Theme API: Third-party apps (launchers, icon packs) can now apply themes programmatically using the com.d4viddf.hyperbridge.APPLY_THEME intent. Documentation: Check the Theme Creation Guide to learn how to build .hbr packages. 🤝 Contributors # Special thanks to our new contributors in this cycle:\n@alexkoala (Korean translations) @ItzDFPlayer (Ukrainian translations) @kilo3528 (Russian \u0026amp; German translations) @NIICKTCHUNS \u0026amp; @kacskrz (Continuous localization support) Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/0.3.1...v0.4.0\nv0.3.1: Backup \u0026amp; Polyglot Update # What\u0026rsquo;s Changed # Added Brazilian Portuguese translation by @NIICKTCHUNS in https://github.com/D4vidDf/HyperBridge/pull/14 Dev by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/44 Feature/ru de language by @kilo3528 in https://github.com/D4vidDf/HyperBridge/pull/52 Feature/ru de language by @kilo3528 in https://github.com/D4vidDf/HyperBridge/pull/54 Backup \u0026amp; 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 \u0026ldquo;Exit\u0026rdquo; 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. New Contributors # @kilo3528 made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/52 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/0.3.0...0.3.1\nv0.3.0: The Global Update # What\u0026rsquo;s Changed # Added Polish translation by @kacskrz in https://github.com/D4vidDf/HyperBridge/pull/10 Add Brazilian Portuguese translation (#14) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/16 feat(nav): add layout customization and fix text alignment by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/18 Add Brazilian Portuguese translation (#14) by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/22 feat(a11y): improve TalkBack support and semantic navigation by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/24 fix(service): ignore notifications showing package name as content by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/28 fix(deps): downgrade DataStore to resolve boot persistence issues by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/29 Updating PTBR translation by @NIICKTCHUNS in https://github.com/D4vidDf/HyperBridge/pull/30 Added Korean translation by @alexkoala in https://github.com/D4vidDf/HyperBridge/pull/26 fix(service): ignore placeholder notifications containing package name by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/31 feat(blocklist): add spoiler and privacy protection and redesign conf… by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/32 Add Ukrainian translation by @ItzDFPlayer in https://github.com/D4vidDf/HyperBridge/pull/37 feat(data): migrate preference storage from DataStore to Room by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/43 New Contributors # @kacskrz made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/10 @alexkoala made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/26 @ItzDFPlayer made their first contribution in https://github.com/D4vidDf/HyperBridge/pull/37 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/0.2.0...0.3.0\nv0.2.0: The Information Update # What\u0026rsquo;s Changed # feat: v0.2.0 Information Update - System Events, Config \u0026amp; Visuals by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/2 Full Changelog: https://github.com/D4vidDf/HyperBridge/compare/0.1.0...0.2.0\nv0.1.0: The Expressive Update # What\u0026rsquo;s Changed # feat(ui): Material 3 Expressive overhaul, new navigation \u0026amp; localization by @D4vidDf in https://github.com/D4vidDf/HyperBridge/pull/1 Full Changelog: https://github.com/D4vidDf/HyperBridge/commits/0.1.0\n","externalUrl":null,"permalink":"/changelog/","section":"Changelog","summary":"Follow the latest updates, features, and release history for HyperBridge.\nHyperBridge v0.6.0-beta3 🚀 # Welcome to v0.6.0-beta3! This release introduces the all-new Design Hub with a Bento Grid layout, a visual Island Template Composer supporting all 10 official Xiaomi HyperOS island layouts, critical fixes for Xiaomi HyperOS 4 Beta compatibility, and a streamlined documentation section.\n","title":"Changelog","type":"changelog"},{"content":"","externalUrl":null,"permalink":"/series/custom-widget-design/","section":"Series","summary":"","title":"Custom Widget Design","type":"series"},{"content":"Welcome to the official Hyper Bridge Documentation! Explore the guides below to get started with setup, permissions, Shizuku pairing, themes, custom translators, and more.\nTip: If you are setting up Hyper Bridge for the first time, check the Getting Started guide and ensure all HyperOS Permissions are granted. ","externalUrl":null,"permalink":"/docs/","section":"Documentation","summary":"Welcome to the official Hyper Bridge Documentation! Explore the guides below to get started with setup, permissions, Shizuku pairing, themes, custom translators, and more.\nTip: If you are setting up Hyper Bridge for the first time, check the Getting Started guide and ensure all HyperOS Permissions are granted. ","title":"Documentation","type":"docs"},{"content":"By default, only system apps utilize the HyperIsland. Hyper Bridge changes that. It acts as a bridge, reading your standard Android notifications and transforming them into sleek, native HyperOS visual elements.\n1M+\nDownloads\nTrusted by users across the globe on Google Play and GitHub. 100%\nOffline \u0026amp; Private\nRuns entirely on-device with zero telemetry or background tracking. Dynamic Island for HyperOS Seamlessly bridges standard Android notifications to native Xiaomi HyperOS Super Island / Dynamic Island with smooth animations and deep system integration. Smart Translators \u0026amp; Rules Intelligently categorizes media playback, active calls, navigation progress, download meters, verification codes, and timers to render customized island cards. Smart Actions \u0026amp; Automation Quickly copy 2FA verification codes, open tracking links, jump into navigation, or trigger context actions directly from your island and notifications. Privacy \u0026amp; Local Processing Runs 100% on-device with zero telemetry. Shizuku is only needed as an optional workaround for Chinese ROM users to manage system permissions without root. ","externalUrl":null,"permalink":"/","section":"Hyper Bridge","summary":"By default, only system apps utilize the HyperIsland. Hyper Bridge changes that. It acts as a bridge, reading your standard Android notifications and transforming them into sleek, native HyperOS visual elements.\n","title":"Hyper Bridge","type":"page"},{"content":"Last Updated: 28 August 2026\nWelcome to Hyper Bridge (hyper-bridge.app). This Privacy Policy describes how your information is handled when you visit our website or use the Hyper Bridge application (the \u0026ldquo;Services\u0026rdquo;). Your privacy is our highest priority.\n1. Core Principle: 100% Local On-Device Processing # Hyper Bridge is designed with a strict privacy-first architecture:\nNo Data Sharing: Hyper Bridge does not share, sell, transmit, or monetize your personal data or notification content with any third parties or remote servers. Zero Telemetry / Analytics: The application contains no analytics SDKs, trackers, or advertising frameworks. On-Device Local Processing: All notification parsing, rule matching, translator execution, and theme rendering happen entirely and exclusively on your local device. 2. Information We Collect and Process # Notification Listener Access (NotificationListenerService) # To provide its core functionality, Hyper Bridge requires Android Notification Listener permission.\nPurpose: Hyper Bridge reads incoming notifications (e.g., media playback, timers, downloads, navigation progress, messages, and incoming calls) solely to translate them locally in real time into the Xiaomi HyperOS Super Island / Dynamic Island specification. Scope: Notification data is held ephemerally in device memory only for as long as the active island or notification is displayed, after which it is immediately cleared. Storage: Notification text and images are never stored permanently in local databases and are never sent to external servers. Privileged Service \u0026amp; Shizuku (Optional) # If you enable Shizuku integration for privileged HyperOS system features (such as enhanced island management or System UI coordination), all API communication occurs purely between local processes on your device via Android IPC (AIDL). No elevated data leaves your device.\nBackup \u0026amp; Configuration Data # If you use the Backup \u0026amp; Restore feature, application settings (app blocklists, custom themes, and translation preferences) are exported to a local .hbr file chosen by you. We do not have access to your backups.\nWebsite \u0026amp; Direct Contact # If you contact us via email (d4viddf@d4viddf.com), we will use your email address and provided information solely to answer your technical questions or feedback.\n3. Data Storage and Security # Local Storage: All app preferences, custom theme configurations, and cached widget setups are stored strictly in local Android storage (DataStore \u0026amp; Room database on your device). Security: Because no notification content or user data is transmitted over the network, your sensitive data remains within Android\u0026rsquo;s sandboxed environment on your device. 4. Third-Party Sharing # We do not share, sell, or disclose your personal or notification information to any third parties.\n5. Your Rights and Control # You have full control over Hyper Bridge:\nYou can revoke Notification Listener access at any time via Android system settings. You can selectively exclude or block specific apps from being read or displayed in the island via the app\u0026rsquo;s settings. Clearing the application\u0026rsquo;s data or uninstalling the app permanently removes all stored local preferences and cache. 6. Children\u0026rsquo;s Privacy # Hyper Bridge does not collect or solicit any personal information from children under the age of 13.\n7. Changes to This Privacy Policy # We may update this Privacy Policy from time to time. Any changes will be posted on this page with an updated revision date.\n8. Contact # If you have any questions or concerns regarding this Privacy Policy, please contact:\nDavid DF\nEmail: d4viddf@d4viddf.com\nWebsite: https://d4viddf.com\nRepository: https://github.com/D4vidDf/HyperBridge\n","externalUrl":null,"permalink":"/privacy/","section":"Privacy Policy","summary":"Last Updated: 28 August 2026\nWelcome to Hyper Bridge (hyper-bridge.app). This Privacy Policy describes how your information is handled when you visit our website or use the Hyper Bridge application (the “Services”). Your privacy is our highest priority.\n","title":"Privacy Policy","type":"privacy"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]