| 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( |
| 308 ConvertJavaStringToUTF8(env, 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 |