package eu.ttbox.androgister.ui.admin.user; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ResourceCursorAdapter; import android.widget.TextView; import eu.ttbox.androgister.AndroGisterApplication; import eu.ttbox.androgister.R; import eu.ttbox.androgister.domain.UserDao; import eu.ttbox.androgister.domain.UserDao.UserCursorHelper; import eu.ttbox.androgister.domain.provider.UserProvider; public class UserListAdapter extends ResourceCursorAdapter { private static final String TAG = "UserListAdapter"; private UserCursorHelper helper; private long selectedId = -1; public UserListAdapter(Context context, int layout, Cursor c, int flags) { super(context, layout, c, flags); // Init Dao AndroGisterApplication app = (AndroGisterApplication) context.getApplicationContext(); UserDao userDao = app.getDaoSession().getUserDao(); helper =userDao.getCursorHelper(c); } public void setSelectedId(long selectedEntity) { this.selectedId = selectedEntity; notifyDataSetChanged(); } public Uri getContactUri(int position) { Cursor item = (Cursor) getItem(position); return item != null ? getEntityUri(item) : null; } public Uri getEntityUri(Cursor cursor) { String contactId = helper.getId(cursor).toString(); Uri uri = Uri.withAppendedPath(UserProvider.Constants.CONTENT_URI, contactId); return uri; } @Override public void bindView(View view, Context context, Cursor cursor) { if (helper.isNotInit) { helper.initWrapper(cursor); } ViewHolder holder = (ViewHolder) view.getTag(); // Bind Value helper.setTextLastname(holder.lastnameText, cursor)// .setTextFirstname(holder.firstnameText, cursor)// .setTextLogin(holder.matriculeText, cursor); // String long currentId = helper.getId(cursor); boolean selected = currentId == selectedId; Log.i(TAG, "Is selected for userid = " + currentId + " ==> " + selected); view.setSelected(selected); view.setActivated(selected); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = super.newView(context, cursor, parent); // Then populate the ViewHolder ViewHolder holder = new ViewHolder(); holder.firstnameText = (TextView) view.findViewById(R.id.user_list_item_firstname); holder.lastnameText = (TextView) view.findViewById(R.id.user_list_item_lastname); holder.matriculeText = (TextView) view.findViewById(R.id.user_list_item_matricule); // and store it inside the layout. view.setTag(holder); return view; } static class ViewHolder { TextView firstnameText; TextView lastnameText; TextView matriculeText; } public Uri getFirstEntityUri() { Cursor cursor = (Cursor) getItem(0); if (cursor == null || !cursor.moveToFirst()) { return null; } return getEntityUri(cursor); } }