expo-screen-capture 7.1.5-canary-20250612-338ef55 → 7.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/AndroidManifest.xml +0 -1
  4. package/build/ScreenCapture.d.ts +2 -6
  5. package/build/ScreenCapture.d.ts.map +1 -1
  6. package/build/ScreenCapture.js +2 -6
  7. package/build/ScreenCapture.js.map +1 -1
  8. package/expo-module.config.json +1 -1
  9. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.aar +0 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.aar.md5 +1 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.aar.sha1 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.aar.sha256 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.aar.sha512 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.module → 7.1.5/expo.modules.screencapture-7.1.5.module} +19 -19
  15. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.module.md5 +1 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.module.sha1 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.module.sha256 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.module.sha512 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.pom → 7.1.5/expo.modules.screencapture-7.1.5.pom} +2 -2
  20. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.pom.md5 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.pom.sha1 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.pom.sha256 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5/expo.modules.screencapture-7.1.5.pom.sha512 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/maven-metadata.xml +4 -4
  25. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/maven-metadata.xml.md5 +1 -1
  26. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/maven-metadata.xml.sha1 +1 -1
  27. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/maven-metadata.xml.sha256 +1 -1
  28. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/maven-metadata.xml.sha512 +1 -1
  29. package/package.json +5 -4
  30. package/src/ScreenCapture.ts +2 -6
  31. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar +0 -0
  32. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar.md5 +0 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar.sha1 +0 -1
  34. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar.sha256 +0 -1
  35. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar.sha512 +0 -1
  36. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.module.md5 +0 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.module.sha1 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.module.sha256 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.module.sha512 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.pom.md5 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.pom.sha1 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.pom.sha256 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55.pom.sha512 +0 -1
  44. /package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar → 7.1.5/expo.modules.screencapture-7.1.5-sources.jar} +0 -0
  45. /package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar.md5 → 7.1.5/expo.modules.screencapture-7.1.5-sources.jar.md5} +0 -0
  46. /package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar.sha1 → 7.1.5/expo.modules.screencapture-7.1.5-sources.jar.sha1} +0 -0
  47. /package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar.sha256 → 7.1.5/expo.modules.screencapture-7.1.5-sources.jar.sha256} +0 -0
  48. /package/local-maven-repo/host/exp/exponent/expo.modules.screencapture/{7.1.5-canary-20250612-338ef55/expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar.sha512 → 7.1.5/expo.modules.screencapture-7.1.5-sources.jar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -8,7 +8,9 @@
8
8
 
9
9
  ### 🐛 Bug fixes
10
10
 
11
- - [Android] Fix permissions on Android 13.
11
+ ### 💡 Others
12
+
13
+ ## 7.1.5 — 2025-07-01
12
14
 
13
15
  ### 💡 Others
14
16
 
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '7.1.5-canary-20250612-338ef55'
7
+ version = '7.1.5'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.screencapture"
11
11
  defaultConfig {
12
12
  versionCode 7
13
- versionName '7.1.5-canary-20250612-338ef55'
13
+ versionName '7.1.5'
14
14
  }
15
15
  }
16
16
 
@@ -1,5 +1,4 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
2
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
3
- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" android:minSdkVersion="33" android:maxSdkVersion="33"/>
4
3
  <uses-permission android:name="android.permission.DETECT_SCREEN_CAPTURE" android:minSdkVersion="34" />
5
4
  </manifest>
@@ -42,12 +42,8 @@ export declare function allowScreenCaptureAsync(key?: string): Promise<void>;
42
42
  export declare function usePreventScreenCapture(key?: string): void;
