blob: 05c04749a2b19ccaef3bc14594b54ee7b6058825 [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2022 The Chromium Authors
Vishwas Uppoor51ddc952022-05-06 22:20:532// 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
13using base::android::AttachCurrentThread;
14using base::android::ConvertUTF16ToJavaString;
15using base::android::ConvertUTF8ToJavaString;
16using base::android::ScopedJavaLocalRef;
17
18namespace autofill {
19
20ScopedJavaLocalRef<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