cuoral-ionic 0.0.1 → 0.0.2

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 (85) hide show
  1. package/README.md +40 -4
  2. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  3. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  4. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  5. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  6. package/android/.gradle/8.9/gc.properties +0 -0
  7. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  8. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  9. package/android/.gradle/vcs-1/gc.properties +0 -0
  10. package/android/build/.transforms/2c48e1f34ca03014b78fcb3e0ab7197b/results.bin +1 -0
  11. package/android/build/.transforms/2c48e1f34ca03014b78fcb3e0ab7197b/transformed/classes/classes_dex/classes.dex +0 -0
  12. package/android/build/.transforms/980c51bd075f726f311ad662d5d20ba0/results.bin +1 -0
  13. package/android/build/.transforms/980c51bd075f726f311ad662d5d20ba0/transformed/classes/classes_dex/classes.dex +0 -0
  14. package/android/build/.transforms/bb54161301273cf9b5b94a21c0fb3f23/results.bin +1 -0
  15. package/android/build/.transforms/bb54161301273cf9b5b94a21c0fb3f23/transformed/classes/classes_dex/classes.dex +0 -0
  16. package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/results.bin +1 -0
  17. package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/CuoralPlugin$1.dex +0 -0
  18. package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/CuoralPlugin$2.dex +0 -0
  19. package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/CuoralPlugin.dex +0 -0
  20. package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/ScreenRecordService.dex +0 -0
  21. package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/desugar_graph.bin +0 -0
  22. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +22 -0
  23. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +18 -0
  24. package/android/build/intermediates/aar_main_jar/debug/classes.jar +0 -0
  25. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +6 -0
  26. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  27. package/android/build/intermediates/annotations_typedef_file/debug/typedefs.txt +0 -0
  28. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  29. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  30. package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -0
  31. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  32. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  33. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  34. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  35. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  36. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  37. package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/CuoralPlugin$1.class +0 -0
  38. package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/CuoralPlugin$2.class +0 -0
  39. package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/CuoralPlugin.class +0 -0
  40. package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/ScreenRecordService.class +0 -0
  41. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  42. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +38 -0
  43. package/android/build/intermediates/merged_java_res/debug/feature-cuoral-ionic.jar +0 -0
  44. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +22 -0
  45. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  46. package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/CuoralPlugin$1.class +0 -0
  47. package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/CuoralPlugin$2.class +0 -0
  48. package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/CuoralPlugin.class +0 -0
  49. package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/ScreenRecordService.class +0 -0
  50. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  51. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +1 -0
  52. package/android/build/outputs/aar/cuoral-ionic-debug.aar +0 -0
  53. package/android/build/outputs/logs/manifest-merger-debug-report.txt +49 -0
  54. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CuoralPlugin$1.class.uniqueId1 +0 -0
  55. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CuoralPlugin$2.class.uniqueId2 +0 -0
  56. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CuoralPlugin.class.uniqueId0 +0 -0
  57. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  58. package/android/build.gradle +61 -0
  59. package/android/src/main/AndroidManifest.xml +9 -0
  60. package/android/src/main/java/com/cuoral/ionic/CuoralPlugin.java +290 -33
  61. package/android/src/main/java/com/cuoral/ionic/ScreenRecordService.java +59 -0
  62. package/dist/cuoral.d.ts +30 -1
  63. package/dist/cuoral.d.ts.map +1 -1
  64. package/dist/cuoral.js +168 -1
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.esm.js +706 -127
  68. package/dist/index.esm.js.map +1 -1
  69. package/dist/index.js +706 -126
  70. package/dist/index.js.map +1 -1
  71. package/dist/intelligence.d.ts +66 -0
  72. package/dist/intelligence.d.ts.map +1 -0
  73. package/dist/intelligence.js +508 -0
  74. package/dist/plugin.d.ts +1 -1
  75. package/dist/plugin.d.ts.map +1 -1
  76. package/dist/plugin.js +24 -6
  77. package/dist/web.d.ts.map +1 -1
  78. package/dist/web.js +0 -3
  79. package/ios/Plugin/CuoralPlugin.swift +78 -1
  80. package/package.json +1 -1
  81. package/src/cuoral.ts +205 -1
  82. package/src/index.ts +1 -0
  83. package/src/intelligence.ts +609 -0
  84. package/src/plugin.ts +26 -6
  85. package/src/web.ts +0 -6
