1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/android/path_utils.h"
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h"
9 #include "base/android/scoped_java_ref.h"
10 #include "base/files/file_path.h"
12 #include "jni/PathUtils_jni.h"
17 bool GetDataDirectory(FilePath
* result
) {
18 JNIEnv
* env
= AttachCurrentThread();
19 ScopedJavaLocalRef
<jstring
> path
=
20 Java_PathUtils_getDataDirectory(env
, GetApplicationContext());
21 FilePath
data_path(ConvertJavaStringToUTF8(path
));
26 bool GetDatabaseDirectory(FilePath
* result
) {
27 JNIEnv
* env
= AttachCurrentThread();
28 ScopedJavaLocalRef
<jstring
> path
=
29 Java_PathUtils_getDatabaseDirectory(env
, GetApplicationContext());
30 FilePath
data_path(ConvertJavaStringToUTF8(path
));
35 bool GetCacheDirectory(FilePath
* result
) {
36 JNIEnv
* env
= AttachCurrentThread();
37 ScopedJavaLocalRef
<jstring
> path
=
38 Java_PathUtils_getCacheDirectory(env
, GetApplicationContext());
39 FilePath
cache_path(ConvertJavaStringToUTF8(path
));
44 bool GetThumbnailCacheDirectory(FilePath
* result
) {
45 JNIEnv
* env
= AttachCurrentThread();
46 ScopedJavaLocalRef
<jstring
> path
=
47 Java_PathUtils_getThumbnailCacheDirectoryPath(env
,
48 GetApplicationContext());
49 FilePath
thumbnail_cache_path(ConvertJavaStringToUTF8(path
));
50 *result
= thumbnail_cache_path
;
54 bool GetDownloadsDirectory(FilePath
* result
) {
55 JNIEnv
* env
= AttachCurrentThread();
56 ScopedJavaLocalRef
<jstring
> path
=
57 Java_PathUtils_getDownloadsDirectory(env
, GetApplicationContext());
58 FilePath
downloads_path(ConvertJavaStringToUTF8(path
));
59 *result
= downloads_path
;
63 bool GetNativeLibraryDirectory(FilePath
* result
) {
64 JNIEnv
* env
= AttachCurrentThread();
65 ScopedJavaLocalRef
<jstring
> path
=
66 Java_PathUtils_getNativeLibraryDirectory(env
, GetApplicationContext());
67 FilePath
library_path(ConvertJavaStringToUTF8(path
));
68 *result
= library_path
;
72 bool GetExternalStorageDirectory(FilePath
* result
) {
73 JNIEnv
* env
= AttachCurrentThread();
74 ScopedJavaLocalRef
<jstring
> path
=
75 Java_PathUtils_getExternalStorageDirectory(env
);
76 FilePath
storage_path(ConvertJavaStringToUTF8(path
));
77 *result
= storage_path
;
81 bool RegisterPathUtils(JNIEnv
* env
) {
82 return RegisterNativesImpl(env
);
85 } // namespace android