no_screenshot 0.7.1 copy "no_screenshot: ^0.7.1" to clipboard
no_screenshot: ^0.7.1 copied to clipboard

Flutter plugin to prevent screenshots, detect screen recording, and show blur/color/image overlays in the app switcher on Android, iOS, macOS, and Linux.

0.7.1 #

  • fix(linux): replaced FlEventSink with fl_event_channel_send for stream event delivery by @fonkamloic.

0.7.0 #

  • feat: added SecureWidget — a declarative Flutter widget that auto-enables screenshot protection on mount and disables on unmount (P6) by @fonkamloic.
  • feat: added SecureNavigatorObserver — a NavigatorObserver that applies different protection levels per named route (P7) by @fonkamloic.
  • feat: added SecureRouteConfig class for configuring per-route protection policies with OverlayMode, blurRadius, and color by @fonkamloic.
  • feat: added OverlayMode enum (none, secure, blur, color, image) and applyOverlayMode() helper for declarative protection by @fonkamloic.
  • feat: added idempotent screenshotWithImage(), screenshotWithBlur(), and screenshotWithColor() API methods — always enable the overlay (no toggle), safe to call repeatedly by @fonkamloic.
  • feat: added idempotent native handlers on Android, iOS, macOS, and Linux for the new always-enable methods by @fonkamloic.
  • feat(example): added SecureWidget demo page and per-route protection demo with payment, profile, and public pages by @fonkamloic.
  • test: added widget tests for SecureWidget (initState, dispose, didUpdateWidget, all overlay modes) by @fonkamloic.
  • test: added unit tests for SecureNavigatorObserver (didPush, didPop, didReplace, didRemove, defaultConfig, custom params) by @fonkamloic.
  • test: added method channel, platform interface, and NoScreenshot tests for new idempotent methods by @fonkamloic.
  • docs: updated README with SecureWidget and per-route protection sections, updated API reference table by @fonkamloic.

0.6.0 #

  • feat: added configurable blurRadius parameter to toggleScreenshotWithBlur({double blurRadius}) — defaults to 30.0, customizable per platform by @fonkamloic.
  • feat: added toggleScreenshotWithColor({int color}) API — solid color overlay for app switcher / recents screen across all platforms by @fonkamloic.
  • feat(android): color overlay via a solid View with the specified ARGB color by @fonkamloic.
  • feat(ios): color overlay via UIView with the specified background color by @fonkamloic.
  • feat(macos): color overlay via NSView with the specified background color by @fonkamloic.
  • feat(linux): color overlay state tracked and persisted (best-effort — compositors control task switcher thumbnails) by @fonkamloic.
  • feat: color, blur, and image overlays are mutually exclusive — activating one deactivates the others, enforced at native level on all platforms by @fonkamloic.
  • feat(example): added Color Overlay section with color picker and toggle button by @fonkamloic.
  • feat(example): added localization strings for color overlay UI by @fonkamloic.
  • test: added method channel, platform interface, and NoScreenshot tests for toggleScreenshotWithBlur with custom radius and toggleScreenshotWithColor by @fonkamloic.
  • docs: updated README, CHANGELOG, roadmap, and example app to reflect configurable blur radius and color overlay support by @fonkamloic.

0.5.0 #

  • feat: added toggleScreenshotWithBlur() API — Gaussian blur overlay for app switcher / recents screen (P2) by @fonkamloic.
  • feat(android): blur overlay via RenderEffect.createBlurEffect() on API 31+ (zero-copy GPU blur) and RenderScript.ScriptIntrinsicBlur on API 17–30 by @fonkamloic.
  • feat(ios): blur overlay via UIVisualEffectView with UIBlurEffect(style: .regular) by @fonkamloic.
  • feat(macos): blur overlay via NSVisualEffectView with .hudWindow material by @fonkamloic.
  • feat(linux): blur overlay state tracked and persisted (best-effort — compositors control task switcher thumbnails) by @fonkamloic.
  • feat: blur and image overlay are mutually exclusive — activating one deactivates the other, enforced at native level on all platforms by @fonkamloic.
  • feat: blur overlay state persists across app restarts via SharedPreferences / UserDefaults / JSON on all platforms by @fonkamloic.
  • feat(example): added Overlay Blur section with toggle button and status indicator by @fonkamloic.
  • fix(example): fixed stream subscription leak causing setState on unmounted widget — added proper dispose() and mounted check by @fonkamloic.
  • test: added method channel, platform interface, and NoScreenshot tests for toggleScreenshotWithBlur by @fonkamloic.
  • docs: updated README, CHANGELOG, roadmap, and example app to reflect blur overlay support by @fonkamloic.

