Avi Drissman | 4a8573c | 2022-09-09 19:35:54 | [diff] [blame^] | 1 | // Copyright 2022 The Chromium Authors |
Vishwas Uppoor | 51ddc95 | 2022-05-06 22:20:53 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "chrome/browser/ui/android/autofill/virtual_card_utils.h" |
| 6 | |
| 7 | #include "base/android/jni_string.h" |
| 8 | #include "chrome/android/chrome_jni_headers/VirtualCardEnrollmentFields_jni.h" |
| 9 | #include "ui/gfx/android/java_bitmap.h" |
| 10 | #include "ui/gfx/image/image.h" |
| 11 | #include "ui/gfx/image/image_skia.h" |
| 12 | |
| 13 | using base::android::AttachCurrentThread; |
| 14 | using base::android::ConvertUTF16ToJavaString; |
| 15 | using base::android::ConvertUTF8ToJavaString; |
| 16 | using base::android::ScopedJavaLocalRef; |
| 17 | |
| 18 | namespace autofill { |
| 19 | |
| 20 | ScopedJavaLocalRef<jobject> CreateVirtualCardEnrollmentFieldsJavaObject( |
| 21 | autofill::VirtualCardEnrollmentFields* virtual_card_enrollment_fields) { |
| 22 | JNIEnv* env = AttachCurrentThread(); |
| 23 | // Create VirtualCardEnrollmentFields java object. |
| 24 | ScopedJavaLocalRef<jobject> java_object = |
| 25 | Java_VirtualCardEnrollmentFields_create( |
| 26 | env, |
| 27 | ConvertUTF16ToJavaString( |
| 28 | env, virtual_card_enrollment_fields->credit_card |
| 29 | .CardIdentifierStringForAutofillDisplay()), |
| 30 | gfx::ConvertToJavaBitmap( |
| 31 | *virtual_card_enrollment_fields->card_art_image->bitmap())); |
| 32 | // Add Google legal messages. |
| 33 | for (const auto& legal_message_line : |
| 34 | virtual_card_enrollment_fields->google_legal_message) { |
| 35 | Java_VirtualCardEnrollmentFields_addGoogleLegalMessageLine( |
| 36 | env, java_object, |
| 37 | ConvertUTF16ToJavaString(env, legal_message_line.text())); |
| 38 | for (const auto& link : legal_message_line.links()) { |
| 39 | Java_VirtualCardEnrollmentFields_addLinkToLastGoogleLegalMessageLine( |
| 40 | env, java_object, link.range.start(), link.range.end(), |
| 41 | ConvertUTF8ToJavaString(env, link.url.spec())); |
| 42 | } |
| 43 | } |
| 44 | // Add issuer legal messages. |
| 45 | for (const auto& legal_message_line : |
| 46 | virtual_card_enrollment_fields->issuer_legal_message) { |
| 47 | Java_VirtualCardEnrollmentFields_addIssuerLegalMessageLine( |
| 48 | env, java_object, |
| 49 | ConvertUTF16ToJavaString(env, legal_message_line.text())); |
| 50 | for (const auto& link : legal_message_line.links()) { |
| 51 | Java_VirtualCardEnrollmentFields_addLinkToLastIssuerLegalMessageLine( |
| 52 | env, java_object, link.range.start(), link.range.end(), |
| 53 | ConvertUTF8ToJavaString(env, link.url.spec())); |
| 54 | } |
| 55 | } |
| 56 | return java_object; |
| 57 | } |
| 58 | |
| 59 | } // namespace autofill |