Archive for the ‘Version Update’ Category

Version 0.0.11

April 30th, 2012    Posted in Version Update
 

Changelog

1. BUGFIX: Fixed bug where Capture Route would stop when it temporarily lost control of the GPS.

2. BUGFIX: FixOpenHelper should no-longer accidentally leave any cursors open.

3. FEATURE: Display Route now shows far fewer GPS fixes in order to reduce jagged lines caused by inaccuracy.

4. FEATURE: Display Route now calculates distance travelled and average speed and displays them.

5. FEATURE: Display Route now spreads it’s RouteItemizedOverlay by distance instead of by number of fixes, this should even them out better.

Download Version 0.0.11

Details:

1. Although it was meant to be persistent when the LocationService lost control of the gps system (for example when another application used the GPS while it was running) then it would be automatically restarted but it would not know which route it was recording to. I worked-around this by storing the current route in SharedPreferences and pulling it out again if the service was restarted.

2. I was seeing some warnings about cursors being left open, these were not causing errors because I was closing the Open Helper that created them. I changed how some of my functions in FixOpenHelper were written to stop this by using  DatabaseUtils and closing unneeded cursors.

3. I wanted to start measuring distance and the best way I could think of was to measure the distances between the points and add them up. Before I could do that I had to get rid of points which were scattered all over the place, if I measured those the distance would seem much greater than it was. My solution to this was to edit DisplayRoutesActivity to reject any point that was less than 3 times it’s accuracy away from another point. This straightened the points out nicely.

4. The distance is now measured while the route is being processed to the screen, this is why the full length is only displayed on the final point. The average speed is calculated in FixOpenHelper by using an SQLite function to average all the speed values recorded for the route, because of this it is unlikely that the average speed will match up with the distance and time displayed.

5. Because I now have a measurement of distance I was able to change how my itemspreader (which spreads the clickable dots along the routes) works, previously it placed an Overlay Item every 25 accepted fixes, now it instead places a point whenever it is more than 300m from the last point.

 What’s Next:

  • I’ve been thinking about how I’m going to implement target selection, and the way I see it I’ll need two new tables, I need a table of routes, which will store meta information about the routes, and a table of targets which will store the target locations.
  • Implement a thread to calculate the length of a route after it is recorded.
  • Create a custom dialog for the clickable Overlay Items so I can better separate qualities of the whole route, from qualities of the point selected. I tried to separate these by putting the former into the title of the dialog, but it has a limit to the amount it can contain.
Comments Off

Version 0.0.10 Raphael ‘Satellite’ Savina Edition

April 13th, 2012    Posted in Version Update
 

A few days ago I was talking to my good friend Raphael Savina and he made a feature request:

Raphael wanted to be able to view his Routes against a satellite image instead of a map.

I had already discovered that you could easily turn satellite images on and off with this code:

MapView.setSatellite(true/false);

So I made a deal with Raphael: if he would draw me a satellite I would write the code and get the version up ASAP.

Raphael promptly supplied me with a lovely drawing of a satellite and I made the necessary changes to DisplayRouteActivity and displayroutes.xml to turn the icon in the titlebar of Display Routes into a functional button.

And the result is Version 0.0.10 of Shortest Walking Route.

Note:

I’ve edited all of my icons to better fit into the Menu Icon Guidelines, which has resulted in the application icon going from being slightly bigger than it should be to slightly smaller.

What’s Next:

  • Adding a Target function so you can tell Shortest Walking Route where you are going and have it terminate the gps capture when you get there.
  • Tuning down the number of GPS fixes captured to more efficiently represent a route.
  • Finding more useful information about routes to display
Comments Off

Version 0.0.9

April 8th, 2012    Posted in Version Update
 

With Version 0.0.9 I have finally implemented a ListView to display new gps fixes as they are captured. This took quite some doing and there a lot of changes because of this.

Now instead of the CaptureRouteActivity taking care of location services they are managed by a custom service called LocationService. When LocationService receives an update it does not directly update the ListView but instead stores the fix in the database and calls:

contentResolver.notifyChange(baseUri, null);

This (through FixProvider) notifies CaptureRouteFragment that an update is available to route which is being displayed in the ListView, CaptureRouteFragment then updates as soon as it can.

