package de.apps4ics.mountainnavigation.adapters;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import de.apps4ics.mountainnavigation.MainActivity;
import de.apps4ics.mountainnavigation.R;

/**
 * This file is part of MountainNavigation.
 *
 * MountainNavigation is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * MountainNavigation is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with MountainNavigation.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @copyright Copyright (c) 2016 Vinzenz Rosenkanz <vinzenz.rosenkranz@gmail.com>
 *
 * @author Vinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>
 */
public class WarningListAdapter extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] texts;
    private final String[] descs;
    private final String[] infos;

    public WarningListAdapter(Activity context, String[] texts, String[] descs, String[] additionalInfos) {
        super(context, R.layout.warning_list_item, texts);
        this.context = context;
        this.texts = texts;
        this.descs = descs;
        this.infos = additionalInfos;
    }

    @Override
    public View getView(final int position, View view, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.warning_list_item, null, true);
        TextView txtTitle = (TextView) rowView.findViewById(R.id.warning_text_title);

        TextView txtDesc = (TextView) rowView.findViewById(R.id.warning_text_desc);
        txtTitle.setText(texts[position]);
        txtDesc.setText(descs[position]);
        final String info = (infos[position] != null && !infos[position].equals("")) ? infos[position] : MainActivity.getRes().getString(R.string.hint_dialog_info_none);
        rowView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainActivity.Toaster(info, true, context);
            }
        });
        return rowView;
    }
}
