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 <stddef.h> | 7 #include <stddef.h> |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
485 | 485 |
486 Java_PersonalDataManager_personalDataChanged(env, | 486 Java_PersonalDataManager_personalDataChanged(env, |
487 weak_java_obj_.get(env).obj()); | 487 weak_java_obj_.get(env).obj()); |
488 } | 488 } |
489 | 489 |
490 // static | 490 // static |
491 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { | 491 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { |
492 return RegisterNativesImpl(env); | 492 return RegisterNativesImpl(env); |
493 } | 493 } |
494 | 494 |
495 void PersonalDataManagerAndroid::RecordAndLogProfileUse( | |
496 JNIEnv* env, | |
497 const JavaParamRef<jobject>& unused_obj, | |
498 const JavaParamRef<jstring>& jguid) { | |
499 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | |
500 ConvertJavaStringToUTF8(env, jguid)); | |
501 if (profile) | |
Bernhard Bauer
2016/07/14 10:14:19
You have a lot of null checks in here. I didn't lo
sebsg
2016/07/20 14:56:47
We never expect not to get a profile/card with the
| |
502 profile->RecordAndLogUse(); | |
503 } | |
504 | |
495 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( | 505 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( |
496 JNIEnv* env, | 506 JNIEnv* env, |
497 const JavaParamRef<jobject>& unused_obj, | 507 const JavaParamRef<jobject>& unused_obj, |
498 const JavaParamRef<jstring>& jguid, | 508 const JavaParamRef<jstring>& jguid, |
499 jint count, | 509 jint count, |
500 jint date) { | 510 jint date) { |
501 DCHECK(count >= 0 && date >= 0); | 511 DCHECK(count >= 0 && date >= 0); |
502 | 512 |
503 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | 513 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
504 ConvertJavaStringToUTF8(env, jguid)); | 514 ConvertJavaStringToUTF8(env, jguid)); |
505 if (!profile) | 515 if (!profile) |
506 return; | 516 return; |
507 | 517 |
508 profile->set_use_count(static_cast<size_t>(count)); | 518 profile->set_use_count(static_cast<size_t>(count)); |
509 profile->set_use_date(base::Time::FromTimeT(date)); | 519 profile->set_use_date(base::Time::FromTimeT(date)); |
510 } | 520 } |
511 | 521 |
522 jint PersonalDataManagerAndroid::GetProfileUseCountForTesting( | |
523 JNIEnv* env, | |
524 const base::android::JavaParamRef<jobject>& unused_obj, | |
525 const base::android::JavaParamRef<jstring>& jguid) { | |
526 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | |
527 ConvertJavaStringToUTF8(env, jguid)); | |
528 return profile ? profile->use_count() : -1; | |
529 } | |
530 | |
531 jlong PersonalDataManagerAndroid::GetProfileUseDateForTesting( | |
532 JNIEnv* env, | |
533 const base::android::JavaParamRef<jobject>& unused_obj, | |
534 const base::android::JavaParamRef<jstring>& jguid) { | |
535 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | |
536 ConvertJavaStringToUTF8(env, jguid)); | |
537 return profile ? profile->use_date().ToTimeT() : -1; | |
538 } | |
539 | |
540 void PersonalDataManagerAndroid::RecordAndLogCreditCardUse( | |
541 JNIEnv* env, | |
542 const JavaParamRef<jobject>& unused_obj, | |
543 const JavaParamRef<jstring>& jguid) { | |
544 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
545 ConvertJavaStringToUTF8(env, jguid)); | |
546 if (card) | |
547 card->RecordAndLogUse(); | |
548 } | |
549 | |
512 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( | 550 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( |
513 JNIEnv* env, | 551 JNIEnv* env, |
514 const JavaParamRef<jobject>& unused_obj, | 552 const JavaParamRef<jobject>& unused_obj, |
515 const JavaParamRef<jstring>& jguid, | 553 const JavaParamRef<jstring>& jguid, |
516 jint count, | 554 jint count, |
517 jint date) { | 555 jint date) { |
518 DCHECK(count >= 0 && date >= 0); | 556 DCHECK(count >= 0 && date >= 0); |
519 | 557 |
520 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | 558 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
521 ConvertJavaStringToUTF8(env, jguid)); | 559 ConvertJavaStringToUTF8(env, jguid)); |
522 if (!card) | 560 if (!card) |
523 return; | 561 return; |
524 | 562 |
525 card->set_use_count(static_cast<size_t>(count)); | 563 card->set_use_count(static_cast<size_t>(count)); |
526 card->set_use_date(base::Time::FromTimeT(date)); | 564 card->set_use_date(base::Time::FromTimeT(date)); |
527 } | 565 } |
528 | 566 |
567 jint PersonalDataManagerAndroid::GetCreditCardUseCountForTesting( | |
568 JNIEnv* env, | |
569 const base::android::JavaParamRef<jobject>& unused_obj, | |
570 const base::android::JavaParamRef<jstring>& jguid) { | |
571 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
572 ConvertJavaStringToUTF8(env, jguid)); | |
573 return card ? card->use_count() : -1; | |
574 } | |
575 | |
576 jlong PersonalDataManagerAndroid::GetCreditCardUseDateForTesting( | |
577 JNIEnv* env, | |
578 const base::android::JavaParamRef<jobject>& unused_obj, | |
579 const base::android::JavaParamRef<jstring>& jguid){ | |
580 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
581 ConvertJavaStringToUTF8(env, jguid)); | |
582 return card ? card->use_date().ToTimeT() : -1; | |
583 } | |
584 | |
585 jlong PersonalDataManagerAndroid::GetCurrentDateForTesting( | |
586 JNIEnv* env, | |
587 const base::android::JavaParamRef<jobject>& unused_obj) { | |
588 return base::Time::Now().ToTimeT(); | |
Bernhard Bauer
2016/07/14 10:14:19
Using actual wall clock time here is a recipe for
sebsg
2016/07/20 14:56:47
Good point and I agree. My investigation led me do
Bernhard Bauer
2016/07/20 15:09:44
Ok, you added a TODO. Thanks :)
| |
589 } | |
590 | |
529 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( | 591 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( |
530 JNIEnv* env, | 592 JNIEnv* env, |
531 const std::vector<AutofillProfile*>& profiles) { | 593 const std::vector<AutofillProfile*>& profiles) { |
532 std::vector<base::string16> guids; | 594 std::vector<base::string16> guids; |
533 for (AutofillProfile* profile : profiles) | 595 for (AutofillProfile* profile : profiles) |
534 guids.push_back(base::UTF8ToUTF16(profile->guid())); | 596 guids.push_back(base::UTF8ToUTF16(profile->guid())); |
535 | 597 |
536 return base::android::ToJavaArrayOfStrings(env, guids); | 598 return base::android::ToJavaArrayOfStrings(env, guids); |
537 } | 599 } |
538 | 600 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
619 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); | 681 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); |
620 } | 682 } |
621 | 683 |
622 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 684 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
623 PersonalDataManagerAndroid* personal_data_manager_android = | 685 PersonalDataManagerAndroid* personal_data_manager_android = |
624 new PersonalDataManagerAndroid(env, obj); | 686 new PersonalDataManagerAndroid(env, obj); |
625 return reinterpret_cast<intptr_t>(personal_data_manager_android); | 687 return reinterpret_cast<intptr_t>(personal_data_manager_android); |
626 } | 688 } |
627 | 689 |
628 } // namespace autofill | 690 } // namespace autofill |
OLD | NEW |