blob: adc39b33d9435f8bca8dc8e8bdaf1c0103096e23 [file] [log] [blame]
Glenn Kastenff7c8b92016-03-18 12:28:06 -07001/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16package com.android.locationtracker.data;
17
18import android.app.ListActivity;
19import android.content.Context;
20import android.database.Cursor;
21import android.view.View;
22import android.widget.ResourceCursorAdapter;
23import android.widget.TextView;
24
25import com.android.locationtracker.R;
26
27/**
28 * Used to bind Tracker data to a list view UI
29 */
30public class TrackerListHelper extends TrackerDataHelper {
31
32 private ListActivity mActivity;
33
34 // sort entries by most recent first
35 private static final String SORT_ORDER = TrackerEntry.ID_COL + " DESC";
36
37 public TrackerListHelper(ListActivity activity) {
38 super(activity, TrackerDataHelper.CSV_FORMATTER);
39 mActivity = activity;
40 }
41
42 /**
43 * Helper method for binding the list activities UI to the tracker data
44 * Tracker data will be sorted in most-recent first order
45 * Will enable automatic UI changes as tracker data changes
46 *
47 * @param layout - layout to populate data
48 */
49 public void bindListUI(int layout) {
50 Cursor cursor = mActivity.managedQuery(TrackerProvider.CONTENT_URI,
51 TrackerEntry.ATTRIBUTES, null, null, SORT_ORDER);
52 // Used to map tracker entries from the database to views
53 TrackerAdapter adapter = new TrackerAdapter(mActivity, layout, cursor);
54 mActivity.setListAdapter(adapter);
55 cursor.setNotificationUri(mActivity.getContentResolver(),
56 TrackerProvider.CONTENT_URI);
57
58 }
59
60 private class TrackerAdapter extends ResourceCursorAdapter {
61
62 public TrackerAdapter(Context context, int layout, Cursor c) {
63 super(context, layout, c);
64 }
65
66 @Override
67 public void bindView(View view, Context context, Cursor cursor) {
68 final TextView v = (TextView) view
69 .findViewById(R.id.entrylist_item);
70 String rowText = mFormatter.getOutput(TrackerEntry
71 .createEntry(cursor));
72 v.setText(rowText);
73 }
74 }
75}