14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)package org.chromium.chrome.browser.infobar;
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import android.content.Context;
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import android.widget.CheckBox;
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import android.widget.CompoundButton;
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import org.chromium.chrome.R;
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)/**
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * A check box used to determine if a page should always be translated.
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)public class TranslateCheckBox {
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    private final SubPanelListener mListener;
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    private final TranslateOptions mOptions;
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    public TranslateCheckBox(TranslateOptions options, SubPanelListener listener) {
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        mOptions = options;
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        mListener = listener;
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    }
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    public void createContent(Context context, InfoBarLayout layout) {
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        CheckBox checkBox = new CheckBox(context);
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        checkBox.setId(R.id.infobar_extra_check);
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        checkBox.setText(context.getString(R.string.translate_always_text,
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                mOptions.sourceLanguage()));
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        checkBox.setChecked(mOptions.alwaysTranslateLanguageState());
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)            @Override
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)            public void onCheckedChanged(CompoundButton view, boolean isChecked) {
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                mOptions.toggleAlwaysTranslateLanguageState(isChecked);
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                if (isChecked) {
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                    mListener.onPanelClosed(InfoBar.ACTION_TYPE_NONE);
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                } else {
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                    mListener.onOptionsChanged();
384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                }
394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)            }
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        });
414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        layout.addGroup(checkBox);
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    }
434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
44