Revert "Fix exposing private messages files through attachments with a content URI."
This reverts commit 0d5452146c58aa9b938daffc88f8b03eb9aee58b.
Fix the Gif problem when we use an external keyboard, like Gboard
12-28 18:55:37.333 6995 6995 E MessagingApp: Assert.fail() called: Cannot send private file content://com.google.android.inputmethod.latin.fileprovider/content/tenor_gif/tenor_gif1485318298145763703.gif
12-28 18:55:37.333 6995 6995 E MessagingApp: at com.android.messaging.ui.conversationlist.ShareIntentActivity.addSharedPartToDraft(Unknown Source:24)
Change-Id: I74eaa4b20f734d1ba9c1abd4ea7e215be72bfbfe
diff --git a/src/com/android/messaging/util/FileUtil.java b/src/com/android/messaging/util/FileUtil.java
index e7d86f2..71fbb4b 100644
--- a/src/com/android/messaging/util/FileUtil.java
+++ b/src/com/android/messaging/util/FileUtil.java
@@ -20,7 +20,6 @@
import android.content.Context;
import android.net.Uri;
import android.os.Environment;
-import android.os.ParcelFileDescriptor;
import android.text.TextUtils;
import com.android.messaging.Factory;
@@ -29,8 +28,6 @@
import java.io.File;
import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
@@ -124,10 +121,6 @@
// We're told it's possible to create world readable hardlinks to other apps private data
// so we ban all /data file uris.
public static boolean isInPrivateDir(Uri uri) {
- return isFileUriInPrivateDir(uri) || isContentUriInPrivateDir(uri);
- }
-
- private static boolean isFileUriInPrivateDir(Uri uri) {
if (!UriUtil.isFileUri(uri)) {
return false;
}
@@ -135,24 +128,6 @@
return FileUtil.isSameOrSubDirectory(Environment.getDataDirectory(), file);
}
- private static boolean isContentUriInPrivateDir(Uri uri) {
- if (!uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
- return false;
- }
- try {
- Context context = Factory.get().getApplicationContext();
- ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r");
- int fd = pfd.getFd();
- // Use the file descriptor to find out the read file path through symbolic link.
- Path fdPath = Paths.get("/proc/self/fd/" + fd);
- Path filePath = java.nio.file.Files.readSymbolicLink(fdPath);
- pfd.close();
- return FileUtil.isSameOrSubDirectory(Environment.getDataDirectory(), filePath.toFile());
- } catch (Exception e) {
- return false;
- }
- }
-
/**
* Checks, whether the child directory is the same as, or a sub-directory of the base
* directory.