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 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_ANDROID_AUXILIARY_PROFILES_ANDROID_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_ANDROID_AUXILIARY_PROFILES_ANDROID_H_ 7 8 #include <jni.h> 9 #include <vector> 10 11 #include "base/memory/scoped_ptr.h" 12 #include "base/strings/string16.h" 13 #include "components/autofill/core/browser/android/auxiliary_profile_loader_android.h" 14 15 namespace autofill { 16 17 class AutofillProfile; 18 class AuxiliaryProfileLoaderAndroid; 19 20 // This class is used to populate an AutofillProfile vector with 21 // a 'default' auxiliary profile. It depends on an 22 // AuxiliaryProfileLoaderAndroid object to provide contact information 23 // that is re-organized into an Autofill profile. 24 class AuxiliaryProfilesAndroid { 25 public: 26 // Takes in an AuxiliaryProfileLoader object which provides contact 27 // information methods. 28 AuxiliaryProfilesAndroid( 29 const autofill::AuxiliaryProfileLoaderAndroid& profile_loader, 30 const std::string& app_locale); 31 ~AuxiliaryProfilesAndroid(); 32 33 // Returns autofill profile constructed from profile_loader_. 34 scoped_ptr<AutofillProfile> LoadContactsProfile(); 35 36 private: 37 // Inserts contact's address data into profile. 38 void LoadAddress(AutofillProfile* profile); 39 // Inserts contact's name data into profile. 40 void LoadName(AutofillProfile* profile); 41 // Inserts contact's email address data into profile. 42 void LoadEmailAddress(AutofillProfile* profile); 43 // Inserts contact's phone number data into profile. 44 void LoadPhoneNumbers(AutofillProfile* profile); 45 46 const AuxiliaryProfileLoaderAndroid& profile_loader_; 47 std::string app_locale_; 48 49 DISALLOW_COPY_AND_ASSIGN(AuxiliaryProfilesAndroid); 50 }; 51 52 } // namespace 53 54 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_ANDROID_AUXILIARY_PROFILES_ANDROID_H_ 55