react-native-compressor 1.6.4 → 1.7.1

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 (192) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +41 -27
  3. package/android/build.gradle +95 -42
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +0 -1
  6. package/android/src/main/AndroidManifestNew.xml +2 -0
  7. package/android/src/main/java/com/reactnativecompressor/CompressorModule.java +107 -43
  8. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.java +47 -19
  9. package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.java +28 -16
  10. package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageCompressorOptions.java +5 -1
  11. package/android/src/main/java/com/reactnativecompressor/Utils/MediaCache.java +65 -0
  12. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +162 -3
  13. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +7 -4
  14. package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +11 -22
  15. package/android/src/newarch/CompressorSpec.java +9 -0
  16. package/android/src/newarch/VideoCompressorSpec.java +9 -0
  17. package/android/src/oldarch/CompressorSpec.java +34 -0
  18. package/android/src/oldarch/VideoCompressorSpec.java +26 -0
  19. package/ios/Compressor-Bridging-Header.h +1 -0
  20. package/ios/Compressor.h +9 -1
  21. package/ios/Compressor.mm +427 -0
  22. package/ios/Compressor.xcodeproj/project.pbxproj +6 -36
  23. package/ios/Image/ImageCompressor.h +12 -7
  24. package/ios/Image/ImageCompressor.m +164 -67
  25. package/ios/Image/ImageCompressorOptions.h +1 -0
  26. package/ios/Image/ImageCompressorOptions.m +5 -1
  27. package/ios/Utils/Downloader.h +16 -0
  28. package/ios/Utils/Downloader.m +150 -0
  29. package/ios/Utils/MediaCache.h +11 -0
  30. package/ios/Utils/MediaCache.m +51 -0
  31. package/ios/Video/VideoCompressor.swift +14 -5
  32. package/lib/commonjs/Audio/index.js +13 -14
  33. package/lib/commonjs/Audio/index.js.map +1 -1
  34. package/lib/commonjs/Image/index.js +26 -7
  35. package/lib/commonjs/Image/index.js.map +1 -1
  36. package/lib/commonjs/Main.js +29 -0
  37. package/lib/commonjs/Main.js.map +1 -0
  38. package/lib/commonjs/Spec/NativeCompressor.js +10 -0
  39. package/lib/commonjs/Spec/NativeCompressor.js.map +1 -0
  40. package/lib/commonjs/Spec/NativeVideoCompressor.js +10 -0
  41. package/lib/commonjs/Spec/NativeVideoCompressor.js.map +1 -0
  42. package/lib/commonjs/Video/index.js +17 -25
  43. package/lib/commonjs/Video/index.js.map +1 -1
  44. package/lib/commonjs/expo-plugin/compressor.js +1 -4
  45. package/lib/commonjs/expo-plugin/compressor.js.map +1 -1
  46. package/lib/commonjs/index.js +21 -28
  47. package/lib/commonjs/index.js.map +1 -1
  48. package/lib/commonjs/utils/index.js +32 -51
  49. package/lib/commonjs/utils/index.js.map +1 -1
  50. package/lib/module/Audio/index.js +13 -11
  51. package/lib/module/Audio/index.js.map +1 -1
  52. package/lib/module/Image/index.js +27 -6
  53. package/lib/module/Image/index.js.map +1 -1
  54. package/lib/module/Main.js +22 -0
  55. package/lib/module/Main.js.map +1 -0
  56. package/lib/module/Spec/NativeCompressor.js +3 -0
  57. package/lib/module/Spec/NativeCompressor.js.map +1 -0
  58. package/lib/module/Spec/NativeVideoCompressor.js +3 -0
  59. package/lib/module/Spec/NativeVideoCompressor.js.map +1 -0
  60. package/lib/module/Video/index.js +18 -19
  61. package/lib/module/Video/index.js.map +1 -1
  62. package/lib/module/expo-plugin/compressor.js +1 -3
  63. package/lib/module/expo-plugin/compressor.js.map +1 -1
  64. package/lib/module/index.js +8 -5
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/module/utils/index.js +26 -34
  67. package/lib/module/utils/index.js.map +1 -1
  68. package/lib/typescript/Audio/index.d.ts +2 -1
  69. package/lib/typescript/Audio/index.d.ts.map +1 -0
  70. package/lib/typescript/Image/index.d.ts +11 -6
  71. package/lib/typescript/Image/index.d.ts.map +1 -0
  72. package/lib/typescript/Main.d.ts +4 -0
  73. package/lib/typescript/Main.d.ts.map +1 -0
  74. package/lib/typescript/Spec/NativeCompressor.d.ts +14 -0
  75. package/lib/typescript/Spec/NativeCompressor.d.ts.map +1 -0
  76. package/lib/typescript/Spec/NativeVideoCompressor.d.ts +13 -0
  77. package/lib/typescript/Spec/NativeVideoCompressor.d.ts.map +1 -0
  78. package/lib/typescript/Video/index.d.ts +5 -3
  79. package/lib/typescript/Video/index.d.ts.map +1 -0
  80. package/lib/typescript/expo-plugin/compressor.d.ts +2 -3
  81. package/lib/typescript/expo-plugin/compressor.d.ts.map +1 -0
  82. package/lib/typescript/index.d.ts +7 -3
  83. package/lib/typescript/index.d.ts.map +1 -0
  84. package/lib/typescript/utils/index.d.ts +6 -4
  85. package/lib/typescript/utils/index.d.ts.map +1 -0
  86. package/package.json +62 -38
  87. package/react-native-compressor.podspec +24 -1
  88. package/src/Audio/index.tsx +6 -4
  89. package/src/Image/index.tsx +38 -5
  90. package/src/Main.tsx +41 -0
  91. package/src/Spec/NativeCompressor.ts +15 -0
  92. package/src/Spec/NativeVideoCompressor.ts +14 -0
  93. package/src/Video/index.tsx +28 -11
  94. package/src/expo-plugin/compressor.ts +2 -1
  95. package/src/index.tsx +7 -2
  96. package/src/utils/index.tsx +11 -5
  97. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  98. package/android/.gradle/6.9/fileChanges/last-build.bin +0 -0
  99. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  100. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  101. package/android/.gradle/6.9/gc.properties +0 -0
  102. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  103. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  104. package/android/.gradle/checksums/checksums.lock +0 -0
  105. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  106. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  107. package/android/.gradle/vcs-1/gc.properties +0 -0
  108. package/android/.idea/caches/build_file_checksums.ser +0 -0
  109. package/android/.idea/compiler.xml +0 -6
  110. package/android/.idea/gradle.xml +0 -20
  111. package/android/.idea/jarRepositories.xml +0 -45
  112. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
  113. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +0 -24
  114. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0.xml +0 -11
  115. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -19
  116. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -19
  117. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +0 -16
  118. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_0_0.xml +0 -11
  119. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -24
  120. package/android/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml +0 -16
  121. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -19
  122. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -19
  123. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -19
  124. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -24
  125. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +0 -24
  126. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -19
  127. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -19
  128. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -19
  129. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0.xml +0 -11
  130. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -19
  131. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -19
  132. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +0 -19
  133. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +0 -19
  134. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -19
  135. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -19
  136. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -24
  137. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -19
  138. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -24
  139. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +0 -19
  140. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +0 -19
  141. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
  142. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -19
  143. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +0 -13
  144. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +0 -15
  145. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +0 -18
  146. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +0 -18
  147. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +0 -18
  148. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +0 -18
  149. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +0 -15
  150. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +0 -15
  151. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +0 -15
  152. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +0 -15
  153. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +0 -15
  154. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +0 -15
  155. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +0 -15
  156. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +0 -15
  157. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +0 -13
  158. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_66_1_aar.xml +0 -14
  159. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_1.xml +0 -13
  160. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_1.xml +0 -13
  161. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_1_aar.xml +0 -15
  162. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +0 -13
  163. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  164. package/android/.idea/libraries/Gradle__com_googlecode_mp4parser_isoparser_1_0_6.xml +0 -13
  165. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_1.xml +0 -13
  166. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_1.xml +0 -13
  167. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +0 -13
  168. package/android/.idea/libraries/Gradle__io_github_lizhangqu_coreprogress_1_0_2_aar.xml +0 -18
  169. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  170. package/android/.idea/libraries/Gradle__org_aspectj_aspectjrt_1_8_2.xml +0 -13
  171. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  172. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +0 -13
  173. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_10.xml +0 -13
  174. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_10.xml +0 -13
  175. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_10.xml +0 -13
  176. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_10.xml +0 -13
  177. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_4_0.xml +0 -13
  178. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_4_0.xml +0 -13
  179. package/android/.idea/misc.xml +0 -9
  180. package/android/.idea/modules/android.iml +0 -138
  181. package/android/.idea/modules.xml +0 -8
  182. package/android/.idea/vcs.xml +0 -6
  183. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  184. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  185. package/android/gradlew +0 -183
  186. package/android/gradlew.bat +0 -100
  187. package/android/local.properties +0 -8
  188. package/ios/Compressor.m +0 -351
  189. package/ios/Compressor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  190. package/ios/Compressor.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  191. package/ios/Compressor.xcodeproj/xcshareddata/xcschemes/Compressor.xcscheme +0 -67
  192. package/ios/Compressor.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