package/README.md CHANGED
@@ -5,8 +5,9 @@ Proactive customer success platform integration for Ionic/Capacitor applications
5
5
  ## Features
6
6
 
7
7
  ✅ **Customer Support** - Integrated support ticketing system
8
- ✅ **Customer Intelligence** - Track and analyze customer behavior
9
- ✅ **Screen Recording** - Native iOS screen recording for issue reproduction
8
+ ✅ **Customer Intelligence** - Track and analyze customer behavior automatically
9
+ ✅ **Native Crash Tracking** - Capture native Android & iOS crashes
10
+ ✅ **Screen Recording** - Native screen recording for issue reproduction
10
11
  ✅ **Modal Display** - Full-screen modal with floating chat button
11
12
  ✅ **TypeScript Support** - Full type definitions included
12
13
  ✅ **Simple API** - Just pass your public key and optional user info
@@ -24,15 +25,38 @@ After installing, sync your Capacitor project:
24
25
  npx cap sync
25
26
  ```
26
27
 
28
+ ## Platform Setup
29
+
30
+ ### Android Setup
31
+
32
+ The Android plugin automatically declares required permissions. Ensure your `AndroidManifest.xml` includes:
33
+
34
+ ```xml
35
+ <!-- Required for support widget and intelligence tracking -->
36
+ <uses-permission android:name="android.permission.INTERNET" />
37
+
38
+ <!-- Required for screen recording with audio -->
39
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
40
+
41
+ <!-- Required for screen recording on Android 9 and below -->
42
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
43
+ android:maxSdkVersion="28" />
44
+ ```
45
+
46
+ **Note:** These permissions are automatically added by Capacitor when you run `npx cap sync android`. The `INTERNET` permission is auto-granted by the system. `RECORD_AUDIO` requires user approval at runtime.
47
+
27
48
  ### iOS Setup
28
49
 
29
50
  Add to your `Info.plist`:
30
51
 
31
52
  ```xml
53
+ <!-- Required for screen recording with audio -->
32
54
  <key>NSMicrophoneUsageDescription</key>
33
55
  <string>We need access to your microphone to record audio with screen recordings</string>
