/* * Author: Miguel Angel Bravo (@MiguelAngelBrav) * The Android Open Source Project Katbag is licensed under the General GPLv3. * */ package cl.ipp.katbag.row_adapters; import java.util.List; import android.content.Context; import android.media.MediaPlayer; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import cl.ipp.katbag.R; public class DialogSoundRowAdapter extends ArrayAdapter<String> { private List<String> names; private List<String> items; private Context context; private MediaPlayer mPlayer; public DialogSoundRowAdapter(Context context, int layoutResourceId, List<String> items, List<String> names) { super(context, layoutResourceId, items); this.context = context; this.items = items; this.names = names; } @Override public View getView(final int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.row_dialog_sound, parent, false); } TextView name = (TextView) v.findViewById(R.id.dialog_sound_row_name); if (name != null) { name.setText(Html.fromHtml(names.get(position))); } ImageView preview = (ImageView) v.findViewById(R.id.dialog_sound_preview); preview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int sound = context.getResources().getIdentifier(items.get(position), "raw", context.getPackageName()); ; stopPlayer(); mPlayer = MediaPlayer.create(context, sound); mPlayer.start(); } }); return v; } public void stopPlayer() { if (mPlayer != null) { mPlayer.stop(); mPlayer.release(); mPlayer = null; } } }