@@ -1,12 +1,12 @@
1
- import { NativeModules } from 'react-native';
1
+ import { Compressor } from '../Main';
2
+
2
3
  import {
3
4
  AUDIO_BITRATE,
4
- AudioType,
5
5
  DEFAULT_COMPRESS_AUDIO_OPTIONS,
6
- defaultResultType,
7
6
  checkUrlAndOptions,
8
7
  } from '../utils';
9
- const NativeAudio = NativeModules.Compressor;
8
+ import type { AudioType, defaultResultType } from '../utils';
9
+ const NativeAudio = Compressor;
10
10
 
11
11
  const Audio: AudioType = {
12
12
  compress: async (url, options = DEFAULT_COMPRESS_AUDIO_OPTIONS) => {
@@ -31,6 +31,7 @@ const Audio: AudioType = {
31
31
  // Check and return the appropriate bitrate according to quality expected
32
32
  for (let i = 0; i < AUDIO_BITRATE.length; i++) {
33
33
  // Check a particular bitrate to return its nearest lower according to quality
34
+ //@ts-ignore
34
35
  if (mediaDetails.bitrate > AUDIO_BITRATE[i]) {
35
36
  if (i + 2 < AUDIO_BITRATE.length) {
36
37
  if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 2];
@@ -46,6 +47,7 @@ const Audio: AudioType = {
46
47
 
47
48
  // Check if the matching bitrate is the last in the array
48
49
  if (
50
+ //@ts-ignore
49
51
  mediaDetails.bitrate <= AUDIO_BITRATE[AUDIO_BITRATE.length - 1]
50
52
  ) {
51
53
  bitrate = AUDIO_BITRATE[AUDIO_BITRATE.length - 1];
@@ -1,5 +1,8 @@
1
- import { NativeModules } from 'react-native';
1
+ import { Compressor } from '../Main';
2
+ import { uuidv4 } from '../utils';
2
3
  const base64UrlRegex = /^data:image\/.*;(?:charset=.{3,5};)?base64,/;
4
+ import type { NativeEventSubscription } from 'react-native';
5
+ import { NativeEventEmitter } from 'react-native';
3
6
 
4
7
  export type InputType = 'base64' | 'uri';
5
8
 
@@ -38,23 +41,53 @@ export type CompressorOptions = {
38
41
  * The output that will return to user.
39
42
  */
40
43
  returnableOutputType?: ReturnableOutputType;
44
+ /***
45
+ * it is callback, only trigger when we pass image url from server
46
+ */
47
+ downloadProgress?: (progress: number) => void;
41
48
  };
42
49
 
43
- const NativeImage = NativeModules.Compressor;
50
+ const ImageCompressEventEmitter = new NativeEventEmitter(Compressor);
51
+
52
+ const NativeImage = Compressor;
44
53
 
45
54
  type ImageType = {
46
55
  compress(value: string, options?: CompressorOptions): Promise<string>;
47
56
  };
48
57
 
49
58
  const Image: ImageType = {
50
- compress: (value, options) => {
59
+ compress: async (value, options = {}) => {
51
60
  if (!value) {
52
61
  throw new Error(
53
62
  'Compression value is empty, please provide a value for compression.'
54
63
  );
55
64
  }
56
- const cleanData = value.replace(base64UrlRegex, '');
57
- return NativeImage.image_compress(cleanData, options);
65
+
66
+ const uuid = uuidv4();
67
+ let subscription: NativeEventSubscription;
68
+ try {
69
+ if (options?.downloadProgress) {
70
+ //@ts-ignore
71
+ options.uuid = uuid;
72
+ subscription = ImageCompressEventEmitter.addListener(
73
+ 'downloadProgress',
74
+ (event: any) => {
75
+ if (event.uuid === uuid) {
76
+ options.downloadProgress &&
77
+ options.downloadProgress(event.data.progress);
78
+ }
79
+ }
80
+ );
81
+ }
82
+
83
+ const cleanData = value.replace(base64UrlRegex, '');
84
+ return await NativeImage.image_compress(cleanData, options);
85
+ } finally {
86
+ // @ts-ignore
87
+ if (subscription) {
88
+ subscription.remove();
89
+ }
90
+ }
58
91
  },
59
92
  };
60
93
 
package/src/Main.tsx ADDED
@@ -0,0 +1,41 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+
3
+ const LINKING_ERROR =
4
+ `The package 'react-native-compressor' doesn't seem to be linked. Make sure: \n\n` +
5
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
6
+ '- You rebuilt the app after installing the package\n' +
7
+ '- You are not using Expo Go\n';
8
+
9
+ // @ts-expect-error
10
+ const isTurboModuleEnabled = global.__turboModuleProxy != null;
11
+
12
+ const CompressorModule = isTurboModuleEnabled
13
+ ? require('./Spec/NativeCompressor').default
14
+ : NativeModules.Compressor;
15
+ const VideoCompressorModule = isTurboModuleEnabled
16
+ ? require('./Spec/NativeVideoCompressor').default
17
+ : NativeModules.VideoCompressor;
18
+
19
+ const Compressor = CompressorModule
20
+ ? CompressorModule
21
+ : new Proxy(
22
+ {},
23
+ {
24
+ get() {
25
+ throw new Error(LINKING_ERROR);
26
+ },
27
+ }
28
+ );
29
+
30
+ const VideoCompressor = VideoCompressorModule
31
+ ? VideoCompressorModule
32
+ : new Proxy(
33
+ {},
34
+ {
35
+ get() {
36
+ throw new Error(LINKING_ERROR);
37
+ },
38
+ }
39
+ );
40
+
41
+ export { Compressor, VideoCompressor };
@@ -0,0 +1,15 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+
4
+ export interface Spec extends TurboModule {
5
+ image_compress(imagePath: string, optionMap: Object): Promise<string>;
6
+ compress_audio(fileUrl: string, optionMap: Object): Promise<string>;
7
+ generateFilePath(extension: string): Promise<string>;
8
+ getRealPath(path: string, type: string): Promise<string>;
9
+ getVideoMetaData(filePath: string): Promise<string>;
10
+ getFileSize(filePath: string): Promise<string>;
11
+ addListener(eventName: string): void;
12
+ removeListeners(count: number): void;
13
+ }
14
+
15
+ export default TurboModuleRegistry.getEnforcing<Spec>('Compressor');
@@ -0,0 +1,14 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+
4
+ export interface Spec extends TurboModule {
5
+ compress(fileUrl: string, optionMap: Object): Promise<string>;
6
+ cancelCompression(uuid: string): void;
7
+ upload(fileUrl: string, options: Object): Promise<string>;
8
+ activateBackgroundTask(options: Object): Promise<string>;
9
+ deactivateBackgroundTask(options: Object): Promise<string>;
10
+ addListener(eventName: string): void;
11
+ removeListeners(count: number): void;
12
+ }
13
+
14
+ export default TurboModuleRegistry.getEnforcing<Spec>('VideoCompressor');
@@ -1,9 +1,6 @@
1
- import {
2
- NativeModules,
3
- NativeEventEmitter,
4
- Platform,
5
- NativeEventSubscription,
6
- } from 'react-native';
1
+ import { NativeEventEmitter, Platform } from 'react-native';
2
+ import type { NativeEventSubscription } from 'react-native';
3
+ import { VideoCompressor } from '../Main';
7
4
  import { uuidv4 } from '../utils';
8
5
 
9
6
  export declare enum FileSystemUploadType {
@@ -22,6 +19,7 @@ type videoCompresssionType = {
22
19
  compressionMethod?: compressionMethod;
23
20
  minimumFileSizeForCompress?: number;
24
21
  getCancellationId?: (cancellationId: string) => void;
22
+ downloadProgress?: (progress: number) => void;
25
23
  };
26
24
 
27
25
  export declare enum FileSystemSessionType {
@@ -68,11 +66,9 @@ export type VideoCompressorType = {
68
66
  deactivateBackgroundTask(): Promise<any>;
69
67
  };
70
68
 
71
- const VideoCompressEventEmitter = new NativeEventEmitter(
72
- NativeModules.VideoCompressor
73
- );
69
+ const VideoCompressEventEmitter = new NativeEventEmitter(VideoCompressor);
74
70
 
75
- const NativeVideoCompressor = NativeModules.VideoCompressor;
71
+ const NativeVideoCompressor = VideoCompressor;
76
72
 
77
73
  export const backgroundUpload = async (
78
74
  url: string,
@@ -123,6 +119,8 @@ const Video: VideoCompressorType = {
123
119
  ) => {
124
120
  const uuid = uuidv4();
125
121
  let subscription: NativeEventSubscription;
122
+ let subscription2: NativeEventSubscription;
123
+
126
124
  try {
127
125
  if (onProgress) {
128
126
  subscription = VideoCompressEventEmitter.addListener(
@@ -134,6 +132,20 @@ const Video: VideoCompressorType = {
134
132
  }
135
133
  );
136
134
  }
135
+
136
+ if (options?.downloadProgress) {
137
+ //@ts-ignore
138
+ subscription2 = VideoCompressEventEmitter.addListener(
139
+ 'downloadProgress',
140
+ (event: any) => {
141
+ if (event.uuid === uuid) {
142
+ options.downloadProgress &&
143
+ options.downloadProgress(event.data.progress);
144
+ }
145
+ }
146
+ );
147
+ }
148
+
137
149
  const modifiedOptions: {
138
150
  uuid: string;
139
151
  bitrate?: number;
@@ -145,7 +157,7 @@ const Video: VideoCompressorType = {
145
157
  if (options?.compressionMethod) {
146
158
  modifiedOptions.compressionMethod = options?.compressionMethod;
147
159
  } else {
148
- modifiedOptions.compressionMethod = 'manual';
160
+ modifiedOptions.compressionMethod = 'auto';
149
161
  }
150
162
  if (options?.maxSize) {
151
163
  modifiedOptions.maxSize = options?.maxSize;
@@ -159,6 +171,7 @@ const Video: VideoCompressorType = {
159
171
  if (options?.getCancellationId) {
160
172
  options?.getCancellationId(uuid);
161
173
  }
174
+
162
175
  const result = await NativeVideoCompressor.compress(
163
176
  fileUrl,
164
177
  modifiedOptions
@@ -169,6 +182,10 @@ const Video: VideoCompressorType = {
169
182
  if (subscription) {
170
183
  subscription.remove();
171
184
  }
185
+ //@ts-ignore
186
+ if (subscription2) {
187
+ subscription2.remove();
188
+ }
172
189
  }
173
190
  },
174
191
  backgroundUpload,
@@ -1,8 +1,9 @@
1
+ //@ts-ignore
1
2
  import { ConfigPlugin, createRunOncePlugin } from '@expo/config-plugins';
2
3
  const pkg = require('../../../package.json');
3
4
 
4
5
  type Props = {};
5
6
 
6
- const withCompressor: ConfigPlugin<Props> = (config) => config;
7
+ const withCompressor: ConfigPlugin<Props> = (config:any) => config;
7
8
 
8
9
  export default createRunOncePlugin(withCompressor, pkg.name, pkg.version);
package/src/index.tsx CHANGED
@@ -1,4 +1,5 @@
1
- import Video, { VideoCompressorType, backgroundUpload } from './Video';
1
+ import Video, { backgroundUpload } from './Video';
2
+ import type { VideoCompressorType } from './Video';
2
3
  import Audio from './Audio';
3
4
  import Image from './Image';
4
5
  import {
@@ -7,6 +8,7 @@ import {
7
8
  generateFilePath,
8
9
  getRealPath,
9
10
  getVideoMetaData,
11
+ getFileSize,
10
12
  } from './utils';
11
13
 
12
14
  export {
@@ -15,13 +17,15 @@ export {
15
17
  Image,
16
18
  backgroundUpload,
17
19
  //type
18
- VideoCompressorType,
20
+
19
21
  getDetails,
20
22
  uuidv4,
21
23
  generateFilePath,
22
24
  getRealPath,
23
25
  getVideoMetaData,
26
+ getFileSize,
24
27
  };
28
+ export type { VideoCompressorType };
25
29
  export default {
26
30
  Video,
27
31
  Audio,
@@ -32,4 +36,5 @@ export default {
32
36
  generateFilePath,
33
37
  getRealPath,
34
38
  getVideoMetaData,
39
+ getFileSize,
35
40
  };
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable no-bitwise */
2
- import { NativeModules } from 'react-native';
3
- const { Compressor } = NativeModules;
2
+ import { Compressor } from '../Main';
3
+
4
4
  export const AUDIO_BITRATE = [256, 192, 160, 128, 96, 64, 32];
5
5
  type qualityType = 'low' | 'medium' | 'high';
6
6
  const INCORRECT_INPUT_PATH = 'Incorrect input path. Please provide a valid one';
@@ -76,8 +76,8 @@ const isFileNameError = (filename: string) => {
76
76
  };
77
77
 
78
78
  const getFilename = (path: string | null) => {
79
- const fullFilename = getFullFilename(path);
80
- if (!isFileNameError(fullFilename)) {
79
+ const fullFilename: string | undefined = getFullFilename(path);
80
+ if (fullFilename && !isFileNameError(fullFilename)) {
81
81
  const array = fullFilename.split('.');
82
82
  return array.length > 1 ? array.slice(0, -1).join('') : array.join('');
83
83
  }
@@ -85,7 +85,9 @@ const getFilename = (path: string | null) => {
85
85
  };
86
86
 
87
87
  const isRemoteMedia = (path: string | null) => {
88
- return typeof path === 'string' ? path.split(':/')[0].includes('http') : null;
88
+ return typeof path === 'string'
89
+ ? path?.split(':/')?.[0]?.includes('http')
90
+ : null;
89
91
  };
90
92
 
91
93
  export const getDetails = (
@@ -165,6 +167,10 @@ export const checkUrlAndOptions = async (
165
167
  }
166
168
  };
167
169
 
170
+ export const getFileSize = async (filePath: string): Promise<string> => {
171
+ return Compressor.getFileSize(filePath);
172
+ };
173
+
168
174
  export const uuidv4 = () => {
169
175
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
170
176
  const r =
File without changes
@@ -1,2 +0,0 @@
1
- #Thu Jan 27 18:54:59 PKT 2022
2
- gradle.version=6.9
File without changes
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="CompilerConfiguration">
4
- <bytecodeTargetLevel target="1.8" />
5
- </component>
6
- </project>
@@ -1,20 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="GradleMigrationSettings" migrationVersion="1" />
4
- <component name="GradleSettings">
5
- <option name="linkedExternalProjectsSettings">
6
- <GradleProjectSettings>
7
- <option name="testRunner" value="GRADLE" />
8
- <option name="distributionType" value="DEFAULT_WRAPPED" />
9
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
10
- <option name="gradleJvm" value="1.8" />
11
- <option name="modules">
12
- <set>
13
- <option value="$PROJECT_DIR$" />
14
- </set>
15
- </option>
16
- <option name="resolveModulePerSourceSet" value="false" />
17
- </GradleProjectSettings>
18
- </option>
19
- </component>
20
- </project>
@@ -1,45 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="RemoteRepositoriesConfiguration">
4
- <remote-repository>
5
- <option name="id" value="central" />
6
- <option name="name" value="Maven Central repository" />
7
- <option name="url" value="https://repo1.maven.org/maven2" />
8
- </remote-repository>
9
- <remote-repository>
10
- <option name="id" value="jboss.community" />
11
- <option name="name" value="JBoss Community repository" />
12
- <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
13
- </remote-repository>
14
- <remote-repository>
15
- <option name="id" value="MavenLocal" />
16
- <option name="name" value="MavenLocal" />
17
- <option name="url" value="file:$USER_HOME$/.m2/repository" />
18
- </remote-repository>
19
- <remote-repository>
20
- <option name="id" value="maven" />
21
- <option name="name" value="maven" />
22
- <option name="url" value="file:$PROJECT_DIR$/../node_modules/react-native/android/" />
23
- </remote-repository>
24
- <remote-repository>
25
- <option name="id" value="BintrayJCenter" />
26
- <option name="name" value="BintrayJCenter" />
27
- <option name="url" value="https://jcenter.bintray.com/" />
28
- </remote-repository>
29
- <remote-repository>
30
- <option name="id" value="Google" />
31
- <option name="name" value="Google" />
32
- <option name="url" value="https://dl.google.com/dl/android/maven2/" />
33
- </remote-repository>
34
- <remote-repository>
35
- <option name="id" value="MavenRepo" />
36
- <option name="name" value="MavenRepo" />
37
- <option name="url" value="https://repo.maven.apache.org/maven2/" />
38
- </remote-repository>
39
- <remote-repository>
40
- <option name="id" value="maven2" />
41
- <option name="name" value="maven2" />
42
- <option name="url" value="https://www.jitpack.io" />
43
- </remote-repository>
44
- </component>
45
- </project>
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.annotation:annotation:1.1.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8/annotation-1.1.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC>
7
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/408af38ec57369afe3fd6466e1c4bfdd5f15fc92/annotation-1.1.0-javadoc.jar!/" />
8
- </JAVADOC>
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/8b7bdc00eb4d998bfbc76767b098620990f2a805/annotation-1.1.0-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,24 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.appcompat:appcompat:1.0.2@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/30dee279fe279f2d8889b10c7a04442b/appcompat-1.0.2/annotations.zip!/" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cf0ce774afedddbfc813f566e3b2f9e/appcompat-1.0.2/annotations.zip!/" />
6
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/ec968be4d8af4539da789bc937baa773/transformed/appcompat-1.0.2/annotations.zip!/" />
7
- </ANNOTATIONS>
8
- <CLASSES>
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/30dee279fe279f2d8889b10c7a04442b/appcompat-1.0.2/res" />
10
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/30dee279fe279f2d8889b10c7a04442b/appcompat-1.0.2/AndroidManifest.xml" />
11
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/30dee279fe279f2d8889b10c7a04442b/appcompat-1.0.2/jars/classes.jar!/" />
12
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cf0ce774afedddbfc813f566e3b2f9e/appcompat-1.0.2/AndroidManifest.xml" />
13
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cf0ce774afedddbfc813f566e3b2f9e/appcompat-1.0.2/jars/classes.jar!/" />
14
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cf0ce774afedddbfc813f566e3b2f9e/appcompat-1.0.2/res" />
15
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/ec968be4d8af4539da789bc937baa773/transformed/appcompat-1.0.2/res" />
16
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/ec968be4d8af4539da789bc937baa773/transformed/appcompat-1.0.2/AndroidManifest.xml" />
17
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/ec968be4d8af4539da789bc937baa773/transformed/appcompat-1.0.2/jars/classes.jar!/" />
18
- </CLASSES>
19
- <JAVADOC />
20
- <SOURCES>
21
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat/1.0.2/e38e7c85994112b70d4548176128c72b8477c110/appcompat-1.0.2-sources.jar!/" />
22
- </SOURCES>
23
- </library>
24
- </component>
@@ -1,11 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.arch.core:core-common:2.0.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.0.0/bb21b9a11761451b51624ac428d1f1bb5deeac38/core-common-2.0.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC />
7
- <SOURCES>
8
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.0.0/645b95386a07be66eef0bfe7007535e3f95ec642/core-common-2.0.0-sources.jar!/" />
9
- </SOURCES>
10
- </library>
11
- </component>
@@ -1,19 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.arch.core:core-runtime:2.0.0@aar">
3
- <CLASSES>
4
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/78f42912b2b79c0e9bc7b7bca72757d0/core-runtime-2.0.0/res" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/13ac818f703169862a6eb4f8a2330236/core-runtime-2.0.0/jars/classes.jar!/" />
6
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/13ac818f703169862a6eb4f8a2330236/core-runtime-2.0.0/res" />
7
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/13ac818f703169862a6eb4f8a2330236/core-runtime-2.0.0/AndroidManifest.xml" />
8
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/78f42912b2b79c0e9bc7b7bca72757d0/core-runtime-2.0.0/jars/classes.jar!/" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/78f42912b2b79c0e9bc7b7bca72757d0/core-runtime-2.0.0/AndroidManifest.xml" />
10
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/6e19ee62ee7bec0aa47a6eabe7fd4401/transformed/core-runtime-2.0.0/AndroidManifest.xml" />
11
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/6e19ee62ee7bec0aa47a6eabe7fd4401/transformed/core-runtime-2.0.0/jars/classes.jar!/" />
12
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/6e19ee62ee7bec0aa47a6eabe7fd4401/transformed/core-runtime-2.0.0/res" />
13
- </CLASSES>
14
- <JAVADOC />
15
- <SOURCES>
16
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-runtime/2.0.0/bc41b287c95bc50a3cd27cb1b7cfb301805ba7f1/core-runtime-2.0.0-sources.jar!/" />
17
- </SOURCES>
18
- </library>
19
- </component>
@@ -1,19 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.asynclayoutinflater:asynclayoutinflater:1.0.0@aar">
3
- <CLASSES>
4
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/92b3d4046ab6891d427a7838ffeb8a61/asynclayoutinflater-1.0.0/res" />
5
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eac5b230b6bbcc2d98bf57d13b74d4a5/asynclayoutinflater-1.0.0/AndroidManifest.xml" />
6
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eac5b230b6bbcc2d98bf57d13b74d4a5/asynclayoutinflater-1.0.0/jars/classes.jar!/" />
7
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eac5b230b6bbcc2d98bf57d13b74d4a5/asynclayoutinflater-1.0.0/res" />
8
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/92b3d4046ab6891d427a7838ffeb8a61/asynclayoutinflater-1.0.0/jars/classes.jar!/" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/92b3d4046ab6891d427a7838ffeb8a61/asynclayoutinflater-1.0.0/AndroidManifest.xml" />
10
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/d7ffd34e61f3accce83d49ad9a3d5849/transformed/asynclayoutinflater-1.0.0/jars/classes.jar!/" />
11
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/d7ffd34e61f3accce83d49ad9a3d5849/transformed/asynclayoutinflater-1.0.0/res" />
12
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/d7ffd34e61f3accce83d49ad9a3d5849/transformed/asynclayoutinflater-1.0.0/AndroidManifest.xml" />
13
- </CLASSES>
14
- <JAVADOC />
15
- <SOURCES>
16
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.asynclayoutinflater/asynclayoutinflater/1.0.0/ac4d50701fce5c88dcc514f58e695cd32f05134c/asynclayoutinflater-1.0.0-sources.jar!/" />
17
- </SOURCES>
18
- </library>
19
- </component>
@@ -1,16 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.autofill:autofill:1.1.0@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/ba7f1e1d41431ea82c6536e2535d4c52/transformed/autofill-1.1.0/annotations.zip!/" />
5
- </ANNOTATIONS>
6
- <CLASSES>
7
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/ba7f1e1d41431ea82c6536e2535d4c52/transformed/autofill-1.1.0/jars/classes.jar!/" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/ba7f1e1d41431ea82c6536e2535d4c52/transformed/autofill-1.1.0/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/ba7f1e1d41431ea82c6536e2535d4c52/transformed/autofill-1.1.0/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES>
13
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.autofill/autofill/1.1.0/78bdbf14bb97d579bf191bc0de7e969027c4375/autofill-1.1.0-sources.jar!/" />
14
- </SOURCES>
15
- </library>
16
- </component>
@@ -1,11 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.collection:collection:1.0.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.0.0/42858b26cafdaa69b6149f45dfc2894007bc2c7a/collection-1.0.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC />
7
- <SOURCES>
8
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.0.0/b08973c283f1a0b29fce8b45a1e31e16a36611e9/collection-1.0.0-sources.jar!/" />
9
- </SOURCES>
10
- </library>
11
- </component>
@@ -1,24 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.coordinatorlayout:coordinatorlayout:1.0.0@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/23a2cfbeb83c3313f2cbc339f2dd0113/coordinatorlayout-1.0.0/annotations.zip!/" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3e18ae5ac183200cbb707fd9dc7feed7/coordinatorlayout-1.0.0/annotations.zip!/" />
6
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/1a9423218229a6c9c4777de22c40dfd0/transformed/coordinatorlayout-1.0.0/annotations.zip!/" />
7
- </ANNOTATIONS>
8
- <CLASSES>
9
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/23a2cfbeb83c3313f2cbc339f2dd0113/coordinatorlayout-1.0.0/jars/classes.jar!/" />
10
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/23a2cfbeb83c3313f2cbc339f2dd0113/coordinatorlayout-1.0.0/AndroidManifest.xml" />
11
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/23a2cfbeb83c3313f2cbc339f2dd0113/coordinatorlayout-1.0.0/res" />
12
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3e18ae5ac183200cbb707fd9dc7feed7/coordinatorlayout-1.0.0/AndroidManifest.xml" />
13
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3e18ae5ac183200cbb707fd9dc7feed7/coordinatorlayout-1.0.0/jars/classes.jar!/" />
14
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3e18ae5ac183200cbb707fd9dc7feed7/coordinatorlayout-1.0.0/res" />
15
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/1a9423218229a6c9c4777de22c40dfd0/transformed/coordinatorlayout-1.0.0/jars/classes.jar!/" />
16
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/1a9423218229a6c9c4777de22c40dfd0/transformed/coordinatorlayout-1.0.0/AndroidManifest.xml" />
17
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/1a9423218229a6c9c4777de22c40dfd0/transformed/coordinatorlayout-1.0.0/res" />
18
- </CLASSES>
19
- <JAVADOC />
20
- <SOURCES>
21
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.coordinatorlayout/coordinatorlayout/1.0.0/4325b3c4422ad58201ed8dc15ae56bda9accedf2/coordinatorlayout-1.0.0-sources.jar!/" />
22
- </SOURCES>
23
- </library>
24
- </component>
@@ -1,16 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.core:core:1.1.0@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/6e40dce63373ef151e6a8647e850b6c8/transformed/core-1.1.0/annotations.zip!/" />
5
- </ANNOTATIONS>
6
- <CLASSES>
7
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/6e40dce63373ef151e6a8647e850b6c8/transformed/core-1.1.0/jars/classes.jar!/" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/6e40dce63373ef151e6a8647e850b6c8/transformed/core-1.1.0/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/6e40dce63373ef151e6a8647e850b6c8/transformed/core-1.1.0/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES>
13
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.core/core/1.1.0/4ae37fad1fe95b42aa47a720908df37ba5d3c85e/core-1.1.0-sources.jar!/" />
14
- </SOURCES>
15
- </library>
16
- </component>