Because of these changes Capture Route should now be much more stable and reliable. Also you can now use Capture Route in landscape mode.

On the Display Routes side not much has changed, I have removed the giant burritos from my April Fools gag and fixed a bug where when removing routes the last route would stay visible after you had removed it. (but only until you touched the screen)

This occurred because the command:

MapView.invalidate();

Was not being called to let the MapView know that it had changes it needed to display. I have remedied this.

Version 0.0.9 is available for download, and I would greatly appreciate any feedback.

What’s Next:

  • Adding a Target function so you can tell Shortest Walking Route where you are going and have it terminate the gps capture when you get there.
  • Tuning down the number of GPS fixes captured to more efficiently represent a route.
  • Finding more useful information about routes to display
Comments Off

Version 0.0.8 Burritos And Blues Edition

April 1st, 2012    Posted in Important Note, Version Update
 

 I am very excited to announce that with Version 0.0.8 Shortest Walking Route is now officially supported by Dublin’s Fastest Growing Burrito Chain: Burritos And Bues!
As part of this exciting new partnership you can now see the locations and opening hours of Ireland’s best burrito shops whenever you look at the Display Routes screen  of Shortest Walking Route!

Install Version 0.0.8 on your Android device right now to see for yourself!

Note:
  • If you have used previous versions of this application you may notice that your routes look more messy in Display Routes. This is because I have disabled filtering of GPS data when it is going to be displayed and started filtering it while it is being captured instead. This should save space in the database (as useless data is no-longer kept there) and help resolve some stability issues.
  • In order to let new users get the most up-to-the-minute information about Burritos And Blues opening hours, I have changed the application to allow users to go directly in Display Routes without capturing a route first.
What’s Next:
  • Fun!
  • Excitement!
  • Really Wild Things!
  • ListView!

 

Update: The maps weren’t working properly in the version I originally posted. Should be fine now.

Comments Off

Version 0.0.7

March 28th, 2012    Posted in Version Update
 

Just a quick post to link to the latest version.

 

Download Here.

Comments Off

Version 0.0.6

March 24th, 2012    Posted in Version Update
 

Just a little update this time.

I noticed a problem with the Capture Route ending routes and starting a new one when the next GPS fix arrived.

This was caused by a bit of code I put in to the onStop() to clean up when the application was killed from the outside. I’ve moved this to the onDestroy() which should still retain the function without disrupting how the application is working. This change brought to you by the Android Activity Lifecycle.

I’ve also added a persistent notification to be displayed while Capture Route is running. This should help prevent people accidentally leaving the GPS capture running and wasting battery life.

Unfortunately because I implemented the notification using a future compatible tool called NotificationCompat.Builder, it has tripled the size of Shortest Walking Route to 161.22kb.

So please, download and install Version 0.0.6 and let me know what problems  you find or features you want.

What’s Next:

Back to work on filtering out inaccurate results and getting the paths to display information about themselves when they are tapped.

Comments Off

Version 0.0.5

March 19th, 2012    Posted in Version Update
 

Quite a few updates in this version:

Capture Route now has a Start/Stop Button at the top which will allow you to record routes as long as you like.

 

I’ve now implemented Display Routes, which can be accessed from SWR’s home screen once you have captured at least one route with Capture Route.

Display Routes will allow you to select the routes you want to see and it will draw them to screen in random colours. Unfortunately the colours are not stored, so every time you change your selections the colours will be randomly changed.

 

The route selection is done with this alert dialog which is set to always appear in the top right corner of the screen. This is to allow users on larger devices like Android Tablets to see the changes they are making on the map while they are making them.

These choices are persistently stored in Android’s Shared Preferences as characters in a String, which is my way of getting around the fact that Android does not allow arrays to be stored in Shared Preferences.

Please give Version 0.0.5 a go and let me know if you run into any issues.

If you are interested in how this application works please follow the link to GitHub on the right-hand side of the screen. The full source-code is available there. If any part of it is unclear to you, please let me know.

