// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.chrome.browser.payments.ui; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import org.chromium.base.ApiCompatibilityUtils; import org.chromium.chrome.R; /** * Helper class for creating a horizontal list of icons with a title. */ class EditorIconsField { private final View mLayout; /** * Builds a horizontal list of icons. * * @param context The application context to use when creating widgets. * @param root The object that provides a set of LayoutParams values for the view. * @param fieldModel The data model of the icon list. */ public EditorIconsField(Context context, ViewGroup root, EditorFieldModel fieldModel) { assert fieldModel.getInputTypeHint() == EditorFieldModel.INPUT_TYPE_HINT_ICONS; mLayout = LayoutInflater.from(context).inflate( R.layout.payment_request_editor_icons, root, false); ((TextView) mLayout.findViewById(R.id.label)).setText(fieldModel.getLabel()); LinearLayout container = (LinearLayout) mLayout.findViewById(R.id.icons_container); int size = context.getResources().getDimensionPixelSize( R.dimen.payments_editor_icon_list_size); int margin = context.getResources().getDimensionPixelSize( R.dimen.payments_section_small_spacing); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); ApiCompatibilityUtils.setMarginEnd(layoutParams, margin); for (int i = 0; i < fieldModel.getIconResourceIds().size(); i++) { ImageView icon = new ImageView(context); icon.setImageResource(fieldModel.getIconResourceIds().get(i)); icon.setBackgroundResource(R.drawable.payments_ui_logo_bg); icon.setContentDescription(context.getString( fieldModel.getIconDescriptionsForAccessibility().get(i))); icon.setAdjustViewBounds(true); icon.setMaxWidth(size); icon.setMaxHeight(size); container.addView(icon, layoutParams); } } /** @return The View containing everything. */ public View getLayout() { return mLayout; } }