1 // Copyright 2019 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 package org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections;
6 
7 import android.content.Context;
8 import android.view.LayoutInflater;
9 import android.view.View;
10 import android.view.ViewGroup;
11 import android.widget.LinearLayout;
12 import android.widget.TextView;
13 
14 import org.chromium.chrome.autofill_assistant.R;
15 import org.chromium.chrome.browser.autofill_assistant.AssistantTextUtils;
16 import org.chromium.chrome.browser.autofill_assistant.LayoutUtils;
17 
18 /** A section which displays a simple static text message. */
19 public class AssistantStaticTextSection implements AssistantAdditionalSection {
20     private final LinearLayout mRootLayout;
21     private final int mTitleToContentPadding;
22 
23     /** Factory for instantiating instances of {code AssistantStaticTextSection}. */
24     public static class Factory implements AssistantAdditionalSectionFactory {
25         private final String mTitle;
26         private final String mMessage;
Factory(String title, String message)27         public Factory(String title, String message) {
28             mTitle = title;
29             mMessage = message;
30         }
31 
32         @Override
createSection( Context context, ViewGroup parent, int index, Delegate delegate)33         public AssistantStaticTextSection createSection(
34                 Context context, ViewGroup parent, int index, Delegate delegate) {
35             return new AssistantStaticTextSection(context, parent, index, mTitle, mMessage);
36         }
37     }
38 
AssistantStaticTextSection( Context context, ViewGroup parent, int index, String title, String message)39     AssistantStaticTextSection(
40             Context context, ViewGroup parent, int index, String title, String message) {
41         mTitleToContentPadding = context.getResources().getDimensionPixelSize(
42                 R.dimen.autofill_assistant_payment_request_title_padding);
43 
44         LayoutInflater inflater = LayoutUtils.createInflater(context);
45         mRootLayout = (LinearLayout) inflater.inflate(
46                 R.layout.autofill_assistant_static_text_section, null);
47 
48         TextView titleView = mRootLayout.findViewById(R.id.section_title);
49         AssistantTextUtils.applyVisualAppearanceTags(titleView, title, null);
50 
51         TextView messageView = mRootLayout.findViewById(R.id.text);
52         AssistantTextUtils.applyVisualAppearanceTags(messageView, message, null);
53 
54         parent.addView(mRootLayout, index,
55                 new ViewGroup.LayoutParams(
56                         ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
57     }
58 
59     @Override
getView()60     public View getView() {
61         return mRootLayout;
62     }
63 
64     @Override
setPaddings(int topPadding, int bottomPadding)65     public void setPaddings(int topPadding, int bottomPadding) {
66         View titleView = mRootLayout.findViewById(R.id.section_title);
67         titleView.setPadding(titleView.getPaddingLeft(), topPadding, titleView.getPaddingRight(),
68                 mTitleToContentPadding);
69         TextView messageView = mRootLayout.findViewById(R.id.text);
70         messageView.setPadding(messageView.getPaddingLeft(), messageView.getPaddingTop(),
71                 messageView.getPaddingRight(), bottomPadding);
72     }
73 
74     @Override
setDelegate(Delegate delegate)75     public void setDelegate(Delegate delegate) {
76         // Nothing to do.
77     }
78 }
79