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

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

Issue 2879853003: [Payments] Code Refactoring for the Subkey Request (Closed)
Patch Set: Changing a comment. Created 3 years, 7 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 #ifndef CHROME_BROWSER_AUTOFILL_ANDROID_PERSONAL_DATA_MANAGER_ANDROID_H_ 5 #ifndef CHROME_BROWSER_AUTOFILL_ANDROID_PERSONAL_DATA_MANAGER_ANDROID_H_
6 #define CHROME_BROWSER_AUTOFILL_ANDROID_PERSONAL_DATA_MANAGER_ANDROID_H_ 6 #define CHROME_BROWSER_AUTOFILL_ANDROID_PERSONAL_DATA_MANAGER_ANDROID_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/android/jni_weak_ref.h" 11 #include "base/android/jni_weak_ref.h"
12 #include "base/android/scoped_java_ref.h" 12 #include "base/android/scoped_java_ref.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "components/autofill/core/browser/personal_data_manager.h" 15 #include "components/autofill/core/browser/personal_data_manager.h"
16 #include "components/autofill/core/browser/personal_data_manager_observer.h" 16 #include "components/autofill/core/browser/personal_data_manager_observer.h"
17 #include "components/payments/core/address_normalizer_impl.h" 17 #include "components/payments/core/address_normalizer_impl.h"
18 #include "components/payments/core/subkey_requester.h"
18 #include "third_party/libaddressinput/chromium/chrome_address_validator.h" 19 #include "third_party/libaddressinput/chromium/chrome_address_validator.h"
19 20
20 namespace autofill { 21 namespace autofill {
21 22
22 // Android wrapper of the PersonalDataManager which provides access from the 23 // Android wrapper of the PersonalDataManager which provides access from the
23 // Java layer. Note that on Android, there's only a single profile, and 24 // Java layer. Note that on Android, there's only a single profile, and
24 // therefore a single instance of this wrapper. 25 // therefore a single instance of this wrapper.
25 class PersonalDataManagerAndroid 26 class PersonalDataManagerAndroid
26 : public PersonalDataManagerObserver, 27 : public PersonalDataManagerObserver,
27 public LoadRulesListener,
28 public base::SupportsWeakPtr<PersonalDataManagerAndroid> { 28 public base::SupportsWeakPtr<PersonalDataManagerAndroid> {
29 public: 29 public:
30 // The interface for the sub-key request.
31 class SubKeyRequestDelegate {
32 public:
33 virtual void OnRulesSuccessfullyLoaded() = 0;
34 virtual ~SubKeyRequestDelegate() {}
35 };
36
37 // Registers the JNI bindings for this class. 30 // Registers the JNI bindings for this class.
38 static bool Register(JNIEnv* env); 31 static bool Register(JNIEnv* env);
39 32
40 PersonalDataManagerAndroid(JNIEnv* env, jobject obj); 33 PersonalDataManagerAndroid(JNIEnv* env, jobject obj);
41 34
42 // Returns true if personal data manager has loaded the initial data. 35 // Returns true if personal data manager has loaded the initial data.
43 jboolean IsDataLoaded( 36 jboolean IsDataLoaded(
44 JNIEnv* env, 37 JNIEnv* env,
45 const base::android::JavaParamRef<jobject>& unused_obj) const; 38 const base::android::JavaParamRef<jobject>& unused_obj) const;
46 39
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 // -------------------- 291 // --------------------
299 292
300 // Starts loading the address validation rules for the specified 293 // Starts loading the address validation rules for the specified
301 // |region_code|. 294 // |region_code|.
302 void LoadRulesForAddressNormalization( 295 void LoadRulesForAddressNormalization(
303 JNIEnv* env, 296 JNIEnv* env,
304 const base::android::JavaParamRef<jobject>& unused_obj, 297 const base::android::JavaParamRef<jobject>& unused_obj,
305 const base::android::JavaParamRef<jstring>& region_code); 298 const base::android::JavaParamRef<jstring>& region_code);
306 299
307 // Starts loading the rules for the specified |region_code| for the further 300 // Starts loading the rules for the specified |region_code| for the further
308 // sub-key request. 301 // subkey request.
309 void LoadRulesForSubKeys( 302 void LoadRulesForSubKeys(
310 JNIEnv* env, 303 JNIEnv* env,
311 const base::android::JavaParamRef<jobject>& unused_obj, 304 const base::android::JavaParamRef<jobject>& unused_obj,
312 const base::android::JavaParamRef<jstring>& region_code); 305 const base::android::JavaParamRef<jstring>& region_code);
313 306
314 // Normalizes the address of the |jprofile| synchronously if the 307 // Normalizes the address of the |jprofile| synchronously if the
315 // |jregion_code| rules have finished loading. Otherwise sets up the task to 308 // |jregion_code| rules have finished loading. Otherwise sets up the task to
316 // start the address normalization when the rules have finished loading. Also 309 // start the address normalization when the rules have finished loading. Also
317 // defines a time limit for the normalization, in which case the the 310 // defines a time limit for the normalization, in which case the the
318 // |jdelegate| will be notified. If the rules are loaded before the timeout, 311 // |jdelegate| will be notified. If the rules are loaded before the timeout,
319 // |jdelegate| will receive the normalized profile. 312 // |jdelegate| will receive the normalized profile.
320 void StartAddressNormalization( 313 void StartAddressNormalization(
321 JNIEnv* env, 314 JNIEnv* env,
322 const base::android::JavaParamRef<jobject>& unused_obj, 315 const base::android::JavaParamRef<jobject>& unused_obj,
323 const base::android::JavaParamRef<jobject>& jprofile, 316 const base::android::JavaParamRef<jobject>& jprofile,
324 const base::android::JavaParamRef<jstring>& jregion_code, 317 const base::android::JavaParamRef<jstring>& jregion_code,
325 jint jtimeout_seconds, 318 jint jtimeout_seconds,
326 const base::android::JavaParamRef<jobject>& jdelegate); 319 const base::android::JavaParamRef<jobject>& jdelegate);
327 320
328 // Checks whether the Autofill PersonalDataManager has profiles. 321 // Checks whether the Autofill PersonalDataManager has profiles.
329 jboolean HasProfiles(JNIEnv* env, 322 jboolean HasProfiles(JNIEnv* env,
330 const base::android::JavaParamRef<jobject>& unused_obj); 323 const base::android::JavaParamRef<jobject>& unused_obj);
331 324
332 // Checks whether the Autofill PersonalDataManager has credit cards. 325 // Checks whether the Autofill PersonalDataManager has credit cards.
333 jboolean HasCreditCards( 326 jboolean HasCreditCards(
334 JNIEnv* env, 327 JNIEnv* env,
335 const base::android::JavaParamRef<jobject>& unused_obj); 328 const base::android::JavaParamRef<jobject>& unused_obj);
336 329
337 // Gets the sub-keys for the region with |jregion_code| code, if the 330 // Gets the subkeys for the region with |jregion_code| code, if the
338 // |jregion_code| rules have finished loading. Otherwise, sets up a task to 331 // |jregion_code| rules have finished loading. Otherwise, sets up a task to
339 // get the sub-keys, when the rules are loaded. 332 // get the subkeys, when the rules are loaded.
340 void StartRegionSubKeysRequest( 333 void StartRegionSubKeysRequest(
341 JNIEnv* env, 334 JNIEnv* env,
342 const base::android::JavaParamRef<jobject>& unused_obj, 335 const base::android::JavaParamRef<jobject>& unused_obj,
343 const base::android::JavaParamRef<jstring>& jregion_code, 336 const base::android::JavaParamRef<jstring>& jregion_code,
337 jint jtimeout_seconds,
344 const base::android::JavaParamRef<jobject>& jdelegate); 338 const base::android::JavaParamRef<jobject>& jdelegate);
345 339
346 // Gets the sub-keys of the rule associated with |jregion_code|. Should only 340 // Cancels the pending subkey request task.
347 // be called when the rules are loaded.
348 base::android::ScopedJavaLocalRef<jobjectArray> GetSubKeys(
349 JNIEnv* env,
350 const std::string& jregion_code);
351
352 // Callback of the sub-keys request.
353 // This is called when the sub-keys are loaded.
354 void OnAddressValidationRulesLoaded(const std::string& region_code,
355 bool success) override;
356
357 // Cancels the pending sub-key request task.
358 void CancelPendingGetSubKeys( 341 void CancelPendingGetSubKeys(
359 JNIEnv* env, 342 JNIEnv* env,
360 const base::android::JavaParamRef<jobject>& unused_obj); 343 const base::android::JavaParamRef<jobject>& unused_obj);
361 344
362 private: 345 private:
363 ~PersonalDataManagerAndroid() override; 346 ~PersonalDataManagerAndroid() override;
364 347
365 // Returns the GUIDs of the |profiles| passed as parameter. 348 // Returns the GUIDs of the |profiles| passed as parameter.
366 base::android::ScopedJavaLocalRef<jobjectArray> GetProfileGUIDs( 349 base::android::ScopedJavaLocalRef<jobjectArray> GetProfileGUIDs(
367 JNIEnv* env, 350 JNIEnv* env,
368 const std::vector<AutofillProfile*>& profiles); 351 const std::vector<AutofillProfile*>& profiles);
369 352
370 // Returns the GUIDs of the |credit_cards| passed as parameter. 353 // Returns the GUIDs of the |credit_cards| passed as parameter.
371 base::android::ScopedJavaLocalRef<jobjectArray> GetCreditCardGUIDs( 354 base::android::ScopedJavaLocalRef<jobjectArray> GetCreditCardGUIDs(
372 JNIEnv* env, 355 JNIEnv* env,
373 const std::vector<CreditCard*>& credit_cards); 356 const std::vector<CreditCard*>& credit_cards);
374 357
375 // Returns whether the rules are loaded for the specified |region_code|.
376 bool AreRulesLoadedForRegion(const std::string& region_code);
377
378 // Gets the labels for the |profiles| passed as parameters. These labels are 358 // Gets the labels for the |profiles| passed as parameters. These labels are
379 // useful for distinguishing the profiles from one another. 359 // useful for distinguishing the profiles from one another.
380 // 360 //
381 // The labels never contain the full name and include at least 2 fields. 361 // The labels never contain the full name and include at least 2 fields.
382 // 362 //
383 // If |address_only| is true, then such fields as phone number, and email 363 // If |address_only| is true, then such fields as phone number, and email
384 // address are also omitted, but all other fields are included in the label. 364 // address are also omitted, but all other fields are included in the label.
385 base::android::ScopedJavaLocalRef<jobjectArray> GetProfileLabels( 365 base::android::ScopedJavaLocalRef<jobjectArray> GetProfileLabels(
386 JNIEnv* env, 366 JNIEnv* env,
387 bool address_only, 367 bool address_only,
(...skipping 14 matching lines...) Expand all
402 382
403 // Pointer to the java counterpart. 383 // Pointer to the java counterpart.
404 JavaObjectWeakGlobalRef weak_java_obj_; 384 JavaObjectWeakGlobalRef weak_java_obj_;
405 385
406 // Pointer to the PersonalDataManager for the main profile. 386 // Pointer to the PersonalDataManager for the main profile.
407 PersonalDataManager* personal_data_manager_; 387 PersonalDataManager* personal_data_manager_;
408 388
409 // The address validator used to normalize addresses. 389 // The address validator used to normalize addresses.
410 payments::AddressNormalizerImpl address_normalizer_; 390 payments::AddressNormalizerImpl address_normalizer_;
411 391
412 // The address validator used for sub-key request. 392 // Used for subkey request.
413 AddressValidator address_validator_; 393 payments::SubKeyRequester subkey_requester_;
414
415 // The region code and the request for the pending sub-key request.
416 std::unique_ptr<SubKeyRequestDelegate> pending_subkey_request_;
417 std::string pending_subkey_region_code_;
418 394
419 DISALLOW_COPY_AND_ASSIGN(PersonalDataManagerAndroid); 395 DISALLOW_COPY_AND_ASSIGN(PersonalDataManagerAndroid);
420 }; 396 };
421 397
422 } // namespace autofill 398 } // namespace autofill
423 399
424 #endif // CHROME_BROWSER_AUTOFILL_ANDROID_PERSONAL_DATA_MANAGER_ANDROID_H_ 400 #endif // CHROME_BROWSER_AUTOFILL_ANDROID_PERSONAL_DATA_MANAGER_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698