43
43
  /**
44
44
  * Adds a listener that will fire whenever the user takes a screenshot while the app is foregrounded.
45
- *
46
- * Permission requirements for this method depend on your device’s Android version:
47
- * - **Before Android 13**: Requires `READ_EXTERNAL_STORAGE`.
48
- * - **Android 13**: Switches to `READ_MEDIA_IMAGES`.
49
- * - **Post-Android 13**: No additional permissions required.
50
- * You can request the appropriate permissions by using [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).
45
+ * On Android, this method requires the `READ_EXTERNAL_STORAGE` permission. You can request this
46
+ * with [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).
51
47
  *
52
48
  * @param listener The function that will be executed when the user takes a screenshot.
53
49
  * This function accepts no arguments.
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenCapture.d.ts","sourceRoot":"","sources":["../src/ScreenCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,gBAAgB,EAEhB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAU3B;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEzD;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAStF;AAGD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAGD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAkB,GAAG,IAAI,CAQrE;AAGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,iBAAiB,CAE7E;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,iBAAiB,QAEvE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAKvE;AAED;;;;KAIK;AACL,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAK3E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,4JAGzB,CAAC;AASH,OAAO,EACL,iBAAiB,IAAI,YAAY,EACjC,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,CAAC"}
1
+ {"version":3,"file":"ScreenCapture.d.ts","sourceRoot":"","sources":["../src/ScreenCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,gBAAgB,EAEhB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAU3B;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEzD;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAStF;AAGD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAGD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAkB,GAAG,IAAI,CAQrE;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,iBAAiB,CAE7E;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,iBAAiB,QAEvE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAKvE;AAED;;;;KAIK;AACL,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAK3E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,4JAGzB,CAAC;AASH,OAAO,EACL,iBAAiB,IAAI,YAAY,EACjC,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,CAAC"}
@@ -76,12 +76,8 @@ export function usePreventScreenCapture(key = 'default') {
76
76
  // @needsAudit
77
77
  /**
78
78
  * Adds a listener that will fire whenever the user takes a screenshot while the app is foregrounded.
79
- *
80
- * Permission requirements for this method depend on your device’s Android version:
81
- * - **Before Android 13**: Requires `READ_EXTERNAL_STORAGE`.
82
- * - **Android 13**: Switches to `READ_MEDIA_IMAGES`.
83
- * - **Post-Android 13**: No additional permissions required.
84
- * You can request the appropriate permissions by using [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).
79
+ * On Android, this method requires the `READ_EXTERNAL_STORAGE` permission. You can request this
80
+ * with [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).
85
81
  *
86
82
  * @param listener The function that will be executed when the user takes a screenshot.
87
83
  * This function accepts no arguments.
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenCapture.js","sourceRoot":"","sources":["../src/ScreenCapture.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n UnavailabilityError,\n PermissionResponse,\n PermissionStatus,\n createPermissionHook,\n PermissionHookOptions,\n EventSubscription,\n} from 'expo-modules-core';\nimport { useEffect } from 'react';\n\nimport ExpoScreenCapture from './ExpoScreenCapture';\n\nconst activeTags: Set<string> = new Set();\n\nconst onScreenshotEventName = 'onScreenshot';\n\n// @needsAudit\n/**\n * Returns whether the Screen Capture API is available on the current device.\n *\n * @returns A promise that resolves to a `boolean` indicating whether the Screen Capture API is available on the current\n * device.\n */\nexport async function isAvailableAsync(): Promise<boolean> {\n return !!ExpoScreenCapture.preventScreenCapture && !!ExpoScreenCapture.allowScreenCapture;\n}\n\n// @needsAudit\n/**\n * Prevents screenshots and screen recordings until `allowScreenCaptureAsync` is called or the app is restarted. If you are\n * already preventing screen capture, this method does nothing (unless you pass a new and unique `key`).\n *\n * > On iOS, this will only prevent screen recordings, and is only available on iOS 11 and newer. On older\n * iOS versions, this method does nothing.\n *\n * @param key Optional. If provided, this will help prevent multiple instances of the `preventScreenCaptureAsync`\n * and `allowScreenCaptureAsync` methods (and `usePreventScreenCapture` hook) from conflicting with each other.\n * When using multiple keys, you'll have to re-allow each one in order to re-enable screen capturing.\n *\n * @platform android\n * @platform ios 11+\n */\nexport async function preventScreenCaptureAsync(key: string = 'default'): Promise<void> {\n if (!ExpoScreenCapture.preventScreenCapture) {\n throw new UnavailabilityError('ScreenCapture', 'preventScreenCaptureAsync');\n }\n\n if (!activeTags.has(key)) {\n activeTags.add(key);\n await ExpoScreenCapture.preventScreenCapture();\n }\n}\n\n// @needsAudit\n/**\n * Re-allows the user to screen record or screenshot your app. If you haven't called\n * `preventScreenCapture()` yet, this method does nothing.\n *\n * @param key This will prevent multiple instances of the `preventScreenCaptureAsync` and\n * `allowScreenCaptureAsync` methods from conflicting with each other. If provided, the value must\n * be the same as the key passed to `preventScreenCaptureAsync` in order to re-enable screen\n * capturing.\n */\nexport async function allowScreenCaptureAsync(key: string = 'default'): Promise<void> {\n if (!ExpoScreenCapture.preventScreenCapture) {\n throw new UnavailabilityError('ScreenCapture', 'allowScreenCaptureAsync');\n }\n\n activeTags.delete(key);\n if (activeTags.size === 0) {\n await ExpoScreenCapture.allowScreenCapture();\n }\n}\n\n// @needsAudit\n/**\n * A React hook to prevent screen capturing for as long as the owner component is mounted.\n *\n * @param key If provided, this will prevent multiple instances of this hook or the\n * `preventScreenCaptureAsync` and `allowScreenCaptureAsync` methods from conflicting with each other.\n * This argument is useful if you have multiple active components using the `allowScreenCaptureAsync`\n * hook.\n */\nexport function usePreventScreenCapture(key: string = 'default'): void {\n useEffect(() => {\n preventScreenCaptureAsync(key);\n\n return () => {\n allowScreenCaptureAsync(key);\n };\n }, [key]);\n}\n\n// @needsAudit\n/**\n * Adds a listener that will fire whenever the user takes a screenshot while the app is foregrounded.\n *\n * Permission requirements for this method depend on your device’s Android version:\n * - **Before Android 13**: Requires `READ_EXTERNAL_STORAGE`.\n * - **Android 13**: Switches to `READ_MEDIA_IMAGES`.\n * - **Post-Android 13**: No additional permissions required.\n * You can request the appropriate permissions by using [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).\n *\n * @param listener The function that will be executed when the user takes a screenshot.\n * This function accepts no arguments.\n *\n * @return A `Subscription` object that you can use to unregister the listener, either by calling\n * `remove()` or passing it to `removeScreenshotListener`.\n */\nexport function addScreenshotListener(listener: () => void): EventSubscription {\n return ExpoScreenCapture.addListener(onScreenshotEventName, listener);\n}\n\n// @needsAudit\n/**\n * Removes the subscription you provide, so that you are no longer listening for screenshots.\n * You can also call `remove()` on that `Subscription` object.\n *\n * @param subscription Subscription returned by `addScreenshotListener`.\n *\n * @example\n * ```ts\n * let mySubscription = addScreenshotListener(() => {\n * console.log(\"You took a screenshot!\");\n * });\n * ...\n * mySubscription.remove();\n * // OR\n * removeScreenshotListener(mySubscription);\n * ```\n */\nexport function removeScreenshotListener(subscription: EventSubscription) {\n subscription.remove();\n}\n\n/**\n * Checks user's permissions for detecting when a screenshot is taken.\n * > Only Android requires additional permissions to detect screenshots. On iOS devices, this method will always resolve to a `granted` permission response.\n * @return A promise that resolves to a [`PermissionResponse`](#permissionresponse) object.\n */\nexport async function getPermissionsAsync(): Promise<PermissionResponse> {\n if (ExpoScreenCapture.getPermissionsAsync) {\n return ExpoScreenCapture.getPermissionsAsync();\n }\n return defaultPermissionsResponse;\n}\n\n/**\n * Asks the user to grant permissions necessary for detecting when a screenshot is taken.\n * > Only Android requires additional permissions to detect screenshots. On iOS devices, this method will always resolve to a `granted` permission response.\n * @return A promise that resolves to a [`PermissionResponse`](#permissionresponse) object.\n * */\nexport async function requestPermissionsAsync(): Promise<PermissionResponse> {\n if (ExpoScreenCapture.requestPermissionsAsync) {\n return ExpoScreenCapture.requestPermissionsAsync();\n }\n return defaultPermissionsResponse;\n}\n\n/**\n * Check or request permissions necessary for detecting when a screenshot is taken.\n * This uses both [`requestPermissionsAsync`](#screencapturerequestpermissionsasync) and [`getPermissionsAsync`](#screencapturegetpermissionsasync) to interact with the permissions.\n *\n * @example\n * ```js\n * const [status, requestPermission] = ScreenCapture.usePermissions();\n * ```\n */\nexport const usePermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n});\n\nconst defaultPermissionsResponse: PermissionResponse = {\n granted: true,\n expires: 'never',\n canAskAgain: true,\n status: PermissionStatus.GRANTED,\n};\n\nexport {\n EventSubscription as Subscription,\n PermissionResponse,\n PermissionStatus,\n PermissionHookOptions,\n};\n"]}
1
+ {"version":3,"file":"ScreenCapture.js","sourceRoot":"","sources":["../src/ScreenCapture.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n UnavailabilityError,\n PermissionResponse,\n PermissionStatus,\n createPermissionHook,\n PermissionHookOptions,\n EventSubscription,\n} from 'expo-modules-core';\nimport { useEffect } from 'react';\n\nimport ExpoScreenCapture from './ExpoScreenCapture';\n\nconst activeTags: Set<string> = new Set();\n\nconst onScreenshotEventName = 'onScreenshot';\n\n// @needsAudit\n/**\n * Returns whether the Screen Capture API is available on the current device.\n *\n * @returns A promise that resolves to a `boolean` indicating whether the Screen Capture API is available on the current\n * device.\n */\nexport async function isAvailableAsync(): Promise<boolean> {\n return !!ExpoScreenCapture.preventScreenCapture && !!ExpoScreenCapture.allowScreenCapture;\n}\n\n// @needsAudit\n/**\n * Prevents screenshots and screen recordings until `allowScreenCaptureAsync` is called or the app is restarted. If you are\n * already preventing screen capture, this method does nothing (unless you pass a new and unique `key`).\n *\n * > On iOS, this will only prevent screen recordings, and is only available on iOS 11 and newer. On older\n * iOS versions, this method does nothing.\n *\n * @param key Optional. If provided, this will help prevent multiple instances of the `preventScreenCaptureAsync`\n * and `allowScreenCaptureAsync` methods (and `usePreventScreenCapture` hook) from conflicting with each other.\n * When using multiple keys, you'll have to re-allow each one in order to re-enable screen capturing.\n *\n * @platform android\n * @platform ios 11+\n */\nexport async function preventScreenCaptureAsync(key: string = 'default'): Promise<void> {\n if (!ExpoScreenCapture.preventScreenCapture) {\n throw new UnavailabilityError('ScreenCapture', 'preventScreenCaptureAsync');\n }\n\n if (!activeTags.has(key)) {\n activeTags.add(key);\n await ExpoScreenCapture.preventScreenCapture();\n }\n}\n\n// @needsAudit\n/**\n * Re-allows the user to screen record or screenshot your app. If you haven't called\n * `preventScreenCapture()` yet, this method does nothing.\n *\n * @param key This will prevent multiple instances of the `preventScreenCaptureAsync` and\n * `allowScreenCaptureAsync` methods from conflicting with each other. If provided, the value must\n * be the same as the key passed to `preventScreenCaptureAsync` in order to re-enable screen\n * capturing.\n */\nexport async function allowScreenCaptureAsync(key: string = 'default'): Promise<void> {\n if (!ExpoScreenCapture.preventScreenCapture) {\n throw new UnavailabilityError('ScreenCapture', 'allowScreenCaptureAsync');\n }\n\n activeTags.delete(key);\n if (activeTags.size === 0) {\n await ExpoScreenCapture.allowScreenCapture();\n }\n}\n\n// @needsAudit\n/**\n * A React hook to prevent screen capturing for as long as the owner component is mounted.\n *\n * @param key If provided, this will prevent multiple instances of this hook or the\n * `preventScreenCaptureAsync` and `allowScreenCaptureAsync` methods from conflicting with each other.\n * This argument is useful if you have multiple active components using the `allowScreenCaptureAsync`\n * hook.\n */\nexport function usePreventScreenCapture(key: string = 'default'): void {\n useEffect(() => {\n preventScreenCaptureAsync(key);\n\n return () => {\n allowScreenCaptureAsync(key);\n };\n }, [key]);\n}\n\n// @needsAudit\n/**\n * Adds a listener that will fire whenever the user takes a screenshot while the app is foregrounded.\n * On Android, this method requires the `READ_EXTERNAL_STORAGE` permission. You can request this\n * with [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).\n *\n * @param listener The function that will be executed when the user takes a screenshot.\n * This function accepts no arguments.\n *\n * @return A `Subscription` object that you can use to unregister the listener, either by calling\n * `remove()` or passing it to `removeScreenshotListener`.\n */\nexport function addScreenshotListener(listener: () => void): EventSubscription {\n return ExpoScreenCapture.addListener(onScreenshotEventName, listener);\n}\n\n// @needsAudit\n/**\n * Removes the subscription you provide, so that you are no longer listening for screenshots.\n * You can also call `remove()` on that `Subscription` object.\n *\n * @param subscription Subscription returned by `addScreenshotListener`.\n *\n * @example\n * ```ts\n * let mySubscription = addScreenshotListener(() => {\n * console.log(\"You took a screenshot!\");\n * });\n * ...\n * mySubscription.remove();\n * // OR\n * removeScreenshotListener(mySubscription);\n * ```\n */\nexport function removeScreenshotListener(subscription: EventSubscription) {\n subscription.remove();\n}\n\n/**\n * Checks user's permissions for detecting when a screenshot is taken.\n * > Only Android requires additional permissions to detect screenshots. On iOS devices, this method will always resolve to a `granted` permission response.\n * @return A promise that resolves to a [`PermissionResponse`](#permissionresponse) object.\n */\nexport async function getPermissionsAsync(): Promise<PermissionResponse> {\n if (ExpoScreenCapture.getPermissionsAsync) {\n return ExpoScreenCapture.getPermissionsAsync();\n }\n return defaultPermissionsResponse;\n}\n\n/**\n * Asks the user to grant permissions necessary for detecting when a screenshot is taken.\n * > Only Android requires additional permissions to detect screenshots. On iOS devices, this method will always resolve to a `granted` permission response.\n * @return A promise that resolves to a [`PermissionResponse`](#permissionresponse) object.\n * */\nexport async function requestPermissionsAsync(): Promise<PermissionResponse> {\n if (ExpoScreenCapture.requestPermissionsAsync) {\n return ExpoScreenCapture.requestPermissionsAsync();\n }\n return defaultPermissionsResponse;\n}\n\n/**\n * Check or request permissions necessary for detecting when a screenshot is taken.\n * This uses both [`requestPermissionsAsync`](#screencapturerequestpermissionsasync) and [`getPermissionsAsync`](#screencapturegetpermissionsasync) to interact with the permissions.\n *\n * @example\n * ```js\n * const [status, requestPermission] = ScreenCapture.usePermissions();\n * ```\n */\nexport const usePermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n});\n\nconst defaultPermissionsResponse: PermissionResponse = {\n granted: true,\n expires: 'never',\n canAskAgain: true,\n status: PermissionStatus.GRANTED,\n};\n\nexport {\n EventSubscription as Subscription,\n PermissionResponse,\n PermissionStatus,\n PermissionHookOptions,\n};\n"]}
@@ -8,7 +8,7 @@
8
8
  "publication": {
9
9
  "groupId": "host.exp.exponent",
10
10
  "artifactId": "expo.modules.screencapture",
11
- "version": "7.1.5-canary-20250612-338ef55",
11
+ "version": "7.1.5",
12
12
  "repository": "local-maven-repo"
13
13
  }
