/**
** Copyright (c) 2010 Ushahidi Inc
** All rights reserved
** Contact: team@ushahidi.com
** Website: http://www.ushahidi.com
**
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: http://www.gnu.org/licenses/lgpl.html.
**
**
** If you have questions regarding the use of this file, please contact
** Ushahidi developers at team@ushahidi.com.
**
**/
package com.ushahidi.android.app.data;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FilterQueryProvider;
import android.widget.SimpleCursorAdapter;
public class PagedCursorAdapter extends SimpleCursorAdapter implements FilterQueryProvider {
private ContentResolver mContentResolver;
private String[] mProjection;
private Uri mUri;
private String mSortOrder;
private Cursor mCursor;
// private LayoutInflater mInflater;
/**
* @param context
* @param layout
* @param c
* @param from
* @param to
*/
public PagedCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to,
Uri uri, String[] projection, String sortOrder) {
super(context, layout, c, from, to);
mContentResolver = context.getContentResolver();
mProjection = projection;
mUri = uri;
mSortOrder = sortOrder;
setFilterQueryProvider(this);
// mInflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return super.getView(position, convertView, parent);
}
public Cursor runQuery(CharSequence constraint) {
if (constraint != null) {
if (mSortOrder.indexOf("LIMIT 0,") > 0) {
String newSortOrder = mSortOrder.substring(0, mSortOrder.indexOf("LIMIT 0,"));
mSortOrder = newSortOrder;
}
mSortOrder += " " + constraint.toString().trim();
}
if (mCursor != null && !mCursor.isClosed())
mCursor.close();
return mContentResolver.query(mUri, mProjection, null, null, mSortOrder);
}
}