OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/variations/android/variations_seed_bridge.h" | 5 #include "components/variations/android/variations_seed_bridge.h" |
6 | 6 |
7 #include <jni.h> | 7 #include <jni.h> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
11 #include "base/android/jni_array.h" | 11 #include "base/android/jni_array.h" |
12 #include "base/android/jni_string.h" | 12 #include "base/android/jni_string.h" |
13 #include "base/android/jni_weak_ref.h" | 13 #include "base/android/jni_weak_ref.h" |
14 #include "jni/VariationsSeedBridge_jni.h" | 14 #include "jni/VariationsSeedBridge_jni.h" |
15 | 15 |
16 using base::android::AttachCurrentThread; | 16 using base::android::AttachCurrentThread; |
17 using base::android::ConvertJavaStringToUTF8; | 17 using base::android::ConvertJavaStringToUTF8; |
| 18 using base::android::ConvertUTF8ToJavaString; |
18 using base::android::GetApplicationContext; | 19 using base::android::GetApplicationContext; |
19 using base::android::ScopedJavaLocalRef; | 20 using base::android::ScopedJavaLocalRef; |
20 | 21 |
21 namespace { | 22 namespace { |
22 | 23 |
23 std::string JavaByteArrayToString(JNIEnv* env, jbyteArray byte_array) { | 24 std::string JavaByteArrayToString(JNIEnv* env, jbyteArray byte_array) { |
24 if (!byte_array) | 25 if (!byte_array) |
25 return std::string(); | 26 return std::string(); |
26 std::vector<uint8> array_data; | 27 std::vector<uint8> array_data; |
27 base::android::JavaByteArrayToByteVector(env, byte_array, &array_data); | 28 base::android::JavaByteArrayToByteVector(env, byte_array, &array_data); |
28 return std::string(array_data.begin(), array_data.end()); | 29 return std::string(array_data.begin(), array_data.end()); |
29 } | 30 } |
30 | 31 |
| 32 ScopedJavaLocalRef<jbyteArray> StringToJavaByteArray( |
| 33 JNIEnv* env, |
| 34 const std::string& str_data) { |
| 35 std::vector<uint8> array_data(str_data.begin(), str_data.end()); |
| 36 return base::android::ToJavaByteArray(env, array_data); |
| 37 } |
| 38 |
31 } // namespace | 39 } // namespace |
32 | 40 |
33 namespace variations { | 41 namespace variations { |
34 namespace android { | 42 namespace android { |
35 | 43 |
36 bool RegisterVariationsSeedBridge(JNIEnv* env) { | 44 bool RegisterVariationsSeedBridge(JNIEnv* env) { |
37 return RegisterNativesImpl(env); | 45 return RegisterNativesImpl(env); |
38 } | 46 } |
39 | 47 |
40 void GetVariationsFirstRunSeed(std::string* seed_data, | 48 void GetVariationsFirstRunSeed(std::string* seed_data, |
(...skipping 28 matching lines...) Expand all Loading... |
69 JNIEnv* env = AttachCurrentThread(); | 77 JNIEnv* env = AttachCurrentThread(); |
70 Java_VariationsSeedBridge_clearFirstRunPrefs(env, GetApplicationContext()); | 78 Java_VariationsSeedBridge_clearFirstRunPrefs(env, GetApplicationContext()); |
71 } | 79 } |
72 | 80 |
73 void MarkVariationsSeedAsStored() { | 81 void MarkVariationsSeedAsStored() { |
74 JNIEnv* env = AttachCurrentThread(); | 82 JNIEnv* env = AttachCurrentThread(); |
75 Java_VariationsSeedBridge_markVariationsSeedAsStored(env, | 83 Java_VariationsSeedBridge_markVariationsSeedAsStored(env, |
76 GetApplicationContext()); | 84 GetApplicationContext()); |
77 } | 85 } |
78 | 86 |
| 87 void SetJavaFirstRunPrefsForTesting(const std::string& seed_data, |
| 88 const std::string& seed_signature, |
| 89 const std::string& seed_country, |
| 90 const std::string& response_date, |
| 91 bool is_gzip_compressed) { |
| 92 JNIEnv* env = AttachCurrentThread(); |
| 93 Java_VariationsSeedBridge_setVariationsFirstRunSeed( |
| 94 env, GetApplicationContext(), StringToJavaByteArray(env, seed_data).obj(), |
| 95 ConvertUTF8ToJavaString(env, seed_signature).obj(), |
| 96 ConvertUTF8ToJavaString(env, seed_country).obj(), |
| 97 ConvertUTF8ToJavaString(env, response_date).obj(), |
| 98 static_cast<jboolean>(is_gzip_compressed)); |
| 99 } |
| 100 |
79 } // namespace android | 101 } // namespace android |
80 } // namespace variations | 102 } // namespace variations |
OLD | NEW |