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 GetDownloadsDirectory(FilePath
* result
) {
45 JNIEnv
* env
= AttachCurrentThread();
46 ScopedJavaLocalRef
<jstring
> path
=
47 Java_PathUtils_getDownloadsDirectory(env
, GetApplicationContext());
48 FilePath
downloads_path(ConvertJavaStringToUTF8(path
));
49 *result
= downloads_path
;
53 bool GetNativeLibraryDirectory(FilePath
* result
) {
54 JNIEnv
* env
= AttachCurrentThread();
55 ScopedJavaLocalRef
<jstring
> path
=
56 Java_PathUtils_getNativeLibraryDirectory(env
, GetApplicationContext());
57 FilePath
library_path(ConvertJavaStringToUTF8(path
));
58 *result
= library_path
;
62 bool GetExternalStorageDirectory(FilePath
* result
) {
63 JNIEnv
* env
= AttachCurrentThread();
64 ScopedJavaLocalRef
<jstring
> path
=
65 Java_PathUtils_getExternalStorageDirectory(env
);
66 FilePath
storage_path(ConvertJavaStringToUTF8(path
));
67 *result
= storage_path
;
71 bool RegisterPathUtils(JNIEnv
* env
) {
72 return RegisterNativesImpl(env
);
75 } // namespace android