14
14
  }
@@ -0,0 +1 @@
1
+ e530fcfe5b4c0ca8362bc07e085bfd113e6bb5f9798cde28925b64c238ce77eb
@@ -0,0 +1 @@
1
+ e43057ceb38b0158e6866e120313f3d2f77ced9e1ac025667c2bebe36e528d537a248d4d7bff6c6db7683287ff777e14b651597b26636f7a1170825e35ea25b9
@@ -3,14 +3,14 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.screencapture",
6
- "version": "7.1.5-canary-20250612-338ef55",
6
+ "version": "7.1.5",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
10
10
  },
11
11
  "createdBy": {
12
12
  "gradle": {
13
- "version": "8.14"
13
+ "version": "8.13"
14
14
  }
15
15
  },
16
16
  "variants": [
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar",
28
- "url": "expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar",
29
- "size": 28245,
30
- "sha512": "5d693f6a83cc09074f42ae55d49f7cccfc0c2e1f024e43d866c285e18f0e37648ff966eb7507567538355f6d9f1b6c7d51f6eb45456dbe191ad41f3ae896f930",
31
- "sha256": "8a9e3dca21a096209a62e8ce26c3733e57135f9d59a41eb237636ae81c744345",
32
- "sha1": "bff3c51739c45f8a9d1b2184ddfb30538a689344",
33
- "md5": "3a53f7e2c485ed09380013fe5be379c8"
27
+ "name": "expo.modules.screencapture-7.1.5.aar",
28
+ "url": "expo.modules.screencapture-7.1.5.aar",
29
+ "size": 28229,
30
+ "sha512": "e43057ceb38b0158e6866e120313f3d2f77ced9e1ac025667c2bebe36e528d537a248d4d7bff6c6db7683287ff777e14b651597b26636f7a1170825e35ea25b9",
31
+ "sha256": "e530fcfe5b4c0ca8362bc07e085bfd113e6bb5f9798cde28925b64c238ce77eb",
32
+ "sha1": "7ecf0a53df33e2c96fb06dd301d6a5e0824282f0",
33
+ "md5": "7bd790ffca2e473cce9d80535730ba3c"
34
34
  }
