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

Flutter plugin to enable, disable, toggle or stream screenshot and screen recording activities in your application.

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

238
likes
160
points
80.7k
downloads

Publisher

verified publisherflutterplaza.com

Weekly Downloads

Flutter plugin to enable, disable, toggle or stream screenshot and screen recording activities in your application.

Homepage
Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on no_screenshot

Packages that implement no_screenshot