β¨ New Features & Enhancements
- Configurable Screenshot & Recents Privacy: Introduced a new global security feature to block screenshots, screen recordings, and content visibility in the "Recent Apps" switcher.
- This can be enabled app-wide by setting
security.block.screenshots=true
inswv.properties
. (#335) - When the Biometric Plugin is active and the global setting is off, this secure mode is dynamically enabled only during the authentication process, providing the best of both security and user convenience.
- This can be enabled app-wide by setting
π§ Architectural Enhancements
- Decoupled Rating Plugin: The
RatingPlugin
has been made fully self-contained by removing its compile-time dependency onstrings.xml
. The project will now compile successfully even if the rating-specific strings are removed, making the plugin truly optional. - Hardened Biometric & AdMob Plugins: Added null-safe checks to the
BiometricPlugin
andAdMobPlugin
. This prevents the app from crashing at runtime if a user has customized their layouts and removed the views these plugins depend on (e.g.,security_overlay
ormsw_ad_container
). Instead of crashing, the plugins will now log an error and gracefully disable the dependent feature. - Modularized Security Flag Control: The logic for managing the window's
FLAG_SECURE
has been centralized inMainActivity
. This allows core app settings and individual plugins to control the security state without conflicts, making the architecture more robust and extensible.
π Bug Fixes & Stability Improvements
- Fixed: Invisible Dialog Buttons in Light Theme: Resolved a critical theme issue where the "Yes" / "No" buttons in the exit confirmation dialog were invisible (white text on a white background) when the app was in light mode. Dialog buttons now correctly use the app's accent color and are clearly visible in both light and dark themes.
π Get Premium Plugins Access
Includes AdMob (Banner, Rewarded, Interstitial), Biometric Auth, QR Scanner, and more β available to monthly sponsors.