From c9fa895ba4abd9a28c38601209279e098cdb0624 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Thu, 14 Feb 2013 14:16:39 -0800 Subject: [PATCH] Add the owner of the shared with me tracks. --- .../apps/mytracks/MarkerListActivity.java | 19 ++++++------- .../apps/mytracks/SearchListActivity.java | 9 ++++-- .../apps/mytracks/TrackListActivity.java | 8 ++++-- .../mytracks/content/MyTracksProvider.java | 3 ++ .../mytracks/io/drive/SendDriveAsyncTask.java | 5 +--- .../apps/mytracks/io/sync/SyncAdapter.java | 10 ++----- .../apps/mytracks/io/sync/SyncUtils.java | 26 +++++++++++++---- .../settings/GoogleSettingsActivity.java | 5 +--- .../apps/mytracks/util/ListItemUtils.java | 28 +++++++++++++------ .../content/MyTracksProviderUtilsImpl.java | 7 ++++- .../android/apps/mytracks/content/Track.java | 11 ++++++++ .../apps/mytracks/content/TracksColumns.java | 12 ++++++-- 12 files changed, 94 insertions(+), 49 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java index fea979796..4776cac3e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java @@ -74,7 +74,6 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele } public void onPrepare(Menu menu, int position, long id) { - Track track = myTracksProviderUtils.getTrack(trackId); menu.findItem(R.id.list_context_menu_share_drive).setVisible(false); menu.findItem(R.id.list_context_menu_show_on_map).setVisible(true); menu.findItem(R.id.list_context_menu_edit).setVisible(!track.isSharedWithMe()); @@ -119,7 +118,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT; - private long trackId = -1; + private Track track; private ResourceCursorAdapter resourceCursorAdapter; // UI elements @@ -132,13 +131,14 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this); sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE); - trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); + long trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); if (trackId == -1L) { Log.d(TAG, "invalid track id"); finish(); return; } - + track = myTracksProviderUtils.getTrack(trackId); + setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); ListView listView = (ListView) findViewById(R.id.marker_list); @@ -165,10 +165,9 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele int iconId = statistics ? R.drawable.yellow_pushpin : R.drawable.blue_pushpin; String category = statistics ? null : cursor.getString(categoryIndex); String description = statistics ? null : cursor.getString(descriptionIndex); - ListItemUtils.setListItem(MarkerListActivity.this, view, false, true, iconId, R.string.icon_marker, cursor.getString(nameIndex), category, null, null, - cursor.getLong(timeIndex), description); + cursor.getLong(timeIndex), description, track.getSharedOwner()); } }; listView.setAdapter(resourceCursorAdapter); @@ -181,7 +180,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele public Loader onCreateLoader(int arg0, Bundle arg1) { return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION, WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + "!=?", - new String[] { String.valueOf(trackId), String.valueOf(firstWaypointId) }, null); + new String[] { String.valueOf(track.getId()), String.valueOf(firstWaypointId) }, null); } @Override @@ -232,7 +231,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele private void updateMenu() { if (insertMarkerMenuItem != null) { - insertMarkerMenuItem.setVisible(trackId == recordingTrackId && !recordingTrackPaused); + insertMarkerMenuItem.setVisible(track.getId() == recordingTrackId && !recordingTrackPaused); } } @@ -241,7 +240,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele switch (item.getItemId()) { case R.id.marker_list_insert_marker: Intent intent = IntentUtils.newIntent(this, MarkerEditActivity.class) - .putExtra(MarkerEditActivity.EXTRA_TRACK_ID, trackId); + .putExtra(MarkerEditActivity.EXTRA_TRACK_ID, track.getId()); startActivity(intent); return true; case R.id.marker_list_search: @@ -287,7 +286,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele startActivity(intent); return true; case R.id.list_context_menu_delete: - DeleteOneMarkerDialogFragment.newInstance(markerId, trackId).show( + DeleteOneMarkerDialogFragment.newInstance(markerId, track.getId()).show( getSupportFragmentManager(), DeleteOneMarkerDialogFragment.DELETE_ONE_MARKER_DIALOG_TAG); return true; diff --git a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java index 702ed0e11..43beec3cb 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java @@ -92,6 +92,7 @@ public class SearchListActivity extends AbstractMyTracksActivity private static final String TOTAL_DISTANCE_FIELD = "totalDistance"; private static final String START_TIME_FIELD = "startTime"; private static final String DESCRIPTION_FIELD = "description"; + private static final String SHARED_OWNER_FIELD = "sharedOwner"; private static final String TRACK_ID_FIELD = "trackId"; private static final String MARKER_ID_FIELD = "markerId"; @@ -216,10 +217,10 @@ public class SearchListActivity extends AbstractMyTracksActivity String totalDistance = (String) resultMap.get(TOTAL_DISTANCE_FIELD); Long startTime = (Long) resultMap.get(START_TIME_FIELD); String description = (String) resultMap.get(DESCRIPTION_FIELD); - + String sharedOwner = (String) resultMap.get(SHARED_OWNER_FIELD); ListItemUtils.setListItem(SearchListActivity.this, view, isRecording, isPaused, iconId, iconContentDescriptionId, name, category, totalTime, totalDistance, startTime, - description); + description, sharedOwner); return view; } }; @@ -452,11 +453,13 @@ public class SearchListActivity extends AbstractMyTracksActivity * the retrieval phase of the search. */ String trackName = null; + String sharedOwner = null; long trackId = waypoint.getTrackId(); if (trackId != -1L) { Track track = myTracksProviderUtils.getTrack(trackId); if (track != null) { trackName = track.getName(); + sharedOwner = track.getSharedOwner(); } } @@ -474,6 +477,7 @@ public class SearchListActivity extends AbstractMyTracksActivity resultMap.put(TOTAL_DISTANCE_FIELD, null); resultMap.put(START_TIME_FIELD, waypoint.getLocation().getTime()); resultMap.put(DESCRIPTION_FIELD, statistics ? null : waypoint.getDescription()); + resultMap.put(SHARED_OWNER_FIELD, sharedOwner); resultMap.put(TRACK_ID_FIELD, waypoint.getTrackId()); resultMap.put(MARKER_ID_FIELD, waypoint.getId()); } @@ -500,6 +504,7 @@ public class SearchListActivity extends AbstractMyTracksActivity StringUtils.formatDistance(this, tripStatitics.getTotalDistance(), metricUnits)); resultMap.put(START_TIME_FIELD, tripStatitics.getStartTime()); resultMap.put(DESCRIPTION_FIELD, track.getDescription()); + resultMap.put(SHARED_OWNER_FIELD, track.getSharedOwner()); resultMap.put(TRACK_ID_FIELD, track.getId()); resultMap.put(MARKER_ID_FIELD, null); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 7725acbac..7a8ba6ee0 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -101,7 +101,7 @@ public class TrackListActivity extends FragmentActivity private static final String[] PROJECTION = new String[] { TracksColumns._ID, TracksColumns.NAME, TracksColumns.DESCRIPTION, TracksColumns.CATEGORY, TracksColumns.STARTTIME, TracksColumns.TOTALDISTANCE, TracksColumns.TOTALTIME, TracksColumns.ICON, - TracksColumns.SHAREDWITHME }; + TracksColumns.SHAREDWITHME, TracksColumns.SHAREDOWNER }; // Callback when the trackRecordingServiceConnection binding changes. private final Runnable bindChangedCallback = new Runnable() { @@ -391,7 +391,8 @@ public class TrackListActivity extends FragmentActivity int totalDistanceIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALDISTANCE); int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME); int descriptionIndex = cursor.getColumnIndex(TracksColumns.DESCRIPTION); - + int sharedOwnerIndex = cursor.getColumnIndex(TracksColumns.SHAREDOWNER); + boolean isRecording = cursor.getLong(idIndex) == recordingTrackId; String icon = cursor.getString(iconIndex); int iconId = TrackIconUtils.getIconDrawable(icon); @@ -402,10 +403,11 @@ public class TrackListActivity extends FragmentActivity TrackListActivity.this, cursor.getDouble(totalDistanceIndex), metricUnits); long startTime = cursor.getLong(startTimeIndex); String description = cursor.getString(descriptionIndex); + String sharedOwner = cursor.getString(sharedOwnerIndex); ListItemUtils.setListItem(TrackListActivity.this, view, isRecording, recordingTrackPaused, iconId, R.string.icon_track, name, category, totalTime, totalDistance, startTime, - description); + description, sharedOwner); } }; listView.setAdapter(sectionResourceCursorAdapter); diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java b/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java index e8825655b..7ba2db8f9 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java +++ b/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java @@ -120,6 +120,9 @@ public class MyTracksProvider extends ContentProvider { Log.w(TAG, "Upgrade DB: Adding sharedwithme column."); db.execSQL("ALTER TABLE " + TracksColumns.TABLE_NAME + " ADD " + TracksColumns.SHAREDWITHME + " INTEGER"); + Log.w(TAG, "Upgrade DB: Adding sharedowner column."); + db.execSQL("ALTER TABLE " + TracksColumns.TABLE_NAME + " ADD " + TracksColumns.SHAREDOWNER + + " STRING"); } } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java index b34303246..63238f587 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java @@ -90,10 +90,7 @@ public class SendDriveAsyncTask extends AbstractSendAsyncTask { addPermission(drive, driveId); return true; } - track.setDriveId(""); - track.setModifiedTime(-1L); - track.setSharedWithMe(false); - myTracksProviderUtils.updateTrack(track); + SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, track, null); } String id = SyncUtils.insertDriveFile( diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncAdapter.java index 19c499fef..fdfc18701 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncAdapter.java @@ -300,10 +300,7 @@ public class SyncAdapter extends AbstractThreadedSyncAdapter { long[] trackIds = kmlImporter.importFile(inputStream); if (trackIds.length == 1) { Track track = myTracksProviderUtils.getTrack(trackIds[0]); - track.setDriveId(driveFile.getId()); - track.setModifiedTime(driveFile.getModifiedDate().getValue()); - track.setSharedWithMe(driveFile.getSharedWithMeDate() != null); - myTracksProviderUtils.updateTrack(track); + SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, track, driveFile); Log.d(TAG, "Add from Google Drive " + track.getName()); } else { // Clean up if imported more than one track @@ -445,10 +442,7 @@ public class SyncAdapter extends AbstractThreadedSyncAdapter { long[] trackIds = kmlImporter.importFile(inputStream); if (trackIds.length == 1) { Track newTrack = myTracksProviderUtils.getTrack(trackIds[0]); - newTrack.setDriveId(driveFile.getId()); - newTrack.setModifiedTime(driveFile.getModifiedByMeDate().getValue()); - newTrack.setSharedWithMe(driveFile.getSharedWithMeDate() != null); - myTracksProviderUtils.updateTrack(newTrack); + SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, newTrack, driveFile); return true; } else { Log.e(TAG, "Unable to merge, imported size is not 1"); diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java index aa23c3f86..b3aebd075 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java @@ -247,12 +247,8 @@ public class SyncUtils { Log.e(TAG, "Unable to add Drive file. Uploaded file is null for track " + track.getName()); return null; } - String id = uploadedFile.getId(); - track.setDriveId(id); - track.setModifiedTime(uploadedFile.getModifiedDate().getValue()); - track.setSharedWithMe(false); - myTracksProviderUtils.updateTrack(track); - return id; + SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, track, uploadedFile); + return uploadedFile.getId(); } finally { file.delete(); } @@ -407,6 +403,24 @@ public class SyncUtils { Log.d(TAG, "Unable to get file for track " + track.getName()); return null; } + + /** + * Updates track with drive file info. + * + * @param myTracksProviderUtils the myTracksProviderUtils + * @param track the track + * @param driveFile the drive file + */ + public static void updateTrackWithDriveFileInfo( + MyTracksProviderUtils myTracksProviderUtils, Track track, File driveFile) { + track.setDriveId(driveFile != null ? driveFile.getId() : ""); + track.setModifiedTime(driveFile != null ? driveFile.getModifiedDate().getValue() : -1L); + track.setSharedWithMe(driveFile != null ? driveFile.getSharedWithMeDate() != null : false); + track.setSharedOwner(driveFile != null && driveFile.getSharedWithMeDate() != null + && driveFile.getOwnerNames().size() > 0 ? driveFile.getOwnerNames().get(0) + : ""); + myTracksProviderUtils.updateTrack(track); + } /** * Gets the md5 digest for the file. diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java index 2c8d90791..5cff65cef 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java @@ -232,10 +232,7 @@ public class GoogleSettingsActivity extends AbstractSettingsActivity { if (track.isSharedWithMe()) { myTracksProviderUtils.deleteTrack(track.getId()); } else { - track.setDriveId(""); - track.setModifiedTime(-1L); - track.setSharedWithMe(false); - myTracksProviderUtils.updateTrack(track); + SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, track, null); } } while (cursor.moveToNext()); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ListItemUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/ListItemUtils.java index ef4db1d7d..c250ea121 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ListItemUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ListItemUtils.java @@ -53,7 +53,7 @@ public class ListItemUtils { */ public static void setListItem(Context context, View view, boolean isRecording, boolean isPaused, int iconId, int iconContentDescriptionId, String name, String category, String totalTime, - String totalDistance, long startTime, String description) { + String totalDistance, long startTime, String description, String sharedOwner) { if (isRecording) { iconId = isPaused ? R.drawable.track_paused : R.drawable.track_recording; @@ -69,7 +69,8 @@ public class ListItemUtils { nameTextView.setText(name); TextView timeDistanceTextView = (TextView) view.findViewById(R.id.list_item_time_distance); - setTextView(timeDistanceTextView, getTimeDistance(isRecording, totalTime, totalDistance), 0); + setTextView(timeDistanceTextView, + getTimeDistance(isRecording, sharedOwner, totalTime, totalDistance), 0); String[] startTimeDisplay = getStartTime(isRecording, context, startTime); TextView dateTextView = (TextView) view.findViewById(R.id.list_item_date); @@ -95,21 +96,32 @@ public class ListItemUtils { * Gets the time/distance text. * * @param isRecording true if recording + * @param sharedOwner the shared owner * @param totalTime the total time * @param totalDistance the total distance */ private static String getTimeDistance( - boolean isRecording, String totalTime, String totalDistance) { + boolean isRecording, String sharedOwner, String totalTime, String totalDistance) { if (isRecording) { return null; } - if (totalDistance == null || totalDistance.length() == 0) { - return totalTime; + StringBuffer buffer = new StringBuffer(); + if (sharedOwner != null && sharedOwner.length() != 0) { + buffer.append(sharedOwner); } - if (totalTime == null || totalTime.length() == 0) { - return totalDistance; + if (totalTime != null && totalTime.length() != 0) { + if (buffer.length() != 0) { + buffer.append(" \u2027" ); + } + buffer.append(totalDistance); + } + if (totalDistance != null && totalDistance.length() != 0) { + if (buffer.length() != 0) { + buffer.append(" "); + } + buffer.append("(" + totalDistance + ")"); } - return totalTime + " (" + totalDistance + ")"; + return buffer.toString(); } /** diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java index 4019e4c73..4acfe531b 100644 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java +++ b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java @@ -88,7 +88,8 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { int driveIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.DRIVEID); int modifiedTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MODIFIEDTIME); int sharedWithMeIndex = cursor.getColumnIndexOrThrow(TracksColumns.SHAREDWITHME); - + int sharedOwnerIndex = cursor.getColumnIndexOrThrow(TracksColumns.SHAREDOWNER); + Track track = new Track(); TripStatistics tripStatistics = track.getTripStatistics(); if (!cursor.isNull(idIndex)) { @@ -171,6 +172,9 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { if (!cursor.isNull(sharedWithMeIndex)) { track.setSharedWithMe(cursor.getInt(sharedWithMeIndex) == 1); } + if (!cursor.isNull(sharedOwnerIndex)) { + track.setSharedOwner(cursor.getString(sharedOwnerIndex)); + } return track; } @@ -321,6 +325,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { values.put(TracksColumns.DRIVEID, track.getDriveId()); values.put(TracksColumns.MODIFIEDTIME, track.getModifiedTime()); values.put(TracksColumns.SHAREDWITHME, track.isSharedWithMe()); + values.put(TracksColumns.SHAREDOWNER, track.getSharedOwner()); return values; } diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java index 84e8d3c22..ae3193780 100644 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java +++ b/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java @@ -50,6 +50,7 @@ public class Track implements Parcelable { private String driveId = ""; private long modifiedTime = -1L; private boolean sharedWithMe = false; + private String sharedOwner = ""; private TripStatistics tripStatistics = new TripStatistics(); @@ -72,6 +73,7 @@ public class Track implements Parcelable { driveId = in.readString(); modifiedTime = in.readLong(); sharedWithMe = in.readByte() == 1; + sharedOwner = in.readString(); ClassLoader classLoader = getClass().getClassLoader(); tripStatistics = in.readParcelable(classLoader); @@ -102,6 +104,7 @@ public class Track implements Parcelable { dest.writeString(driveId); dest.writeLong(modifiedTime); dest.writeByte((byte) (sharedWithMe ? 1 : 0)); + dest.writeString(sharedOwner); dest.writeParcelable(tripStatistics, 0); for (int i = 0; i < numberOfPoints; ++i) { @@ -225,6 +228,14 @@ public class Track implements Parcelable { this.sharedWithMe = sharedWithMe; } + public String getSharedOwner() { + return sharedOwner; + } + + public void setSharedOwner(String sharedOwner) { + this.sharedOwner = sharedOwner; + } + public TripStatistics getTripStatistics() { return tripStatistics; } diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java index 8ed4d2c67..2023e759c 100644 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java +++ b/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java @@ -86,6 +86,9 @@ public interface TracksColumns extends BaseColumns { // 1 if the Google Drive file is from the "Shared with me" directory public static final String SHAREDWITHME = "sharedwithme"; + // The owner of the shared with me track + public static final String SHAREDOWNER = "sharedOwner"; + public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" // table + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " // id + NAME + " STRING, " // name @@ -116,7 +119,8 @@ public interface TracksColumns extends BaseColumns { + ICON + " STRING, " // icon + DRIVEID + " STRING, " // drive id + MODIFIEDTIME + " INTEGER, " // modified time - + SHAREDWITHME + " INTEGER" + ");"; // shared with me + + SHAREDWITHME + " INTEGER, " // shared with me + + SHAREDOWNER + " STRING" + ");"; // shared owner public static final String[] COLUMNS = { _ID, // id NAME, // name @@ -147,7 +151,8 @@ public interface TracksColumns extends BaseColumns { ICON, // icon DRIVEID, // drive id MODIFIEDTIME, // modified time - SHAREDWITHME }; // shared with me + SHAREDWITHME, // shared with me + SHAREDOWNER }; // shared owner public static final byte[] COLUMN_TYPES = { ContentTypeIds.LONG_TYPE_ID, // id ContentTypeIds.STRING_TYPE_ID, // name @@ -178,6 +183,7 @@ public interface TracksColumns extends BaseColumns { ContentTypeIds.STRING_TYPE_ID, // icon ContentTypeIds.STRING_TYPE_ID, // drive id ContentTypeIds.LONG_TYPE_ID, // modified time - ContentTypeIds.BOOLEAN_TYPE_ID // shared with me + ContentTypeIds.BOOLEAN_TYPE_ID, // shared with me + ContentTypeIds.STRING_TYPE_ID // shared owner }; }