package net.bible.android.view.activity.mynote;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import net.bible.android.activity.R;
import net.bible.android.control.mynote.MyNoteControl;
import net.bible.android.view.activity.base.ListActionModeHelper;
import net.bible.android.view.util.widget.TwoLineListItem;
import net.bible.service.common.CommonUtils;
import net.bible.service.db.mynote.MyNoteDto;
import java.util.List;
/**
* Display a single Note in a list row
*
* @see gnu.lgpl.License for license details.<br>
* The copyright to this program is held by it's authors.
* @author John D. Lewis [balinjdl at gmail dot com]
* @author Martin Denham [mjdenham at gmail dot com]
*/
public class MyNoteItemAdapter extends ArrayAdapter<MyNoteDto> {
private int resource;
private MyNoteControl myNoteControl;
private final ListActionModeHelper.ActionModeActivity actionModeActivity;
private static int ACTIVATED_COLOUR = CommonUtils.getResourceColor(R.color.list_item_activated);
private static final String TAG = "UserNoteItemAdapter";
public MyNoteItemAdapter(Context _context, int _resource, List<MyNoteDto> _items, ListActionModeHelper.ActionModeActivity actionModeActivity, MyNoteControl myNoteControl) {
super(_context, _resource, _items);
resource = _resource;
this.myNoteControl = myNoteControl;
this.actionModeActivity = actionModeActivity;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyNoteDto item = getItem(position);
// Pick up the TwoLineListItem defined in the xml file
TwoLineListItem view;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = (TwoLineListItem) inflater.inflate(resource, parent, false);
} else {
view = (TwoLineListItem) convertView;
}
// Set value for the first text field
if (view.getText1() != null) {
String key = myNoteControl.getMyNoteVerseKey(item);
view.getText1().setText(key);
}
// set value for the second text field
if (view.getText2() != null) {
try {
String noteText = myNoteControl.getMyNoteText(item, true);
view.getText2().setText(noteText);
} catch (Exception e) {
Log.e(TAG, "Error loading label verse text", e);
view.getText2().setText("");
}
}
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
if (actionModeActivity.isItemChecked(position)) {
view.setBackgroundColor(ACTIVATED_COLOUR);
} else {
view.setBackgroundColor(Color.TRANSPARENT);
}
}
return view;
}
}