35
35
  ]
36
36
  },
@@ -47,7 +47,7 @@
47
47
  "group": "org.jetbrains.kotlin",
48
48
  "module": "kotlin-stdlib-jdk7",
49
49
  "version": {
50
- "requires": "2.1.20"
50
+ "requires": "2.0.21"
51
51
  }
52
52
  },
53
53
  {
@@ -60,13 +60,13 @@
60
60
  ],
61
61
  "files": [
62
62
  {
63
- "name": "expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar",
64
- "url": "expo.modules.screencapture-7.1.5-canary-20250612-338ef55.aar",
65
- "size": 28245,
66
- "sha512": "5d693f6a83cc09074f42ae55d49f7cccfc0c2e1f024e43d866c285e18f0e37648ff966eb7507567538355f6d9f1b6c7d51f6eb45456dbe191ad41f3ae896f930",
67
- "sha256": "8a9e3dca21a096209a62e8ce26c3733e57135f9d59a41eb237636ae81c744345",
68
- "sha1": "bff3c51739c45f8a9d1b2184ddfb30538a689344",
69
- "md5": "3a53f7e2c485ed09380013fe5be379c8"
63
+ "name": "expo.modules.screencapture-7.1.5.aar",
64
+ "url": "expo.modules.screencapture-7.1.5.aar",
65
+ "size": 28229,
66
+ "sha512": "e43057ceb38b0158e6866e120313f3d2f77ced9e1ac025667c2bebe36e528d537a248d4d7bff6c6db7683287ff777e14b651597b26636f7a1170825e35ea25b9",
67
+ "sha256": "e530fcfe5b4c0ca8362bc07e085bfd113e6bb5f9798cde28925b64c238ce77eb",
68
+ "sha1": "7ecf0a53df33e2c96fb06dd301d6a5e0824282f0",
69
+ "md5": "7bd790ffca2e473cce9d80535730ba3c"
70
70
  }
71
71
  ]
