cuoral-ionic 0.0.1 → 0.0.3
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.
- package/README.md +81 -4
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build/.transforms/2c48e1f34ca03014b78fcb3e0ab7197b/results.bin +1 -0
- package/android/build/.transforms/2c48e1f34ca03014b78fcb3e0ab7197b/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/980c51bd075f726f311ad662d5d20ba0/results.bin +1 -0
- package/android/build/.transforms/980c51bd075f726f311ad662d5d20ba0/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/bb54161301273cf9b5b94a21c0fb3f23/results.bin +1 -0
- package/android/build/.transforms/bb54161301273cf9b5b94a21c0fb3f23/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/results.bin +1 -0
- package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/CuoralPlugin$1.dex +0 -0
- package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/CuoralPlugin$2.dex +0 -0
- package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/CuoralPlugin.dex +0 -0
- package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/debug_dex/com/cuoral/ionic/ScreenRecordService.dex +0 -0
- package/android/build/.transforms/f1aabffcd8b03aa664e77a79b3e1de5d/transformed/debug/desugar_graph.bin +0 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +22 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_main_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +6 -0
- package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotations_typedef_file/debug/typedefs.txt +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/CuoralPlugin$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/CuoralPlugin$2.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/CuoralPlugin.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/ScreenRecordService.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +38 -0
- package/android/build/intermediates/merged_java_res/debug/feature-cuoral-ionic.jar +0 -0
- package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +22 -0
- package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/CuoralPlugin$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/CuoralPlugin$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/CuoralPlugin.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/cuoral/ionic/ScreenRecordService.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +1 -0
- package/android/build/outputs/aar/cuoral-ionic-debug.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +49 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CuoralPlugin$1.class.uniqueId1 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CuoralPlugin$2.class.uniqueId2 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CuoralPlugin.class.uniqueId0 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build.gradle +61 -0
- package/android/src/main/AndroidManifest.xml +9 -0
- package/android/src/main/java/com/cuoral/ionic/CuoralPlugin.java +290 -33
- package/android/src/main/java/com/cuoral/ionic/ScreenRecordService.java +59 -0
- package/dist/cuoral.d.ts +30 -1
- package/dist/cuoral.d.ts.map +1 -1
- package/dist/cuoral.js +168 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +706 -127
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +706 -126
- package/dist/index.js.map +1 -1
- package/dist/intelligence.d.ts +66 -0
- package/dist/intelligence.d.ts.map +1 -0
- package/dist/intelligence.js +508 -0
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +24 -6
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +0 -3
- package/ios/Plugin/CuoralPlugin.swift +78 -1
- package/package.json +1 -1
- package/src/cuoral.ts +205 -1
- package/src/index.ts +1 -0
- package/src/intelligence.ts +609 -0
- package/src/plugin.ts +26 -6
- 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
|
-
✅ **
|
|
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
|
|
|
@@ -133,6 +157,47 @@ export class SupportPage implements OnInit, OnDestroy {
|
|
|
133
157
|
}
|
|
134
158
|
```
|
|
135
159
|
|
|
160
|
+
### Enable Page View Tracking (One-Time Setup)
|
|
161
|
+
|
|
162
|
+
To automatically track page views, add router tracking to your **app.component.ts** (or main app component):
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
import { Component } from '@angular/core';
|
|
166
|
+
import { Router, NavigationEnd } from '@angular/router';
|
|
167
|
+
import { Cuoral } from 'cuoral-ionic';
|
|
168
|
+
|
|
169
|
+
@Component({
|
|
170
|
+
selector: 'app-root',
|
|
171
|
+
templateUrl: 'app.component.html',
|
|
172
|
+
})
|
|
173
|
+
export class AppComponent {
|
|
174
|
+
private cuoral: Cuoral;
|
|
175
|
+
|
|
176
|
+
constructor(private router: Router) {
|
|
177
|
+
this.cuoral = new Cuoral({
|
|
178
|
+
publicKey: 'your-public-key-here',
|
|
179
|
+
email: 'user@example.com',
|
|
180
|
+
firstName: 'John',
|
|
181
|
+
lastName: 'Doe',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
async ngOnInit() {
|
|
186
|
+
// Initialize Cuoral (intelligence auto-enabled from dashboard)
|
|
187
|
+
await this.cuoral.initialize();
|
|
188
|
+
|
|
189
|
+
// Track all page navigation automatically
|
|
190
|
+
this.router.events.subscribe(event => {
|
|
191
|
+
if (event instanceof NavigationEnd) {
|
|
192
|
+
this.cuoral.trackPageView(event.url);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**That's it!** All page views are now automatically tracked. Console errors, network errors, and native crashes are tracked with zero additional setup.
|
|
200
|
+
|
|
136
201
|
## Configuration
|
|
137
202
|
|
|
138
203
|
### CuoralOptions
|
|
@@ -198,7 +263,8 @@ cuoral.destroy(): void
|
|
|
198
263
|
## What Gets Handled Automatically
|
|
199
264
|
|
|
200
265
|
- ✅ Support ticket creation and management
|
|
201
|
-
- ✅ Customer intelligence tracking
|
|
266
|
+
- ✅ Customer intelligence tracking (page views, errors, network failures)
|
|
267
|
+
- ✅ Native crash tracking (Android & iOS)
|
|
202
268
|
- ✅ Screen recording start/stop
|
|
203
269
|
- ✅ File path conversion for video playback
|
|
204
270
|
- ✅ Communication between widget and native code
|
|
@@ -206,6 +272,17 @@ cuoral.destroy(): void
|
|
|
206
272
|
- ✅ State management
|
|
207
273
|
- ✅ Permissions handling
|
|
208
274
|
|
|
275
|
+
### Intelligence Features (Backend-Controlled)
|
|
276
|
+
|
|
277
|
+
Intelligence tracking is automatically enabled/disabled from your Cuoral dashboard. When enabled, the library automatically captures:
|
|
278
|
+
|
|
279
|
+
- **Page Views** - Track navigation (requires one-time router setup, see [INTELLIGENCE.md](INTELLIGENCE.md))
|
|
280
|
+
- **Console Errors** - JavaScript errors and unhandled exceptions
|
|
281
|
+
- **Network Errors** - Failed API calls (4xx, 5xx responses)
|
|
282
|
+
- **Native Crashes** - Native Android (Java/Kotlin) and iOS (Swift/Objective-C) crashes
|
|
283
|
+
|
|
284
|
+
For detailed intelligence setup and features, see [INTELLIGENCE.md](INTELLIGENCE.md)
|
|
285
|
+
|
|
209
286
|
## Troubleshooting
|
|
210
287
|
|
|
211
288
|
### Recording doesn't start
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
o/classes
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
o/classes
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
o/classes
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
o/debug
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml
ADDED
|
@@ -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>
|
package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json
ADDED
|
@@ -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
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#Thu Jan 15 11:11:49 WAT 2026
|
|
@@ -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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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:.*:<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>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build/intermediates/javac/debug/classes/com/cuoral/ionic/ScreenRecordService.class
ADDED
|
Binary file
|
|
@@ -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>
|
|
Binary file
|
|
@@ -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 @@
|
|
|
1
|
+
[]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
com.cuoral.ionic
|
|
Binary file
|
|
@@ -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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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>
|