1// Copyright 2013 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
5package org.chromium.chrome.browser.infobar;
6
7import android.content.Context;
8import android.widget.Button;
9
10import org.chromium.chrome.R;
11
12/**
13 * An infobar that presents the user with up to 2 buttons.
14 */
15public abstract class TwoButtonInfoBar extends InfoBar {
16    public TwoButtonInfoBar(InfoBarListeners.Dismiss dismissListener, int backgroundType,
17            int iconDrawableId) {
18        super(dismissListener, backgroundType, iconDrawableId);
19    }
20
21    /**
22     * Creates controls for the current InfoBar.
23     * @param layout InfoBarLayout to find controls in.
24     */
25    @Override
26    public void createContent(InfoBarLayout layout) {
27        Context context = layout.getContext();
28        layout.addButtons(getPrimaryButtonText(context), getSecondaryButtonText(context));
29    }
30
31    @Override
32    public void setControlsEnabled(boolean state) {
33        super.setControlsEnabled(state);
34
35        // Handle the buttons.
36        ContentWrapperView wrapper = getContentWrapper(false);
37        if (wrapper != null) {
38            Button primary = (Button) wrapper.findViewById(R.id.button_primary);
39            Button secondary = (Button) wrapper.findViewById(R.id.button_secondary);
40            if (primary != null) primary.setEnabled(state);
41            if (secondary != null) secondary.setEnabled(state);
42        }
43    }
44}
45