72
72
  },
@@ -80,8 +80,8 @@
80
80
  },
81
81
  "files": [
82
82
  {
83
- "name": "expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar",
84
- "url": "expo.modules.screencapture-7.1.5-canary-20250612-338ef55-sources.jar",
83
+ "name": "expo.modules.screencapture-7.1.5-sources.jar",
84
+ "url": "expo.modules.screencapture-7.1.5-sources.jar",
85
85
  "size": 3601,
86
86
  "sha512": "080676e6818f1d063d27b7b460c49e34d7ebeae5e6a6e4c071840008b10a6beaafe0022467b6f556a1a190b22ae6b04ef87de7e7c2a74364b5af845efa1a6b05",
87
87
  "sha256": "d2c5b19e0bb1ad883b35525cdce5c665213505bea5b758f0c0c44b735fc960eb",
@@ -0,0 +1 @@
1
+ 9d37a7f1ea0da4d506a6f8cf9cff7a7d350934dff3b2e1ec908ca966a08e5f50
@@ -0,0 +1 @@
1
+ a3b30d821b0504cb6f3f0e2dac68f9ec2fce883883ada8032c920571e1582a2952330a4e1f9bbc89834690b863088a4f8f4cb08310457b02ab5c5ac6446f3216
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.screencapture</artifactId>
12
- <version>7.1.5-canary-20250612-338ef55</version>
12
+ <version>7.1.5</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.screencapture</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -28,7 +28,7 @@
28
28
  <dependency>
29
29
  <groupId>org.jetbrains.kotlin</groupId>
30
30
  <artifactId>kotlin-stdlib-jdk7</artifactId>
31
- <version>2.1.20</version>
31
+ <version>2.0.21</version>
32
32
  <scope>runtime</scope>
33
33
  </dependency>
34
34
  <dependency>
@@ -0,0 +1 @@
1
+ 5414dd185a2da54f32e75902b85340eebe33536fb78da0ddefb514e982b491a1
@@ -0,0 +1 @@
1
+ 80c4b3a4bc32c71e55ae80a0a2ca9fe7ac2d456ab2790f4cd1d4bdd1c7a3c84774ad2d04ef304a1c3c5541c1a2317f4157397fe602a2b3116bc78ac548ea8170
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.screencapture</artifactId>
5
5
  <versioning>
6
- <latest>7.1.5-canary-20250612-338ef55</latest>
7
- <release>7.1.5-canary-20250612-338ef55</release>
6
+ <latest>7.1.5</latest>
7
+ <release>7.1.5</release>
8
8
  <versions>
9
- <version>7.1.5-canary-20250612-338ef55</version>
9
+ <version>7.1.5</version>
10
10
  </versions>
11
- <lastUpdated>20250612174740</lastUpdated>
11
+ <lastUpdated>20250701054333</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 20fd849041c184221e25d51a57e32f28
1
+ 1108d5371870e21bec6777f37a3e7b33
@@ -1 +1 @@
1
- 47ad8e3bda96b3970b0566a889bcd8266db9d8a8
1
+ a00f725249d29c131e76426ab79044f8ac033b6f
@@ -1 +1 @@
1
- 626509b3908cd3338ef06f51ba4a5b71e405cc878010d178af4821a372394850
1
+ bb4fe28cd1bbdc0ecadb1b06eea85e31f162926d61114188603931884a011776
@@ -1 +1 @@
1
- 86b116baee9358ed8d70b4a4c4a0e0c295494d9a2b0ebe067bdacf6bea341e4855296059fa6459b8cf42f5bea4dc6b0830d1ff6d1f7b848baad36234a194adf3
1
+ c084c6d04d9c312fdcd86124f9e97e0d0cc5dcc208432a897831d56f3fd77a14f990d04b9168cc9a5740bb3c6ea0c9e668dad7a2b3cf0d5ea95e7c9f03bdbc36
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-screen-capture",
3
- "version": "7.1.5-canary-20250612-338ef55",
3
+ "version": "7.1.5",
4
4
  "description": "Protects screens in your app from being captured or recorded, and notifies if a screenshot is taken.",
5
5
  "main": "build/ScreenCapture.js",
6
6
  "types": "build/ScreenCapture.d.ts",
@@ -35,10 +35,11 @@
35
35
  "dependencies": {},
36
36
  "devDependencies": {
37
37
  "@testing-library/react-native": "^13.1.0",
38
- "expo-module-scripts": "4.1.8-canary-20250612-338ef55"
38
+ "expo-module-scripts": "^4.1.8"
39
39
  },
40
40
  "peerDependencies": {
41
- "expo": "54.0.0-canary-20250612-338ef55",
41
+ "expo": "*",
42
42
  "react": "*"
43
- }
43
+ },
44
+ "gitHead": "9731a6191dcab84e9c3a24492bbe70c56d6f5cc3"
44
45
  }
