blob: 55d4d1ef760a9b22f18ee41a4499a35b529d0590 [file] [log] [blame]
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.android.locationtracker.data;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.view.View;
import android.widget.ResourceCursorAdapter;
import android.widget.TextView;
import com.android.locationtracker.R;
/**
* Used to bind Tracker data to a list view UI
*/
public class TrackerListHelper extends TrackerDataHelper {
private ListActivity mActivity;
// sort entries by most recent first
private static final String SORT_ORDER = TrackerEntry.ID_COL + " DESC";
public TrackerListHelper(ListActivity activity) {
super(activity, TrackerDataHelper.CSV_FORMATTER);
mActivity = activity;
}
/**
* Helper method for binding the list activities UI to the tracker data
* Tracker data will be sorted in most-recent first order
* Will enable automatic UI changes as tracker data changes
*
* @param layout - layout to populate data
*/
public void bindListUI(int layout) {
Cursor cursor = mActivity.managedQuery(TrackerProvider.CONTENT_URI,
TrackerEntry.ATTRIBUTES, null, null, SORT_ORDER);
// Used to map tracker entries from the database to views
TrackerAdapter adapter = new TrackerAdapter(mActivity, layout, cursor);
mActivity.setListAdapter(adapter);
cursor.setNotificationUri(mActivity.getContentResolver(),
TrackerProvider.CONTENT_URI);
}
private class TrackerAdapter extends ResourceCursorAdapter {
public TrackerAdapter(Context context, int layout, Cursor c) {
super(context, layout, c);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
final TextView v = (TextView) view
.findViewById(R.id.entrylist_item);
String rowText = mFormatter.getOutput(TrackerEntry
.createEntry(cursor));
v.setText(rowText);
}
}
}