Note:

  • Capture Route has no way of stopping itself yet, and there is no notification to tell you it is running in the background. If you have it running you will see the icon to tell you that GPS is running.
  • I’m not filtering or smoothing the routes when placing them on the map, so you will see some very low-accuracy data and jagged, indirect lines.
  • Later on I’m going to be changing this so all routes will have a target and the data you record with this version will have to be discarded, so don’t record anything you want to keep forever!

What’s Next:

  • I need to work on getting information about the routes to pop-up when you tap on them.
  • I’ll also be looking at cleaning up the routes when they are displayed. (I think not displaying the very poor accuracy fixes will be a good starting place).

Comments Off

Version 0.0.4

March 7th, 2012    Posted in Version Update
 

This version sees the SQLite Database being written to and a value being read from it.

Now the database has all of the GPS fixes written to it.

When CaptureRoute starts a new Route it will read the highest Route Number stored in the database and record the new Route as 1 more than that.

The notification ( called a toast, because it pops up) will let you know the new Route Number.

Also there is now a Progress Spinner on the top bar of Capture Route to let you know that it is still running and I have disabled screen rotation to stop it from restarting. (After I have switched the main content display from a TableView to a ListView I will come back and have a look at getting it to work in landscape mode)

Version 0.0.4

Note:

This installer is hosted on dev-host.org because I still can’t figure out how to host files on this website.

I chose dev-host because:

  • they don’t throw captcha’s at you
  • they aim there service at legitimate file owners
  • their ads are relatively unobtrusive

What’s Next:

I’ve actually been working on 0.0.5 for some time already, so look forward to:

  • Recording GPS Fixes for longer than 60 seconds
  • Finally seeing something on a map
  • More pretty icons and interface
Comments Off

Version 0.0.3

February 13th, 2012    Posted in Version Update
 

Sorry about the gap between this version and the last.

I’ve made quite a few changes:

  • The application now has a Home Screen from which you can launch Capture Route.
  • I’ve created an icon for the application and a menu icon for Capture Route.
  • The first gps fix shown on screen is now a previously cached fix.
  • The application now requests a network fix once a second and a gps fix once every half-second.
  • The network fixes will only be shown if no GPS fixes have arrived or if the last GPS fix was more than 2 seconds ago.
  • The Capture Route screen now shows the accuracy and speed of travel for each fix.
  • The Target SDK for this project is now set to 11, which has magically made the UI more attractive.

This version is the start of appearing different on different devices, so if you have a device running Froyo (Android 2.2) or Gingerbread (Android 2.3) let me know how it looks. I’ve decided (despite initial misgivings about adding complexity) that I will implement Android Fragments in Shortest Walking Route so it can have a attractive modern interface.

If you do try this application please add a comment and let me know if it worked and what device you are using.

Version 0.0.3

Note:

This version will request GPS fixes for a minute, if you want to restart it, simply go back to the Home Screen (by pressing back) and run Capture Route again.

 

What’s Next:

Storage: The next step is the one I have been dreading slightly, but it’s time I figured out how to store my location fixes. I’ve decided to try an SQLite database, but as I have never used SQL before this is a step into the unknown. Wish me luck!

Comments Off

Version 0.0.2

February 5th, 2012    Posted in Version Update
 

The second iteration of Shortest Walking Route is designed to gather and display Network Location and GPS Locaton

Screenshot of Still Data

data for 5 minutes.

The screenshot here shows the application displaying location data captured while I was standing still, previously when I had tested the application while still it had poured out pages and pages of coordinates.

I was worried something was broken until I realised that the application was showing less data because it had such a firm GPS fix on me that it knew I wasn’t moving. When I had tested it before I had been in a building and it’s fixes had been sporadic enough that they could be movement.

 

Version 0.0.2

Note:

This version only updates it’s display when a GPS Location fix comes in, so Network Location fixes will not display on their own.

It’s timer runs by checking if it has run for five minutes yet every time a GPS Location fix arrives, so if it cannot get a fix it will continue to run past 5 minutes until it does.

 

What’s Next:

Firstly I would like to look at some of the other things that the GPS system gives you, like accuracy, and direction.

Secondly I will also break down the data and look at the difference between fixes instead of at the fixes themselves.

Thirdly I will figure out a way to roll the Network and GPS Location into one usable variable.

Comments Off