103 lines
4 KiB
Diff
103 lines
4 KiB
Diff
diff --git a/node_modules/react-native-file-viewer/android/src/main/java/com/vinzscam/reactnativefileviewer/RNFileViewerModule.java b/node_modules/react-native-file-viewer/android/src/main/java/com/vinzscam/reactnativefileviewer/RNFileViewerModule.java
|
|
index 11fd79f..92156a1 100644
|
|
--- a/node_modules/react-native-file-viewer/android/src/main/java/com/vinzscam/reactnativefileviewer/RNFileViewerModule.java
|
|
+++ b/node_modules/react-native-file-viewer/android/src/main/java/com/vinzscam/reactnativefileviewer/RNFileViewerModule.java
|
|
@@ -6,6 +6,8 @@ import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.net.Uri;
|
|
import androidx.core.content.FileProvider;
|
|
+
|
|
+import android.text.TextUtils;
|
|
import android.webkit.MimeTypeMap;
|
|
|
|
import com.facebook.react.bridge.ActivityEventListener;
|
|
@@ -41,6 +43,21 @@ public class RNFileViewerModule extends ReactContextBaseJavaModule {
|
|
reactContext.addActivityEventListener(mActivityEventListener);
|
|
}
|
|
|
|
+ private static String getExtension(String uri) {
|
|
+ if (uri == null) {
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ int dot = uri.lastIndexOf(".");
|
|
+ if (dot >= 0) {
|
|
+ // exclude the dot
|
|
+ return uri.substring(dot + 1);
|
|
+ } else {
|
|
+ // No extension.
|
|
+ return "";
|
|
+ }
|
|
+ }
|
|
+
|
|
@ReactMethod
|
|
public void open(String path, Integer currentId, ReadableMap options) {
|
|
Uri contentUri = null;
|
|
@@ -51,6 +68,7 @@ public class RNFileViewerModule extends ReactContextBaseJavaModule {
|
|
contentUri = Uri.parse(path);
|
|
} else {
|
|
File newFile = new File(path);
|
|
+
|
|
try {
|
|
final String packageName = getCurrentActivity().getPackageName();
|
|
final String authority = new StringBuilder(packageName).append(".provider").toString();
|
|
@@ -68,6 +86,9 @@ public class RNFileViewerModule extends ReactContextBaseJavaModule {
|
|
}
|
|
|
|
String extension = MimeTypeMap.getFileExtensionFromUrl(path).toLowerCase();
|
|
+ if (TextUtils.isEmpty(extension)) {
|
|
+ extension = getExtension(path);
|
|
+ }
|
|
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
|
|
|
|
Intent shareIntent = new Intent();
|
|
@@ -84,9 +105,9 @@ public class RNFileViewerModule extends ReactContextBaseJavaModule {
|
|
intentActivity = shareIntent;
|
|
}
|
|
|
|
- PackageManager pm = getCurrentActivity().getPackageManager();
|
|
-
|
|
- if (shareIntent.resolveActivity(pm) != null) {
|
|
+// PackageManager pm = getCurrentActivity().getPackageManager();
|
|
+//
|
|
+// if (shareIntent.resolveActivity(pm) != null) {
|
|
try {
|
|
getCurrentActivity().startActivityForResult(intentActivity, currentId + RN_FILE_VIEWER_REQUEST);
|
|
sendEvent(OPEN_EVENT, currentId, null);
|
|
@@ -94,21 +115,21 @@ public class RNFileViewerModule extends ReactContextBaseJavaModule {
|
|
catch(Exception e) {
|
|
sendEvent(OPEN_EVENT, currentId, e.getMessage());
|
|
}
|
|
- } else {
|
|
- try {
|
|
- if (showStoreSuggestions) {
|
|
- if(mimeType == null) {
|
|
- throw new Exception("It wasn't possible to detect the type of the file");
|
|
- }
|
|
- Intent storeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=" + mimeType + "&c=apps"));
|
|
- getCurrentActivity().startActivity(storeIntent);
|
|
- }
|
|
- throw new Exception("No app associated with this mime type");
|
|
- }
|
|
- catch(Exception e) {
|
|
- sendEvent(OPEN_EVENT, currentId, e.getMessage());
|
|
- }
|
|
- }
|
|
+// } else {
|
|
+// try {
|
|
+// if (showStoreSuggestions) {
|
|
+// if(mimeType == null) {
|
|
+// throw new Exception("It wasn't possible to detect the type of the file");
|
|
+// }
|
|
+// Intent storeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=" + mimeType + "&c=apps"));
|
|
+// getCurrentActivity().startActivity(storeIntent);
|
|
+// }
|
|
+// throw new Exception("No app associated with this mime type");
|
|
+// }
|
|
+// catch(Exception e) {
|
|
+// sendEvent(OPEN_EVENT, currentId, e.getMessage());
|
|
+// }
|
|
+// }
|
|
}
|
|
|
|
@Override
|