0.4.0 #

  • feat: detect screen recording start/stop events across all platforms (P1) by @fonkamloic.
  • feat(ios): event-driven screen recording detection via UIScreen.capturedDidChangeNotification (iOS 11+) — detects both start and stop by @fonkamloic.
  • feat(android): screen recording detection via Activity.ScreenCaptureCallback (API 34+) — detects recording start; graceful no-op on pre-34 devices by @fonkamloic.
  • feat(macos): best-effort screen recording detection via NSWorkspace process monitoring — polls for known recording apps (QuickTime Player, OBS, Loom, Kap, ffmpeg, screencapture, simplescreenrecorder) by @fonkamloic.
  • feat(linux): best-effort screen recording detection via /proc process scanning — polls for known recording tools (ffmpeg, obs, simplescreenrecorder, kazam, peek, recordmydesktop, vokoscreen) by @fonkamloic.
  • feat: added isScreenRecording field to ScreenshotSnapshot — backward-compatible, defaults to false when omitted by native code by @fonkamloic.
  • feat: added startScreenRecordingListening() and stopScreenRecordingListening() API methods — recording detection is independent of screenshot detection by @fonkamloic.
  • feat(example): added Recording Monitoring section with enable/disable buttons and real-time isScreenRecording status display by @fonkamloic.
  • test: added method channel, platform interface, and ScreenshotSnapshot tests for screen recording detection by @fonkamloic.
  • docs: updated README, CHANGELOG, roadmap, and example app to reflect screen recording detection support by @fonkamloic.

0.3.6 #

  • feat(linux): added Linux support with screenshot detection via GFileMonitor (inotify), monitoring ~/Pictures/Screenshots/, ~/Pictures/, and XDG pictures directory by @fonkamloic.
  • feat(linux): screenshot file path is available on Linux (via GFileMonitor) — same as macOS by @fonkamloic.
  • feat(linux): screenshot prevention and image overlay are best-effort on Linux — state is tracked and persisted, but Linux compositors (Wayland / X11) do not expose a FLAG_SECURE-equivalent API by @fonkamloic.
  • feat(linux): state persistence via JSON file in $XDG_DATA_HOME/no_screenshot/state.json by @fonkamloic.
  • docs: updated README, CHANGELOG, and example app to reflect Linux support by @fonkamloic.

0.3.5 #

  • fix(ios): fix iOS 26 RTL layout shift by dropping ScreenProtectorKit and inlining screenshot prevention with forceLeftToRight semantics by @fonkamloic.
  • fix(ios): fix EXC_BAD_ACCESS crash in _collectExistingTraitCollectionsForTraitTracking on iOS 26+ caused by circular view hierarchy by @fonkamloic.
  • fix(ios): fix bottom-right content alignment caused by Auto Layout constraint offset during layer reparenting by @fonkamloic.
  • feat(ios): removed ScreenProtectorKit dependency — all iOS screenshot prevention is now inlined by @fonkamloic.
  • feat(example): add EN/AR localization and RTL toggle to example app for testing RTL layout by @fonkamloic.
  • docs: document screenshotPath availability — file path is only available on macOS; Android and iOS return a placeholder by @fonkamloic.
  • docs: add LTR/RTL language support note to README by @fonkamloic.
  • docs: add GIF demo placeholders for every feature on every platform by @fonkamloic.

0.3.4 #

  • fix(macos): detect clipboard-only screenshots (Cmd+Ctrl+Shift+3/4) via pasteboard polling by @fonkamloic.
  • fix(macos): detect repeated screenshots while screencaptureui is still running by @fonkamloic.
  • fix(macos): track screencaptureui process lifecycle (launch + termination) for reliable detection by @fonkamloic.
  • fix(macos): add 2s debounce to suppress duplicate detection events while allowing file-path upgrades from NSMetadataQuery by @fonkamloic.
  • docs: updated macOS screenshot monitoring documentation to reflect three detection methods by @fonkamloic.

