alidiepuit / osmtracker-android

Automatically exported from code.google.com/p/osmtracker-android
GNU General Public License v3.0
0 stars 0 forks source link

Ability to work with multiple tracks #54

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Currently the current track is stored in an internal database, then exported to 
GPX when "stop and save" is pressed. The database is then wipped out in order 
to record a future track.

There is no way for the user to interact with the database for example to 
re-export a previous track, which could help in a number of data loss crash 
issues like #22, #27, #39, #48, #49  ...

To solve this it would be nice to keep all the tracks in the database, and 
provide an "track manager" UI to delete/re-export previous tracks.

Original issue reported on code.google.com by nguillau...@gmail.com on 1 Aug 2010 at 3:31

GoogleCodeExporter commented 9 years ago

Original comment by nguillau...@gmail.com on 21 Aug 2010 at 2:32

GoogleCodeExporter commented 9 years ago
I'd like to help implement this.

In order for the user to help keep track of which ones they've already 
exported, and to give meaningful names in the db to the track, how does this 
sound?

- Track table: add field for "export time"; possibly also add "end time"

- ExportTrackTask.exportTrackAsGpx: set export time in Track table

- TrackManager: display that time, or display a checkmark if exported, in 
TracklistAdapter

- Activity to view details (and set track name) from TrackManager
    Start time
    End time (if field added)
    Start/end latitude/longitude
    Number of points
    Track name

- TrackManager: display track name instead of time, if not ""

If this approach seems to make sense, please comment, and I can write code for 
it.

Original comment by jdmo...@nand.net on 18 Sep 2010 at 12:20

GoogleCodeExporter commented 9 years ago
Hi,

Thanks for your feedback and your patches, I really appreciate it.

I'd like first to release a version with the Track Manager prior to adding 
anything new (My next obvious plan was to add ability to name track too ;-) ) 
or integrating new patches.
Having the track manager working properly will allow easy integration of new 
features like naming tracks, or uploading them to OSM, etc.

I'm nearly done but the main issues remaining I think are:
* The notification system: Should the user be notified if he is on the track 
manager screen (so still inside the application), but a track is currently 
recording ? 
** If he's notified on the Android home screen (or while not running 
OSMTracker), when he clicks on the notification should he come back to the 
Track Manager screen, or on the track logger to add new waypoints ?

* Navigation between screens while tracking:
** If I'm currently tracking and I hit "back" I'll go back to the track 
manager, and I should have a way to return to the track screen for the 
currently active track
** It could be done by clicking on the track in the track list, but could be 
inconvenient if the active track is the last of the list and you need to scroll 
down to reach it. More over the active track should probably be highlighted or 
something ?
** It could be done with a menu option maybe, replacing "New track" by 
"Continue" or something like that ?

If you have any opinion on these points I'd be happy to hear it ;-) 
Unfortunately any of these solutions are trivial and quick to develop and I 
don't want to lose the little time I could spent going on the wrong path !

Original comment by nguillau...@gmail.com on 19 Sep 2010 at 4:59

GoogleCodeExporter commented 9 years ago
Hi,

Glad to help; this is a great program, it's been very helpful in my local 
mapping, and it's fun to contribute to it!

Here's what I think, based on the feel of the app so far:

* My opinion on notification is, clicking on the notification should take him 
to the track logger if he's currently recording, or the Track Manager otherwise.

* On the Track Manager screen, I think that if they have a track currently 
recording, it should hilight that in that row of the list; maybe a color change 
or an icon, along with text "- Currently recording" on that row.  When the 
activity loads, it should probably scroll to make that row visible.

* I think that we should provide both options from the Track Manager to an 
active track: click on it, and also replace "New" with "Continue" in the menu.

Just let me know what I should start with to help!

I agree that 

Original comment by jdmo...@nand.net on 20 Sep 2010 at 12:46

GoogleCodeExporter commented 9 years ago
If you can help with the TrackManager things it would be cool :) Let me know 
how it goes or if you prefer to do only specific items on that list.

I'll try to look at the notification side meanwhile.

Thanks !

Original comment by nguillau...@gmail.com on 20 Sep 2010 at 11:10

GoogleCodeExporter commented 9 years ago
Sounds good, I'll start on TrackManager.

Original comment by jdmo...@nand.net on 20 Sep 2010 at 11:34

GoogleCodeExporter commented 9 years ago
I just added a bit of code for managing the "active" status of a track, as a 
starting point. Be sure to svn update your working copy but feel free to take 
another approach if you want to.

Original comment by nguillau...@gmail.com on 20 Sep 2010 at 1:04

GoogleCodeExporter commented 9 years ago
I'm moving along with TrackManager and related; I think for my approach, it's 
more intuitive if I store the active track ID in a current-settings table, 
instead of a field in Track.

Original comment by jdmo...@nand.net on 22 Sep 2010 at 10:52

GoogleCodeExporter commented 9 years ago
This is almost ready to submit.  For now, I've decided to stay with the 
"active" db field; we should discuss whether to change that to a table entry.

I did add 1 field and 2 indexes.  In order to keep us in sync on the database, 
here is the DatabaseHelper; I added an onUpgrade implementation that keeps the 
existing data.

Original comment by jdmo...@nand.net on 24 Sep 2010 at 12:26

Attachments:

GoogleCodeExporter commented 9 years ago
Here's the patch for TrackManager, TrackDetail and related, versus the latest 
svn (r206).

Notes:
- The track's export status, and the current track, are marked in the list with 
green or yellow dots from android resources.

- This patch includes the same content as db-upgrade-and-v11.patch (seen above).

- It also includes a bug fix for TrackContentProvider.update that you've 
probably already seen and fixed in your copy.

- I've included French and Spanish translations for the new trackmgr_* and 
trackdetail_* strings.

- Because of Unicode encoding issues, please check 
DataHelper.formatDegreesAsDMS to make sure the degrees symbol is correct (°, 
code 176 in iso-latin-1)

Please let me know what you think, and apply if it looks good, so we can be in 
sync.

Original comment by jdmo...@nand.net on 27 Sep 2010 at 12:19

Attachments:

GoogleCodeExporter commented 9 years ago
Thank you very much ! I'm currently reviewing and integrating it.

Original comment by nguillau...@gmail.com on 30 Sep 2010 at 11:55

GoogleCodeExporter commented 9 years ago
I just integrated it and released a new version ("Release early, release often" 
as they said).

I've made various changes from your patch:
* In DatabaseHelper: upgrading cleverly the database wasn't required previously 
because it was deleted and recreated from scratch for each new track, so it 
didn't matter if a column was added or modified in a newer version, that's why 
onUpgrade() was just calling onCreate() (and it was quite convenient !). I 
removed your code in this version but starting from now it's important to be 
able to upgrade as users could have existing tracks in their DB, so I guess 
I'll reintroduce it for the next DB upgrade.
* I removed the ability to display and rename an existing track: I prefer to 
have it for a future release (See issue #63) and I was unable to have the 
rename feature working (but I didn't try very hard).
* Thus I removed the "getTrackInfo()" method and the "formatDegreesAsDMS()", 
for now. For the Unicode issue I guess we could just use the Unicode "code" in 
the source code (that makes a lot of "code" in a sentence) like "\u00B0".
* I removed huge license headers in some file, as license is already in the 
COPYING file.
* Thanks for the indexes in the DB, that's a good point.
* Thanks for fixing various bugs in TrackContentProvider, I didn't notice those.

I'll close this one for now, feel free to re-open it if needed.

Thanks again, I really appreciate it !

Original comment by nguillau...@gmail.com on 30 Sep 2010 at 1:30