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 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 } | 478 } |
479 | 479 |
480 void PersonalDataManagerAndroid::AddServerCreditCardForTest( | 480 void PersonalDataManagerAndroid::AddServerCreditCardForTest( |
481 JNIEnv* env, | 481 JNIEnv* env, |
482 const base::android::JavaParamRef<jobject>& unused_obj, | 482 const base::android::JavaParamRef<jobject>& unused_obj, |
483 const base::android::JavaParamRef<jobject>& jcard) { | 483 const base::android::JavaParamRef<jobject>& jcard) { |
484 std::unique_ptr<CreditCard> card(new CreditCard); | 484 std::unique_ptr<CreditCard> card(new CreditCard); |
485 PopulateNativeCreditCardFromJava(jcard, env, card.get()); | 485 PopulateNativeCreditCardFromJava(jcard, env, card.get()); |
486 card->set_record_type(CreditCard::MASKED_SERVER_CARD); | 486 card->set_record_type(CreditCard::MASKED_SERVER_CARD); |
487 personal_data_manager_->AddServerCreditCardForTest(std::move(card)); | 487 personal_data_manager_->AddServerCreditCardForTest(std::move(card)); |
| 488 personal_data_manager_->NotifyPersonalDataChangedForTest(); |
488 } | 489 } |
489 | 490 |
490 void PersonalDataManagerAndroid::RemoveByGUID( | 491 void PersonalDataManagerAndroid::RemoveByGUID( |
491 JNIEnv* env, | 492 JNIEnv* env, |
492 const JavaParamRef<jobject>& unused_obj, | 493 const JavaParamRef<jobject>& unused_obj, |
493 const JavaParamRef<jstring>& jguid) { | 494 const JavaParamRef<jstring>& jguid) { |
494 personal_data_manager_->RemoveByGUID(ConvertJavaStringToUTF8(env, jguid)); | 495 personal_data_manager_->RemoveByGUID(ConvertJavaStringToUTF8(env, jguid)); |
495 } | 496 } |
496 | 497 |
497 void PersonalDataManagerAndroid::ClearUnmaskedCache( | 498 void PersonalDataManagerAndroid::ClearUnmaskedCache( |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 | 551 |
551 Java_PersonalDataManager_personalDataChanged(env, | 552 Java_PersonalDataManager_personalDataChanged(env, |
552 weak_java_obj_.get(env).obj()); | 553 weak_java_obj_.get(env).obj()); |
553 } | 554 } |
554 | 555 |
555 // static | 556 // static |
556 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { | 557 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { |
557 return RegisterNativesImpl(env); | 558 return RegisterNativesImpl(env); |
558 } | 559 } |
559 | 560 |
| 561 void PersonalDataManagerAndroid::RecordAndLogProfileUse( |
| 562 JNIEnv* env, |
| 563 const JavaParamRef<jobject>& unused_obj, |
| 564 const JavaParamRef<jstring>& jguid) { |
| 565 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
| 566 ConvertJavaStringToUTF8(env, jguid)); |
| 567 personal_data_manager_->RecordUseOf(*profile); |
| 568 } |
| 569 |
560 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( | 570 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( |
561 JNIEnv* env, | 571 JNIEnv* env, |
562 const JavaParamRef<jobject>& unused_obj, | 572 const JavaParamRef<jobject>& unused_obj, |
563 const JavaParamRef<jstring>& jguid, | 573 const JavaParamRef<jstring>& jguid, |
564 jint count, | 574 jint count, |
565 jint date) { | 575 jint date) { |
566 DCHECK(count >= 0 && date >= 0); | 576 DCHECK(count >= 0 && date >= 0); |
567 | 577 |
568 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | 578 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
569 ConvertJavaStringToUTF8(env, jguid)); | 579 ConvertJavaStringToUTF8(env, jguid)); |
570 if (!profile) | |
571 return; | |
572 | |
573 profile->set_use_count(static_cast<size_t>(count)); | 580 profile->set_use_count(static_cast<size_t>(count)); |
574 profile->set_use_date(base::Time::FromTimeT(date)); | 581 profile->set_use_date(base::Time::FromTimeT(date)); |
| 582 personal_data_manager_->NotifyPersonalDataChangedForTest(); |
| 583 } |
| 584 |
| 585 jint PersonalDataManagerAndroid::GetProfileUseCountForTesting( |
| 586 JNIEnv* env, |
| 587 const base::android::JavaParamRef<jobject>& unused_obj, |
| 588 const base::android::JavaParamRef<jstring>& jguid) { |
| 589 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
| 590 ConvertJavaStringToUTF8(env, jguid)); |
| 591 return profile->use_count(); |
| 592 } |
| 593 |
| 594 jlong PersonalDataManagerAndroid::GetProfileUseDateForTesting( |
| 595 JNIEnv* env, |
| 596 const base::android::JavaParamRef<jobject>& unused_obj, |
| 597 const base::android::JavaParamRef<jstring>& jguid) { |
| 598 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
| 599 ConvertJavaStringToUTF8(env, jguid)); |
| 600 return profile->use_date().ToTimeT(); |
| 601 } |
| 602 |
| 603 void PersonalDataManagerAndroid::RecordAndLogCreditCardUse( |
| 604 JNIEnv* env, |
| 605 const JavaParamRef<jobject>& unused_obj, |
| 606 const JavaParamRef<jstring>& jguid) { |
| 607 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
| 608 ConvertJavaStringToUTF8(env, jguid)); |
| 609 personal_data_manager_->RecordUseOf(*card); |
575 } | 610 } |
576 | 611 |
577 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( | 612 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( |
578 JNIEnv* env, | 613 JNIEnv* env, |
579 const JavaParamRef<jobject>& unused_obj, | 614 const JavaParamRef<jobject>& unused_obj, |
580 const JavaParamRef<jstring>& jguid, | 615 const JavaParamRef<jstring>& jguid, |
581 jint count, | 616 jint count, |
582 jint date) { | 617 jint date) { |
583 DCHECK(count >= 0 && date >= 0); | 618 DCHECK(count >= 0 && date >= 0); |
584 | 619 |
585 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | 620 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
586 ConvertJavaStringToUTF8(env, jguid)); | 621 ConvertJavaStringToUTF8(env, jguid)); |
587 if (!card) | |
588 return; | |
589 | |
590 card->set_use_count(static_cast<size_t>(count)); | 622 card->set_use_count(static_cast<size_t>(count)); |
591 card->set_use_date(base::Time::FromTimeT(date)); | 623 card->set_use_date(base::Time::FromTimeT(date)); |
| 624 personal_data_manager_->NotifyPersonalDataChangedForTest(); |
| 625 } |
| 626 |
| 627 jint PersonalDataManagerAndroid::GetCreditCardUseCountForTesting( |
| 628 JNIEnv* env, |
| 629 const base::android::JavaParamRef<jobject>& unused_obj, |
| 630 const base::android::JavaParamRef<jstring>& jguid) { |
| 631 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
| 632 ConvertJavaStringToUTF8(env, jguid)); |
| 633 return card->use_count(); |
| 634 } |
| 635 |
| 636 jlong PersonalDataManagerAndroid::GetCreditCardUseDateForTesting( |
| 637 JNIEnv* env, |
| 638 const base::android::JavaParamRef<jobject>& unused_obj, |
| 639 const base::android::JavaParamRef<jstring>& jguid){ |
| 640 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
| 641 ConvertJavaStringToUTF8(env, jguid)); |
| 642 return card->use_date().ToTimeT(); |
| 643 } |
| 644 |
| 645 // TODO(crbug.com/629507): Use a mock clock for testing. |
| 646 jlong PersonalDataManagerAndroid::GetCurrentDateForTesting( |
| 647 JNIEnv* env, |
| 648 const base::android::JavaParamRef<jobject>& unused_obj) { |
| 649 return base::Time::Now().ToTimeT(); |
592 } | 650 } |
593 | 651 |
594 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( | 652 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( |
595 JNIEnv* env, | 653 JNIEnv* env, |
596 const std::vector<AutofillProfile*>& profiles) { | 654 const std::vector<AutofillProfile*>& profiles) { |
597 std::vector<base::string16> guids; | 655 std::vector<base::string16> guids; |
598 for (AutofillProfile* profile : profiles) | 656 for (AutofillProfile* profile : profiles) |
599 guids.push_back(base::UTF8ToUTF16(profile->guid())); | 657 guids.push_back(base::UTF8ToUTF16(profile->guid())); |
600 | 658 |
601 return base::android::ToJavaArrayOfStrings(env, guids); | 659 return base::android::ToJavaArrayOfStrings(env, guids); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); | 741 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); |
684 } | 742 } |
685 | 743 |
686 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 744 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
687 PersonalDataManagerAndroid* personal_data_manager_android = | 745 PersonalDataManagerAndroid* personal_data_manager_android = |
688 new PersonalDataManagerAndroid(env, obj); | 746 new PersonalDataManagerAndroid(env, obj); |
689 return reinterpret_cast<intptr_t>(personal_data_manager_android); | 747 return reinterpret_cast<intptr_t>(personal_data_manager_android); |
690 } | 748 } |
691 | 749 |
692 } // namespace autofill | 750 } // namespace autofill |
OLD | NEW |