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