Friday 24 July 2009

v0.9.2.1 released this evening with a couple of bug fixes that slipped through the net. You should be able to use the app without having any location providers (wireless and GPS) activated on your phone without it crashing! It is very important that Creelcard can be used out in the field without having the benefits of internet access or even location providers. Of course, if you can find a fishing spot with wifi or 3G access, so much the better ... use the View Maps button on the Catch List screen to see your current phone location in relation to catches from a previous trip.

Wednesday 22 July 2009

v0.9.2 released with Maps & GPS support

The obvious next step for Creelcard had to be using some of the great location and map features of the Android platform. After some long hours getting my head round the unfamiliar Location and Maps APIs, helped by some great tutorials, we have just released the next version with some cool new geo features.

You can now specify the position of a Location record (e.g. a fishery, lake or riverside) and / or individual catches by either using your current phone GPS location, manually selecting from a map, or simply by typing in the co-ordinates yourself. For when the catch position is not known exactly, you can also define the approximate circular area in which the catch happened by resizing the area circle overlayed on the map. We will use this feature in future updates (setting proximity alerts, suggesting nearest "favourite" catch locations etc).

Please let us know how you would like to see Creelcard's features improve .. we would really appreciate any feedback. You can contact us by email (support (at) creelcard (dot) com), using our Get Satisfaction site, or by leaving comments on this blog.

More soon!

Tuesday 14 July 2009

Returning data from an Android Activity called from startActivityWithResult

I spent hours scratching my head in various disguises, until I finally found this email thread. Basically, the results set in the Activity.setResult() method is fixed and transmitted back to the calling Activity when the child Activity's finish() method is called. Using setResult in onPause is too late .. the child activity will already be going through a finish action (e.g. on a Back button press). What happens is that the parent Acticvity onActivityResult gets a callback with ResultCode? = 0 (RESULT_CANCELLED) and the intent data is always null. Argh!

The answer is to override the child Activity's finish() method, to ensure that the setResult is called before the super.finish() method is called.

@Override
public void finish() {

if (doSaveOnPause()) {
if (save()) {
// Set the insert / edit action result to OK
mSuccessfullySaved = true;

}
}

if(mSuccessfullySaved) {
// Notify the caller Activity that the user successfully
// edited or inserted the data set
Intent _intent = new Intent("inline-data").setData(mUri);

Log.d(TAG,"Completing, with result="+RESULT_OK+", data="+_intent.getData().toString());

setResult(RESULT_OK,_intent);
}
else {
// Notify the caller Activity that the user has canceled the activity
// without altering anything
Log.d(TAG,"Completing, with result="+RESULT_CANCELED);
setResult(Activity.RESULT_CANCELED);
}
// Prevent onPause to re-save the record again during the close down of the activity.
mSuccessfullySaved = false;

super.finish();


}

Friday 10 July 2009

Welcome to Creelcard

Welcome to Creelcard.com, the home of the Creelcard leisure fishing trip organiser and diary application for Android.

We launched the first v0.9.0 version with basic record keeping functionality to get the ball rolling, but we have many more features in the pipeline to really utilise the capabilities of Android and the internet. More on this very soon!

Please email us, post comments on this blog, or use the excellent GetSatisfaction site to contact us and the Creelcard user community to suggest how we can improve and enhance the application and service.