OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/autofill/android/personal_data_manager_android.h" | 5 #include "chrome/browser/autofill/android/personal_data_manager_android.h" |
6 | 6 |
7 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/format_macros.h" | 10 #include "base/format_macros.h" |
(...skipping 28 matching lines...) Expand all Loading... | |
39 } | 39 } |
40 | 40 |
41 PrefService* GetPrefs() { | 41 PrefService* GetPrefs() { |
42 return GetProfile()->GetPrefs(); | 42 return GetProfile()->GetPrefs(); |
43 } | 43 } |
44 | 44 |
45 ScopedJavaLocalRef<jobject> CreateJavaProfileFromNative( | 45 ScopedJavaLocalRef<jobject> CreateJavaProfileFromNative( |
46 JNIEnv* env, | 46 JNIEnv* env, |
47 const AutofillProfile& profile) { | 47 const AutofillProfile& profile) { |
48 return Java_AutofillProfile_create( | 48 return Java_AutofillProfile_create( |
49 env, | 49 env, ConvertUTF8ToJavaString(env, profile.guid()).obj(), |
50 ConvertUTF8ToJavaString(env, profile.guid()).obj(), | |
51 ConvertUTF8ToJavaString(env, profile.origin()).obj(), | 50 ConvertUTF8ToJavaString(env, profile.origin()).obj(), |
51 profile.record_type() == AutofillProfile::LOCAL_PROFILE, | |
52 ConvertUTF16ToJavaString(env, profile.GetRawInfo(NAME_FULL)).obj(), | 52 ConvertUTF16ToJavaString(env, profile.GetRawInfo(NAME_FULL)).obj(), |
53 ConvertUTF16ToJavaString(env, profile.GetRawInfo(COMPANY_NAME)).obj(), | 53 ConvertUTF16ToJavaString(env, profile.GetRawInfo(COMPANY_NAME)).obj(), |
54 ConvertUTF16ToJavaString( | 54 ConvertUTF16ToJavaString( |
55 env, profile.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)).obj(), | 55 env, profile.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)).obj(), |
56 ConvertUTF16ToJavaString(env, profile.GetRawInfo(ADDRESS_HOME_STATE)) | 56 ConvertUTF16ToJavaString(env, profile.GetRawInfo(ADDRESS_HOME_STATE)) |
57 .obj(), | 57 .obj(), |
58 ConvertUTF16ToJavaString(env, profile.GetRawInfo(ADDRESS_HOME_CITY)) | 58 ConvertUTF16ToJavaString(env, profile.GetRawInfo(ADDRESS_HOME_CITY)) |
59 .obj(), | 59 .obj(), |
60 ConvertUTF16ToJavaString( | 60 ConvertUTF16ToJavaString( |
61 env, profile.GetRawInfo(ADDRESS_HOME_DEPENDENT_LOCALITY)).obj(), | 61 env, profile.GetRawInfo(ADDRESS_HOME_DEPENDENT_LOCALITY)).obj(), |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
133 g_browser_process->GetApplicationLocale()); | 133 g_browser_process->GetApplicationLocale()); |
134 profile->set_language_code( | 134 profile->set_language_code( |
135 ConvertJavaStringToUTF8( | 135 ConvertJavaStringToUTF8( |
136 Java_AutofillProfile_getLanguageCode(env, jprofile))); | 136 Java_AutofillProfile_getLanguageCode(env, jprofile))); |
137 } | 137 } |
138 | 138 |
139 ScopedJavaLocalRef<jobject> CreateJavaCreditCardFromNative( | 139 ScopedJavaLocalRef<jobject> CreateJavaCreditCardFromNative( |
140 JNIEnv* env, | 140 JNIEnv* env, |
141 const CreditCard& card) { | 141 const CreditCard& card) { |
142 return Java_CreditCard_create( | 142 return Java_CreditCard_create( |
143 env, | 143 env, ConvertUTF8ToJavaString(env, card.guid()).obj(), |
144 ConvertUTF8ToJavaString(env, card.guid()).obj(), | |
145 ConvertUTF8ToJavaString(env, card.origin()).obj(), | 144 ConvertUTF8ToJavaString(env, card.origin()).obj(), |
145 card.record_type() == CreditCard::LOCAL_CARD, | |
146 card.record_type() == CreditCard::FULL_SERVER_CARD, | |
146 ConvertUTF16ToJavaString(env, card.GetRawInfo(CREDIT_CARD_NAME)).obj(), | 147 ConvertUTF16ToJavaString(env, card.GetRawInfo(CREDIT_CARD_NAME)).obj(), |
147 ConvertUTF16ToJavaString(env, card.GetRawInfo(CREDIT_CARD_NUMBER)).obj(), | 148 ConvertUTF16ToJavaString(env, card.GetRawInfo(CREDIT_CARD_NUMBER)).obj(), |
148 ConvertUTF16ToJavaString(env, card.TypeAndLastFourDigits()).obj(), | 149 ConvertUTF16ToJavaString(env, card.TypeAndLastFourDigits()).obj(), |
150 ConvertUTF16ToJavaString(env, card.GetRawInfo(CREDIT_CARD_EXP_MONTH)) | |
151 .obj(), | |
149 ConvertUTF16ToJavaString( | 152 ConvertUTF16ToJavaString( |
150 env, | 153 env, card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)).obj()); |
151 card.GetRawInfo(CREDIT_CARD_EXP_MONTH)).obj(), | |
152 ConvertUTF16ToJavaString( | |
153 env, | |
154 card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)).obj()); | |
155 } | 154 } |
156 | 155 |
157 void PopulateNativeCreditCardFromJava( | 156 void PopulateNativeCreditCardFromJava( |
158 const jobject& jcard, | 157 const jobject& jcard, |
159 JNIEnv* env, | 158 JNIEnv* env, |
160 CreditCard* card) { | 159 CreditCard* card) { |
161 card->set_origin( | 160 card->set_origin( |
162 ConvertJavaStringToUTF8(Java_CreditCard_getOrigin(env, jcard))); | 161 ConvertJavaStringToUTF8(Java_CreditCard_getOrigin(env, jcard))); |
163 card->SetRawInfo( | 162 card->SetRawInfo( |
164 CREDIT_CARD_NAME, | 163 CREDIT_CARD_NAME, |
(...skipping 18 matching lines...) Expand all Loading... | |
183 ProfileManager::GetActiveUserProfile())) { | 182 ProfileManager::GetActiveUserProfile())) { |
184 personal_data_manager_->AddObserver(this); | 183 personal_data_manager_->AddObserver(this); |
185 } | 184 } |
186 | 185 |
187 PersonalDataManagerAndroid::~PersonalDataManagerAndroid() { | 186 PersonalDataManagerAndroid::~PersonalDataManagerAndroid() { |
188 personal_data_manager_->RemoveObserver(this); | 187 personal_data_manager_->RemoveObserver(this); |
189 } | 188 } |
190 | 189 |
191 jint PersonalDataManagerAndroid::GetProfileCount(JNIEnv* unused_env, | 190 jint PersonalDataManagerAndroid::GetProfileCount(JNIEnv* unused_env, |
192 jobject unused_obj) { | 191 jobject unused_obj) { |
193 return personal_data_manager_->web_profiles().size(); | 192 return personal_data_manager_->GetProfiles().size(); |
194 } | 193 } |
195 | 194 |
196 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByIndex( | 195 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByIndex( |
197 JNIEnv* env, | 196 JNIEnv* env, |
198 jobject unused_obj, | 197 jobject unused_obj, |
199 jint index) { | 198 jint index) { |
200 const std::vector<AutofillProfile*>& profiles = | 199 const std::vector<AutofillProfile*>& profiles = |
201 personal_data_manager_->web_profiles(); | 200 personal_data_manager_->GetProfiles(); |
202 size_t index_size_t = static_cast<size_t>(index); | 201 size_t index_size_t = static_cast<size_t>(index); |
203 DCHECK_LT(index_size_t, profiles.size()); | 202 DCHECK_LT(index_size_t, profiles.size()); |
204 return CreateJavaProfileFromNative(env, *profiles[index_size_t]); | 203 return CreateJavaProfileFromNative(env, *profiles[index_size_t]); |
205 } | 204 } |
206 | 205 |
207 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByGUID( | 206 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByGUID( |
208 JNIEnv* env, | 207 JNIEnv* env, |
209 jobject unused_obj, | 208 jobject unused_obj, |
210 jstring jguid) { | 209 jstring jguid) { |
211 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | 210 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
(...skipping 23 matching lines...) Expand all Loading... | |
235 } | 234 } |
236 | 235 |
237 return ConvertUTF8ToJavaString(env, profile.guid()); | 236 return ConvertUTF8ToJavaString(env, profile.guid()); |
238 } | 237 } |
239 | 238 |
240 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( | 239 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( |
241 JNIEnv* env, | 240 JNIEnv* env, |
242 jobject unused_obj) { | 241 jobject unused_obj) { |
243 std::vector<base::string16> labels; | 242 std::vector<base::string16> labels; |
244 AutofillProfile::CreateInferredLabels( | 243 AutofillProfile::CreateInferredLabels( |
245 personal_data_manager_->web_profiles(), | 244 personal_data_manager_->GetProfiles(), NULL, NAME_FULL, 2, |
246 NULL, | 245 g_browser_process->GetApplicationLocale(), &labels); |
247 NAME_FULL, | |
248 2, | |
249 g_browser_process->GetApplicationLocale(), | |
250 &labels); | |
251 | 246 |
252 return base::android::ToJavaArrayOfStrings(env, labels); | 247 return base::android::ToJavaArrayOfStrings(env, labels); |
253 } | 248 } |
254 | 249 |
255 jint PersonalDataManagerAndroid::GetCreditCardCount(JNIEnv* unused_env, | 250 jint PersonalDataManagerAndroid::GetCreditCardCount(JNIEnv* unused_env, |
256 jobject unused_obj) { | 251 jobject unused_obj) { |
257 return personal_data_manager_->GetLocalCreditCards().size(); | 252 return personal_data_manager_->GetCreditCards().size(); |
258 } | 253 } |
259 | 254 |
260 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByIndex( | 255 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByIndex( |
261 JNIEnv* env, | 256 JNIEnv* env, |
262 jobject unused_obj, | 257 jobject unused_obj, |
263 jint index) { | 258 jint index) { |
264 const std::vector<CreditCard*>& credit_cards = | 259 const std::vector<CreditCard*>& credit_cards = |
265 personal_data_manager_->GetLocalCreditCards(); | 260 personal_data_manager_->GetCreditCards(); |
266 size_t index_size_t = static_cast<size_t>(index); | 261 size_t index_size_t = static_cast<size_t>(index); |
267 DCHECK_LT(index_size_t, credit_cards.size()); | 262 DCHECK_LT(index_size_t, credit_cards.size()); |
268 return CreateJavaCreditCardFromNative(env, *credit_cards[index_size_t]); | 263 return CreateJavaCreditCardFromNative(env, *credit_cards[index_size_t]); |
269 } | 264 } |
270 | 265 |
271 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByGUID( | 266 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByGUID( |
272 JNIEnv* env, | 267 JNIEnv* env, |
273 jobject unused_obj, | 268 jobject unused_obj, |
274 jstring jguid) { | 269 jstring jguid) { |
275 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | 270 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
(...skipping 24 matching lines...) Expand all Loading... | |
300 return ConvertUTF8ToJavaString(env, card.guid()); | 295 return ConvertUTF8ToJavaString(env, card.guid()); |
301 } | 296 } |
302 | 297 |
303 void PersonalDataManagerAndroid::RemoveByGUID(JNIEnv* env, | 298 void PersonalDataManagerAndroid::RemoveByGUID(JNIEnv* env, |
304 jobject unused_obj, | 299 jobject unused_obj, |
305 jstring jguid) { | 300 jstring jguid) { |
306 personal_data_manager_->RemoveByGUID(ConvertJavaStringToUTF8(env, jguid)); | 301 personal_data_manager_->RemoveByGUID(ConvertJavaStringToUTF8(env, jguid)); |
307 } | 302 } |
308 | 303 |
309 void PersonalDataManagerAndroid::ClearUnmaskedCache(JNIEnv* env, | 304 void PersonalDataManagerAndroid::ClearUnmaskedCache(JNIEnv* env, |
310 jobject unused_obj) { | 305 jobject unused_obj, |
311 personal_data_manager_->ResetFullServerCards(); | 306 jstring guid) { |
307 // personal_data_manager_->ResetFullServerCard(ConvertJavaStringToUTF8(env, | |
newt (away)
2015/03/18 04:31:45
TODO?
Evan Stade
2015/03/19 00:24:23
I have no recollection of commenting this out
| |
308 // guid)); | |
312 } | 309 } |
313 | 310 |
314 void PersonalDataManagerAndroid::OnPersonalDataChanged() { | 311 void PersonalDataManagerAndroid::OnPersonalDataChanged() { |
315 JNIEnv* env = base::android::AttachCurrentThread(); | 312 JNIEnv* env = base::android::AttachCurrentThread(); |
316 if (weak_java_obj_.get(env).is_null()) | 313 if (weak_java_obj_.get(env).is_null()) |
317 return; | 314 return; |
318 | 315 |
319 Java_PersonalDataManager_personalDataChanged(env, | 316 Java_PersonalDataManager_personalDataChanged(env, |
320 weak_java_obj_.get(env).obj()); | 317 weak_java_obj_.get(env).obj()); |
321 } | 318 } |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
371 g_browser_process->GetApplicationLocale())).Release(); | 368 g_browser_process->GetApplicationLocale())).Release(); |
372 } | 369 } |
373 | 370 |
374 static jlong Init(JNIEnv* env, jobject obj) { | 371 static jlong Init(JNIEnv* env, jobject obj) { |
375 PersonalDataManagerAndroid* personal_data_manager_android = | 372 PersonalDataManagerAndroid* personal_data_manager_android = |
376 new PersonalDataManagerAndroid(env, obj); | 373 new PersonalDataManagerAndroid(env, obj); |
377 return reinterpret_cast<intptr_t>(personal_data_manager_android); | 374 return reinterpret_cast<intptr_t>(personal_data_manager_android); |
378 } | 375 } |
379 | 376 |
380 } // namespace autofill | 377 } // namespace autofill |
OLD | NEW |