@@ -94,12 +94,8 @@ export function usePreventScreenCapture(key: string = 'default'): void {
94
94
  // @needsAudit
95
95
  /**
96
96
  * Adds a listener that will fire whenever the user takes a screenshot while the app is foregrounded.
97
- *
98
- * Permission requirements for this method depend on your device’s Android version:
99
- * - **Before Android 13**: Requires `READ_EXTERNAL_STORAGE`.
100
- * - **Android 13**: Switches to `READ_MEDIA_IMAGES`.
101
- * - **Post-Android 13**: No additional permissions required.
102
- * You can request the appropriate permissions by using [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).
97
+ * On Android, this method requires the `READ_EXTERNAL_STORAGE` permission. You can request this
98
+ * with [`MediaLibrary.requestPermissionsAsync()`](./media-library/#medialibraryrequestpermissionsasync).
103
99
  *
104
100
  * @param listener The function that will be executed when the user takes a screenshot.
105
101
  * This function accepts no arguments.
@@ -1 +0,0 @@
1
- 5d693f6a83cc09074f42ae55d49f7cccfc0c2e1f024e43d866c285e18f0e37648ff966eb7507567538355f6d9f1b6c7d51f6eb45456dbe191ad41f3ae896f930
@@ -1 +0,0 @@
1
- 745dd0664e60a81ea79b8793bea76537173bd93c64ed0d5707a37dce2006d409111c23788fba491b3a6637062e1fcf022e47ba6e0421606e6bb0e1acf5c7e2ab
@@ -1 +0,0 @@
1
- 532ec8fa6cdc6171864e7af9095f041744b7b1250a61867e0bec50563880ac1725189d9c20f6e95aced443ce3c74d49c5ddf4e8fa05b0dc27205048b64ca026e