@abrarmehraj/permission-kit 0.1.0

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 (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/android/build/.transforms/3c361e3bc775e7d34547424688ff1c77/results.bin +1 -0
  4. package/android/build/.transforms/3c361e3bc775e7d34547424688ff1c77/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/BuildConfig.dex +0 -0
  5. package/android/build/.transforms/3c361e3bc775e7d34547424688ff1c77/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$1.dex +0 -0
  6. package/android/build/.transforms/3c361e3bc775e7d34547424688ff1c77/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$2.dex +0 -0
  7. package/android/build/.transforms/3c361e3bc775e7d34547424688ff1c77/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/ExpoPermissionKitModule.dex +0 -0
  8. package/android/build/.transforms/3c361e3bc775e7d34547424688ff1c77/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  9. package/android/build/.transforms/61a81db1043cb114cc6c946ab145548f/results.bin +1 -0
  10. package/android/build/.transforms/61a81db1043cb114cc6c946ab145548f/transformed/classes/classes_dex/classes.dex +0 -0
  11. package/android/build/.transforms/89e4d01fa013a5f232b92431ae151ffc/results.bin +1 -0
  12. package/android/build/.transforms/89e4d01fa013a5f232b92431ae151ffc/transformed/classes/classes_dex/classes.dex +0 -0
  13. package/android/build/.transforms/9fa24db55b8bf43f3fc0f8d12a30cf44/results.bin +1 -0
  14. package/android/build/.transforms/9fa24db55b8bf43f3fc0f8d12a30cf44/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/BuildConfig.dex +0 -0
  15. package/android/build/.transforms/9fa24db55b8bf43f3fc0f8d12a30cf44/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$1.dex +0 -0
  16. package/android/build/.transforms/9fa24db55b8bf43f3fc0f8d12a30cf44/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$2.dex +0 -0
  17. package/android/build/.transforms/9fa24db55b8bf43f3fc0f8d12a30cf44/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/permissionkit/ExpoPermissionKitModule.dex +0 -0
  18. package/android/build/.transforms/9fa24db55b8bf43f3fc0f8d12a30cf44/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  19. package/android/build/generated/source/buildConfig/debug/expo/modules/permissionkit/BuildConfig.java +10 -0
  20. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  21. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  22. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  23. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  24. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  25. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  26. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  27. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  28. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  29. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
  30. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  31. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  32. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/abrar-permission-kit_debug.kotlin_module +0 -0
  33. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/expo/modules/permissionkit/BuildConfig.class +0 -0
  34. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  35. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  36. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  37. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  38. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  39. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/abrar-permission-kit_debug.kotlin_module +0 -0
  40. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/permissionkit/BuildConfig.class +0 -0
  41. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$1.class +0 -0
  42. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$2.class +0 -0
  43. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/permissionkit/ExpoPermissionKitModule.class +0 -0
  44. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  45. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  46. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  47. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  48. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  49. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  51. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  52. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  53. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  54. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  55. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  56. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  57. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  126. package/android/build/outputs/logs/manifest-merger-debug-report.txt +14 -0
  127. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  128. package/android/build/tmp/kotlin-classes/debug/META-INF/abrar-permission-kit_debug.kotlin_module +0 -0
  129. package/android/build/tmp/kotlin-classes/debug/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$1.class +0 -0
  130. package/android/build/tmp/kotlin-classes/debug/expo/modules/permissionkit/ExpoPermissionKitModule$definition$lambda$2$$inlined$AsyncFunctionWithoutArgs$2.class +0 -0
  131. package/android/build/tmp/kotlin-classes/debug/expo/modules/permissionkit/ExpoPermissionKitModule.class +0 -0
  132. package/android/build.gradle +18 -0
  133. package/android/src/main/AndroidManifest.xml +2 -0
  134. package/android/src/main/java/expo/modules/permissionkit/ExpoPermissionKitModule.kt +49 -0
  135. package/app.plugin.js +1 -0
  136. package/build/ExpoPermissionKit.types.d.ts +1 -0
  137. package/build/ExpoPermissionKit.types.d.ts.map +1 -0
  138. package/build/ExpoPermissionKit.types.js +3 -0
  139. package/build/ExpoPermissionKit.types.js.map +1 -0
  140. package/build/ExpoPermissionKitModule.d.ts +7 -0
  141. package/build/ExpoPermissionKitModule.d.ts.map +1 -0
  142. package/build/ExpoPermissionKitModule.js +12 -0
  143. package/build/ExpoPermissionKitModule.js.map +1 -0
  144. package/build/ExpoPermissionKitModule.web.d.ts +6 -0
  145. package/build/ExpoPermissionKitModule.web.d.ts.map +1 -0
  146. package/build/ExpoPermissionKitModule.web.js +8 -0
  147. package/build/ExpoPermissionKitModule.web.js.map +1 -0
  148. package/build/PermissionKit.d.ts +15 -0
  149. package/build/PermissionKit.d.ts.map +1 -0
  150. package/build/PermissionKit.js +47 -0
  151. package/build/PermissionKit.js.map +1 -0
  152. package/build/index.d.ts +3 -0
  153. package/build/index.d.ts.map +1 -0
  154. package/build/index.js +21 -0
  155. package/build/index.js.map +1 -0
  156. package/build/types.d.ts +5 -0
  157. package/build/types.d.ts.map +1 -0
  158. package/build/types.js +3 -0
  159. package/build/types.js.map +1 -0
  160. package/expo-module.config.json +9 -0
  161. package/ios/ExpoPermissionKit.podspec +23 -0
  162. package/ios/ExpoPermissionKitModule.swift +18 -0
  163. package/package.json +46 -0
  164. package/plugin/build/index.js +25 -0
  165. package/src/ExpoPermissionKit.types.ts +1 -0
  166. package/src/ExpoPermissionKitModule.ts +15 -0
  167. package/src/ExpoPermissionKitModule.web.ts +6 -0
  168. package/src/PermissionKit.ts +50 -0
  169. package/src/index.ts +2 -0
  170. package/src/types.ts +9 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-present 650 Industries, Inc. (aka Expo)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,119 @@
1
+ # @abrarmehraj/permission-kit
2
+
3
+ A developer-friendly permissions library for **Expo** and **React Native**.
4
+
5
+ One call handles the full workflow — check, request, wait for app resume, return final status.
6
+
7
+ ```ts
8
+ const result = await PermissionKit.batteryOptimization();
9
+ // { status: 'granted' } or { status: 'denied' }
10
+ ```
11
+
12
+ ---
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @abrarmehraj/permission-kit
18
+ # or
19
+ yarn add @abrarmehraj/permission-kit
20
+ # or
21
+ pnpm add @abrarmehraj/permission-kit
22
+ ```
23
+
24
+ ## Setup
25
+
26
+ ### For Expo Projects (Recommended)
27
+
28
+ Use the built-in Config Plugin to automatically handle Android permissions. This ensures you only request the permissions you actually use!
29
+
30
+ In your `app.json`, add the plugin and specify the permissions you want:
31
+
32
+ ```json
33
+ {
34
+ "expo": {
35
+ "plugins": [
36
+ [
37
+ "@abrarmehraj/permission-kit",
38
+ {
39
+ "permissions": ["batteryOptimization"]
40
+ }
41
+ ]
42
+ ]
43
+ }
44
+ }
45
+ ```
46
+
47
+ Then run:
48
+ ```bash
49
+ npx expo prebuild
50
+ ```
51
+
52
+ ### For Bare React Native Projects (Without Expo Prebuild)
53
+
54
+ If you are not using Expo Prebuild, you must manage your `AndroidManifest.xml` manually.
55
+
56
+ Add the required permission to your `android/app/src/main/AndroidManifest.xml` ONLY IF you intend to use it:
57
+
58
+ ```xml
59
+ <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
60
+ ```
61
+
62
+ > **Note**: PermissionKit requires Expo Modules architecture. If you are on React Native 0.69+, you likely already have it. Make sure you run `npx pod-install` for iOS.
63
+
64
+ ## API
65
+
66
+ ### `PermissionKit.batteryOptimization()`
67
+
68
+ Checks if battery optimization is disabled for your app. If not, automatically opens the Android Settings dialog and waits for the user to return. Re-checks on resume.
69
+
70
+ ```ts
71
+ import { PermissionKit } from '@abrarmehraj/permission-kit';
72
+
73
+ const result = await PermissionKit.batteryOptimization();
74
+
75
+ if (result.status === 'granted') {
76
+ // App is excluded from battery optimization
77
+ } else if (result.status === 'denied') {
78
+ // User denied
79
+ } else if (result.status === 'unavailable') {
80
+ // Platform doesn't support this (e.g., iOS)
81
+ }
82
+ ```
83
+
84
+ ### `PermissionKit.checkBatteryOptimization()`
85
+
86
+ Check the current status without showing any dialog or opening settings.
87
+
88
+ ```ts
89
+ const result = await PermissionKit.checkBatteryOptimization();
90
+ // Use on app start to know the current state
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Platform Support
96
+
97
+ | Feature | Android | iOS |
98
+ |-----------------------|---------|------------------|
99
+ | Battery Optimization | ✅ | `unavailable` ⚠️ |
100
+
101
+ > **iOS Note**: iOS does not have Android-style battery optimization. Calling `batteryOptimization()` on iOS immediately returns `{ status: 'unavailable' }` without showing any UI.
102
+
103
+ ---
104
+
105
+ ## Roadmap
106
+
107
+ - [x] Battery Optimization (Android)
108
+ - [ ] Notifications (Android + iOS)
109
+ - [ ] Exact Alarm (Android)
110
+ - [ ] DND Access (Android)
111
+ - [ ] Overlay Permission (Android)
112
+ - [x] Expo Config Plugin
113
+ - [ ] Standalone Package
114
+
115
+ ---
116
+
117
+ ## License
118
+
119
+ MIT
@@ -0,0 +1 @@
1
+ o/bundleLibRuntimeToDirDebug
@@ -0,0 +1 @@
1
+ o/bundleLibRuntimeToDirDebug
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Automatically generated file. DO NOT MODIFY
3
+ */
4
+ package expo.modules.permissionkit;
5
+
6
+ public final class BuildConfig {
7
+ public static final boolean DEBUG = Boolean.parseBoolean("true");
8
+ public static final String LIBRARY_PACKAGE_NAME = "expo.modules.permissionkit";
9
+ public static final String BUILD_TYPE = "debug";
10
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="expo.modules.permissionkit" >
4
+
5
+ <uses-sdk android:minSdkVersion="24" />
6
+
7
+ </manifest>
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": 3,
3
+ "artifactType": {
4
+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
5
+ "kind": "Directory"
6
+ },
7
+ "applicationId": "expo.modules.permissionkit",
8
+ "variantName": "debug",
9
+ "elements": [
10
+ {
11
+ "type": "SINGLE",
12
+ "filters": [],
13
+ "attributes": [],
14
+ "outputFile": "AndroidManifest.xml"
15
+ }
16
+ ],
17
+ "elementType": "File"
18
+ }
@@ -0,0 +1,6 @@
1
+ aarFormatVersion=1.0
2
+ aarMetadataVersion=1.0
3
+ minCompileSdk=1
4
+ minCompileSdkExtension=0
5
+ minAndroidGradlePluginVersion=1.0.0
6
+ coreLibraryDesugaringEnabled=false
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/debug/jniLibs"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/debug/shaders"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ R_DEF: Internal format may change without notice
2
+ local
@@ -0,0 +1,7 @@
1
+ 1<?xml version="1.0" encoding="utf-8"?>
2
+ 2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ 3 package="expo.modules.permissionkit" >
4
+ 4
5
+ 5 <uses-sdk android:minSdkVersion="24" />
6
+ 6
7
+ 7</manifest>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="expo.modules.permissionkit" >
4
+
5
+ <uses-sdk android:minSdkVersion="24" />
6
+
7
+ </manifest>
@@ -0,0 +1,14 @@
1
+ -- Merging decision tree log ---
2
+ manifest
3
+ ADDED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml:1:1-2:12
4
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml:1:1-2:12
5
+ package
6
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml
7
+ uses-sdk
8
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml reason: use-sdk injection requested
9
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml
10
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml
11
+ android:targetSdkVersion
12
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml
13
+ android:minSdkVersion
14
+ INJECTED from /Users/abrarmehraj/Desktop/plugins-playground/modules/permission-kit/android/src/main/AndroidManifest.xml
@@ -0,0 +1,18 @@
1
+ plugins {
2
+ id 'com.android.library'
3
+ id 'expo-module-gradle-plugin'
4
+ }
5
+
6
+ group = 'expo.modules.permissionkit'
7
+ version = '0.1.0'
8
+
9
+ android {
10
+ namespace "expo.modules.permissionkit"
11
+ defaultConfig {
12
+ versionCode 1
13
+ versionName "0.1.0"
14
+ }
15
+ lintOptions {
16
+ abortOnError false
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ <manifest>
2
+ </manifest>