xref: /aosp_15_r20/external/cronet/base/android/content_uri_utils.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2013 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef BASE_ANDROID_CONTENT_URI_UTILS_H_
6 #define BASE_ANDROID_CONTENT_URI_UTILS_H_
7 
8 #include <jni.h>
9 #include <string>
10 
11 #include "base/base_export.h"
12 #include "base/files/file.h"
13 #include "base/files/file_path.h"
14 
15 namespace base {
16 
17 // Opens a content URI for read and returns the file descriptor to the caller.
18 // Returns -1 if the URI is invalid.
19 BASE_EXPORT File OpenContentUriForRead(const FilePath& content_uri);
20 
21 // Check whether a content URI exists.
22 BASE_EXPORT bool ContentUriExists(const FilePath& content_uri);
23 
24 // Gets MIME type from a content URI. Returns an empty string if the URI is
25 // invalid.
26 BASE_EXPORT std::string GetContentUriMimeType(const FilePath& content_uri);
27 
28 // Gets the display name from a content URI. Returns true if the name was found.
29 BASE_EXPORT bool MaybeGetFileDisplayName(const FilePath& content_uri,
30                                          std::u16string* file_display_name);
31 
32 // Deletes a content URI.
33 BASE_EXPORT bool DeleteContentUri(const FilePath& content_uri);
34 
35 // Gets content URI's file path (eg: "content://org.chromium...") from normal
36 // file path (eg: "/data/user/0/...").
37 BASE_EXPORT FilePath GetContentUriFromFilePath(const FilePath& file_path);
38 
39 }  // namespace base
40 
41 #endif  // BASE_ANDROID_CONTENT_URI_UTILS_H_
42