34
56
  ```
35
57
 
58
+ **Note:** Screen recording permission is requested automatically by iOS when recording starts. No additional permissions are needed for crash tracking or intelligence features.
59
+
36
60
  ## Quick Start
37
61
 
38
62
  ### Option 1: Modal with Floating Button (Recommended)
@@ -92,7 +116,7 @@ export class HomePage implements OnInit, OnDestroy {
92
116
  - 🎨 Smooth animations and transitions
93
117
  - 🖱️ Click backdrop to close
94
118
 
95
- ### Option 2: Embedded Iframe
119
+ ### Option 2: Embedded Iframe - Not Recommended
96
120
 
97
121
  For more control over widget placement:
98
122
 
@@ -198,7 +222,8 @@ cuoral.destroy(): void
198
222
  ## What Gets Handled Automatically
199
223
 
200
224
  - ✅ Support ticket creation and management
201
- - ✅ Customer intelligence tracking
225
+ - ✅ Customer intelligence tracking (page views, errors, network failures)
226
+ - ✅ Native crash tracking (Android & iOS)
202
227
  - ✅ Screen recording start/stop
203
228
  - ✅ File path conversion for video playback
204
229
  - ✅ Communication between widget and native code
@@ -206,6 +231,17 @@ cuoral.destroy(): void
206
231
  - ✅ State management
207
232
  - ✅ Permissions handling
208
233
 
234
+ ### Intelligence Features (Backend-Controlled)
235
+
236
+ Intelligence tracking is automatically enabled/disabled from your Cuoral dashboard. When enabled, the library automatically captures:
237
+
238
+ - **Page Views** - Track navigation (requires one-time router setup, see [INTELLIGENCE.md](INTELLIGENCE.md))
239
+ - **Console Errors** - JavaScript errors and unhandled exceptions
240
+ - **Network Errors** - Failed API calls (4xx, 5xx responses)
241
+ - **Native Crashes** - Native Android (Java/Kotlin) and iOS (Swift/Objective-C) crashes
242
+
243
+ For detailed intelligence setup and features, see [INTELLIGENCE.md](INTELLIGENCE.md)
244
+
209
245
  ## Troubleshooting
210
246
 
211
247
  ### Recording doesn't start
File without changes
@@ -0,0 +1,2 @@
1
+ #Thu Jan 15 12:31:15 WAT 2026
2
+ gradle.version=8.9
File without changes
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="com.cuoral.ionic" >
4
+
5
+ <uses-sdk android:minSdkVersion="22" />
6
+
7
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
8
+ <uses-permission
9
+ android:name="android.permission.WRITE_EXTERNAL_STORAGE"
10
+ android:maxSdkVersion="28" />
11
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
12
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
13
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
14
+
15
+ <application>
16
+ <service
17
+ android:name="com.cuoral.ionic.ScreenRecordService"
18
+ android:exported="false"
19
+ android:foregroundServiceType="mediaProjection" />
20
+ </application>
21
+
22
+ </manifest>
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": 3,
3
+ "artifactType": {
4
+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
5
+ "kind": "Directory"
6
+ },
7
+ "applicationId": "com.cuoral.ionic",
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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/debug/shaders"/></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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/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/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/build/intermediates/shader_assets/debug/out"/></dataSet></merger>
@@ -0,0 +1,2 @@
1
+ R_DEF: Internal format may change without notice
2
+ local
@@ -0,0 +1,38 @@
1
+ 1<?xml version="1.0" encoding="utf-8"?>
2
+ 2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ 3 package="com.cuoral.ionic" >
4
+ 4
5
+ 5 <uses-sdk android:minSdkVersion="22" />
6
+ 6
7
+ 7 <uses-permission android:name="android.permission.RECORD_AUDIO" />
8
+ 7-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:5:5-71
9
+ 7-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:5:22-68
10
+ 8 <uses-permission
11
+ 8-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:6:5-7:51
12
+ 9 android:name="android.permission.WRITE_EXTERNAL_STORAGE"
13
+ 9-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:6:22-78
14
+ 10 android:maxSdkVersion="28" />
15
+ 10-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:7:22-48
16
+ 11 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
17
+ 11-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:8:5-77
18
+ 11-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:8:22-74
19
+ 12 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
20
+ 12-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:9:5-94
21
+ 12-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:9:22-91
22
+ 13 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
23
+ 13-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:10:5-77
24
+ 13-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:10:22-74
25
+ 14
26
+ 15 <application>
27
+ 15-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:12:5-17:19
28
+ 16 <service
29
+ 16-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:13:9-16:40
30
+ 17 android:name="com.cuoral.ionic.ScreenRecordService"
31
+ 17-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:14:13-48
32
+ 18 android:exported="false"
33
+ 18-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:16:13-37
34
+ 19 android:foregroundServiceType="mediaProjection" />
35
+ 19-->/Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:15:13-60
36
+ 20 </application>
37
+ 21
38
+ 22</manifest>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="com.cuoral.ionic" >
4
+
5
+ <uses-sdk android:minSdkVersion="22" />
6
+
7
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
8
+ <uses-permission
9
+ android:name="android.permission.WRITE_EXTERNAL_STORAGE"
10
+ android:maxSdkVersion="28" />
11
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
12
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
13
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
14
+
15
+ <application>
16
+ <service
17
+ android:name="com.cuoral.ionic.ScreenRecordService"
18
+ android:exported="false"
19
+ android:foregroundServiceType="mediaProjection" />
20
+ </application>
21
+
22
+ </manifest>
@@ -0,0 +1,49 @@
1
+ -- Merging decision tree log ---
2
+ manifest
3
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:2:1-19:12
4
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:2:1-19:12
5
+ package
6
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:3:5-31
7
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml
8
+ xmlns:android
9
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:2:11-69
10
+ uses-permission#android.permission.RECORD_AUDIO
11
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:5:5-71
12
+ android:name
13
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:5:22-68
14
+ uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
15
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:6:5-7:51
16
+ android:maxSdkVersion
17
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:7:22-48
18
+ android:name
19
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:6:22-78
20
+ uses-permission#android.permission.FOREGROUND_SERVICE
21
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:8:5-77
22
+ android:name
23
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:8:22-74
24
+ uses-permission#android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION
25
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:9:5-94
26
+ android:name
27
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:9:22-91
28
+ uses-permission#android.permission.POST_NOTIFICATIONS
29
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:10:5-77
30
+ android:name
31
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:10:22-74
32
+ application
33
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:12:5-17:19
34
+ service#com.cuoral.ionic.ScreenRecordService
35
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:13:9-16:40
36
+ android:exported
37
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:16:13-37
38
+ android:foregroundServiceType
39
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:15:13-60
40
+ android:name
41
+ ADDED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml:14:13-48
42
+ uses-sdk
43
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml reason: use-sdk injection requested
44
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml
45
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml
46
+ android:targetSdkVersion
47
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml
48
+ android:minSdkVersion
49
+ INJECTED from /Users/kayodeolayiwola/Desktop/projects/personal/support-cloud/cuoral-ionic/android/src/main/AndroidManifest.xml
@@ -0,0 +1,61 @@
1
+ ext {
2
+ junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
3
+ androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.6.1'
4
+ androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.5'
5
+ androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.5.1'
6
+ }
7
+
8
+ buildscript {
9
+ repositories {
10
+ google()
11
+ mavenCentral()
12
+ }
13
+ dependencies {
14
+ classpath 'com.android.tools.build:gradle:8.2.1'
15
+ }
16
+ }
17
+
18
+ apply plugin: 'com.android.library'
19
+
20
+ android {
21
+ namespace "com.cuoral.ionic"
22
+ compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 34
23
+
24
+ defaultConfig {
25
+ minSdk project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 22
26
+ targetSdk project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 34
27
+ versionCode 1
28
+ versionName "0.0.1"
29
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
30
+ }
31
+
32
+ buildTypes {
33
+ release {
34
+ minifyEnabled false
35
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
36
+ }
37
+ }
38
+
39
+ lintOptions {
40
+ abortOnError false
41
+ }
42
+
43
+ compileOptions {
44
+ sourceCompatibility JavaVersion.VERSION_17
45
+ targetCompatibility JavaVersion.VERSION_17
46
+ }
47
+ }
48
+
49
+ repositories {
50
+ google()
51
+ mavenCentral()
52
+ }
53
+
54
+ dependencies {
55
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
56
+ implementation project(':capacitor-android')
57
+ implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
58
+ testImplementation "junit:junit:$junitVersion"
59
+ androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
60
+ androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
61
+ }
@@ -6,5 +6,14 @@
6
6
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
7
7
  android:maxSdkVersion="28" />
8
8
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
9
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
10
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
11
+
12
+ <application>
13
+ <service
14
+ android:name=".ScreenRecordService"
15
+ android:foregroundServiceType="mediaProjection"
16
+ android:exported="false" />
17
+ </application>
9
18
 
10
19
  </manifest>