Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: chrome/browser/autofill/android/personal_data_manager_android.cc

Issue 2126213002: [Payments] Record use of profiles and credit cards in Payment Request. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed temp card bug + nits Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698