0.3.3 #

  • feat(macos): added macOS support for toggleScreenshotWithImage() by @fonkamloic.
  • feat: added toggleScreenshotWithImage() API to display a custom image overlay when the app goes to the background or app switcher, preventing screenshot content exposure on both Android and iOS by @zhangyuanyuan-bear and @fonkamloic.
  • feat: image overlay mode persists across app restarts via platform SharedPreferences/UserDefaults by @zhangyuanyuan-bear and @fonkamloic.
  • fix(ios): prevent stale image overlay by consolidating lifecycle handling by @BranislavKljaic96 and @fonkamloic.
  • fix(ios): native code now works with both SceneDelegate and AppDelegate by @BranislavKljaic96 in https://github.com/FlutterPlaza/no_screenshot/pull/86.
  • fix: use Executors for SharedPreferences access on Android to avoid strict mode violations on startup by @qk7b in https://github.com/FlutterPlaza/no_screenshot/pull/74.
  • fix: properly clean up image overlay and activity references on detach/config changes (Android) by @fonkamloic.
  • chore: updated Kotlin and Gradle versions in Android build configuration by @T-moz in https://github.com/FlutterPlaza/no_screenshot/pull/76.
  • chore: updated example app to demonstrate the new image overlay feature by @fonkamloic.
  • test: added toggleScreenshotWithImage tests and fixed CI codecov upload by @fonkamloic.
  • ci: added automated pub.dev publish workflow by @fonkamloic.

0.3.3-beta.1 #

  • feat: added toggleScreenshotWithImage() API to display a custom image overlay when the app goes to the background or app switcher, preventing screenshot content exposure on both Android and iOS by @zhangyuanyuan-bear and @fonkamloic.
  • feat: image overlay mode persists across app restarts via platform SharedPreferences/UserDefaults by @zhangyuanyuan-bear and @fonkamloic.
  • fix: use Executors for SharedPreferences access on Android to avoid strict mode violations on startup by @qk7b.
  • fix: properly clean up image overlay and activity references on detach/config changes (Android) by @fonkamloic.
  • chore: updated Kotlin and Gradle versions in Android build configuration by @T-moz.
  • chore: updated example app to demonstrate the new image overlay feature by @fonkamloic.
  • ci: added automated pub.dev publish workflow by @fonkamloic.

0.3.2 #

0.3.2-beta.3 #

0.3.2-beta.1 #

0.3.1 #

  • feat: added MacOS support
  • fix: fix screenshot state not persisting on iOS
  • chore: added more examples.

1.0.0-beta.2 #

  • fix: Pub Point analysis failure.

1.0.0-beta.1 #

Summary of Changes #

  • Automatic State Persistence: Removed the need to track didChangeAppLifecycleState. The state will now be automatically persisted using native platform SharedPreferences.
  • Enhanced Example: Updated the example app to demonstrate the new automatic state persistence and usage of the NoScreenshot plugin.
  • Stream Support: Provided a stream to listen for screenshot activities, making it easier to react to screenshots in real-time.
  • Bug Fixes: Fixed various bugs related to screenshot detection and state management on both Android and iOS platforms.
  • Documentation Updates: Improved documentation to reflect the new features and provide clearer usage examples.
  • Deprecation Notice: Deprecated the use of the constructor NoScreenshot() in favor of the singleton NoScreenshot.instance.

0.2.0 #

  • Upgrade android to support AGP 8.X
  • merged fix by @alberto-cappellina PR[https://github.com/FlutterPlaza/no_screenshot/pull/27]
  • gradle:7.1.2 -> 7.4.2
  • kotlin_version = '1.6.10' -> '1.6.21'

0.0.1+7 #

  • Set the namespace for android
  • Specify a more current version of ScreenProtectorKit. This resolves iOS17 issues.
  • fix: screenshot prevention on iOS
  • updated readme by @Musaddiq635 PR[https://github.com/FlutterPlaza/no_screenshot/pull/26]
  • merged fix by @ggiordan PR[https://github.com/FlutterPlaza/no_screenshot/pull/29]

0.0.1+6 #

  • Removed the non implemented override functions in android life-cycle

0.0.1+5 #

  • Fixed broken link from pub dev analyses

0.0.1+4 #

0.0.1+3 #

  • Reverted to BSD 3 license
  • Added documentation
  • Made NoScreenshot class a singleton

0.0.1+2 #

  • Adopted MIT license

0.0.1+1 #

Updated readme and added sample usage.

0.0.1 #

Package has 3 basic functionalities on android and IOS via method channel. - Disable screenshot support in app - Enable screenshot support in app - Toggle between enable and disable state

248
likes
0
points
73.9k
downloads

Publisher

verified publisherflutterplaza.com

Weekly Downloads

Flutter plugin to prevent screenshots, detect screen recording, and show blur/color/image overlays in the app switcher on Android, iOS, macOS, and Linux.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on no_screenshot

Packages that implement no_screenshot