react-native-kookit 0.4.5 → 0.4.7

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.
@@ -1553,10 +1553,7 @@ public class ReactNativeKookitModule: Module {
1553
1553
  DispatchQueue.global(qos: .userInitiated).async {
1554
1554
  do {
1555
1555
  // Parse source URL
1556
- guard let sourceURL = URL(string: sourceUri) ?? URL(fileURLWithPath: sourceUri.replacingOccurrences(of: "file://", with: "")) else {
1557
- promise.reject("COPY_ERROR", "Invalid source URI: \(sourceUri)")
1558
- return
1559
- }
1556
+ let sourceURL = URL(string: sourceUri) ?? URL(fileURLWithPath: sourceUri.replacingOccurrences(of: "file://", with: ""))
1560
1557
 
1561
1558
  let destURL = URL(fileURLWithPath: destinationPath.replacingOccurrences(of: "file://", with: ""))
1562
1559
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-kookit",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "React Native module for intercepting volume button presses on iOS and Android, with FTP client functionality",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"withContentUriCopy.d.ts","sourceRoot":"","sources":["../src/withContentUriCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,QAAA,MAAM,kBAAkB,EAAE,YAKzB,CAAC;AA4QF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"withContentUriCopy.d.ts","sourceRoot":"","sources":["../src/withContentUriCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,QAAA,MAAM,kBAAkB,EAAE,YAKzB,CAAC;AAwTF,eAAe,kBAAkB,CAAC"}
@@ -36,7 +36,9 @@ function addContentUriCopyKotlin(contents) {
36
36
  }
37
37
  const imports = [
38
38
  "import android.content.Intent",
39
+ "import android.database.Cursor",
39
40
  "import android.net.Uri",
41
+ "import android.provider.OpenableColumns",
40
42
  "import android.util.Log",
41
43
  "import java.io.File",
42
44
  "import java.io.FileOutputStream",
@@ -96,9 +98,25 @@ function addContentUriCopyKotlin(contents) {
96
98
  val tempDir = File(cacheDir, "temp")
97
99
  if (!tempDir.exists()) tempDir.mkdirs()
98
100
 
99
- val rawName = uri.lastPathSegment
100
- ?.substringAfterLast('/')
101
- ?.substringAfterLast('%')
101
+ // Query ContentResolver for the real display name (handles systems like
102
+ // vivo OriginOS where uri.lastPathSegment is a bare numeric ID with no extension)
103
+ var displayName: String? = null
104
+ try {
105
+ val cursor: Cursor? = contentResolver.query(
106
+ uri, arrayOf(OpenableColumns.DISPLAY_NAME), null, null, null
107
+ )
108
+ cursor?.use {
109
+ if (it.moveToFirst()) {
110
+ val idx = it.getColumnIndex(OpenableColumns.DISPLAY_NAME)
111
+ if (idx != -1) displayName = it.getString(idx)
112
+ }
113
+ }
114
+ } catch (_: Exception) {}
115
+
116
+ val rawName = displayName
117
+ ?: uri.lastPathSegment
118
+ ?.substringAfterLast('/')
119
+ ?.substringAfterLast('%')
102
120
  ?: "imported_file_\${System.currentTimeMillis()}"
103
121
 
104
122
  val safeName = rawName.replace(Regex("[\\\\/:*?\\u0022<>|]"), "_")
@@ -145,7 +163,9 @@ function addContentUriCopyJava(contents) {
145
163
  }
146
164
  const imports = [
147
165
  "import android.content.Intent;",
166
+ "import android.database.Cursor;",
148
167
  "import android.net.Uri;",
168
+ "import android.provider.OpenableColumns;",
149
169
  "import android.util.Log;",
150
170
  "import java.io.File;",
151
171
  "import java.io.FileOutputStream;",
@@ -208,11 +228,35 @@ function addContentUriCopyJava(contents) {
208
228
  File tempDir = new File(getCacheDir(), "temp");
209
229
  if (!tempDir.exists()) tempDir.mkdirs();
210
230
 
211
- String lastSegment = uri.getLastPathSegment();
212
- String rawName = (lastSegment != null && !lastSegment.isEmpty())
213
- ? lastSegment.substring(lastSegment.lastIndexOf('/') + 1)
214
- : "imported_file_" + System.currentTimeMillis();
215
- if (rawName.isEmpty()) rawName = "imported_file_" + System.currentTimeMillis();
231
+ // Query ContentResolver for the real display name (handles systems like
232
+ // vivo OriginOS where uri.getLastPathSegment() is a bare numeric ID with no extension)
233
+ String displayName = null;
234
+ try {
235
+ Cursor cursor = getContentResolver().query(
236
+ uri, new String[]{OpenableColumns.DISPLAY_NAME}, null, null, null
237
+ );
238
+ if (cursor != null) {
239
+ try {
240
+ if (cursor.moveToFirst()) {
241
+ int idx = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
242
+ if (idx != -1) displayName = cursor.getString(idx);
243
+ }
244
+ } finally {
245
+ cursor.close();
246
+ }
247
+ }
248
+ } catch (Exception ignored) {}
249
+
250
+ String rawName;
251
+ if (displayName != null && !displayName.isEmpty()) {
252
+ rawName = displayName;
253
+ } else {
254
+ String lastSegment = uri.getLastPathSegment();
255
+ rawName = (lastSegment != null && !lastSegment.isEmpty())
256
+ ? lastSegment.substring(lastSegment.lastIndexOf('/') + 1)
257
+ : "imported_file_" + System.currentTimeMillis();
258
+ if (rawName.isEmpty()) rawName = "imported_file_" + System.currentTimeMillis();
259
+ }
216
260
  String safeName = rawName.replaceAll("[\\\\/:\\*?\"<>|]", "_");
217
261
  if (safeName.isEmpty()) safeName = "imported_file_" + System.currentTimeMillis();
218
262
 
@@ -1 +1 @@
1
- {"version":3,"file":"withContentUriCopy.js","sourceRoot":"","sources":["../src/withContentUriCopy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withContentUriCopy.js","sourceRoot":"","sources":["../src/withContentUriCopy.ts"],"names":[],"mappings":"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"}