This Sunday, the Beaumaris Singers are joining many forces veterans at Cosford Air Force Base to entertain them as they celebrate Veterans' Day.  We'll be singing works from our repertoire, including Walton's "Jubilate Deo", and more modern numbers such as "Somewhere over the rainbow" in a lovely shmaltzy arrangement for SATB.  Plus leading a sing-along of old favourites.
 
 
A bit of a hiatus recently, while Elaine and I spent ten days in France, staying with some friends in Alsace and then a few days in Ornans, near to Besancon.  Not brilliant weather, and somewhat spoilt by Elaine developing a nasty cold and cough which kept her in bed for two days.  But we had some great meals, brought back the odd bottle of Cremant d'Alsace, and saw some wonderful scenery.

I noticed on my return that fully 30 people have now downloaded PCDB SuDoku Lite, and 15 have it still installed.  But no-one, to date, has gone the whole hog and bought the much more sophisticated full version.  Stlll, the tablet market is expanding by the day, and more and more people are discovering the benefits of applications designed to run on tablets rathern than mobile phones.

Work on PCDB Waypoints has focused on tidying up the Import Database feature, so that it isn't possible to invoke it by mistake.  And I've started to look at ways of using data from the app to overlay Google Earth.  It would be even more useful it I could overlay my Navionics charts of the UK and Holland, but Navionics don't seem to be very willing to allow this yet.

A slightly related activity is updating all my charts, and reading up on the pilot books, for our trip to Northern Ireland later in the Summer.  Planning for that is now pretty complete and a full crew arranged, including Chief Seadog Monty.
 
 
Great concert last night: "Jubilate", with music from coronations through the centuries.  "Zadok the Priest", of course, and "I was glad when they said unto me", with the "Vivats!" that Parry added for the coronation of Elizabeth II.  Also some less well known but lovely Elizabethan pieces including "Fair Oriana" by Robert Jones and "Come, Blessed Bird" by Edward Johnson.  And a Byrd piece, "O Lord, make thy servant Elizabeth our queen".

Plus "Jubilate Deo" by Walton.  All finished with a rousing chorus of Jerusalem and two verses of the National Anthem for the audience, with a bit of mumbling going on in the second verse.

My second concert with the Beaumaris, and most enjoyable.  Not a lot on over the summer, apart from a concert for forces veterans at Cosford airbase on 30th June, but then a very full autumn.
 
 
I can now reveal some first screenshots of the Android PCDB Waypoints app.  This is making great progress, and most of the important tables and supporting screens have now been ported from MS Access to Android and SQLite.  Most importantly, I can import the Access database tables, so PCDB Waypoints is getting a good deal of scaled-up testing.  That includes 344 routes, 2182 waypoints, 580 charts and 510 "places" (starting points or destinations).
Picture
This is the current startup screen.  It provides options, via buttons on the left-hand side, to display other information, but contains some basic stuff about the currently selected boat, which is used to calculate estimated times for routes and voyages.  It also uses the tablet's GPS to display the current position, which in this case is rather far from the sea!  Note that the position is displayed via a new Android widget called LatLong, which takes into account the user's desired representation (LLD, LLDM, LLDMS) and automatically handles changes to the components of a position to deliver merely the updated latitude and longitude values back to the App.  It saves the app from having to take these values apart to update the degrees, minutes, seconds and N/S or E/W buttons.

Picture
This shows a selected voyage, with its dates.  Note the list of available voyages on the left hand side.  Not also the ComboBox used to pick the boat on which the voyage will or did take place; this is an upgrade on the pseudo-ComboBoxes used in the current version of PCDB SuDoku Solver and fully supports a "not in list" capability as a callback.

Picture
This screenshot shows the details of a waypoint, in this case one I used on a trip to Ireland a few years ago.  Again, not the use of the LatLong widget to display the waypoint's position and support changes to it.  Also ComboBoxes for the waypoint's type (Icon) and the Folio, or geographic area, in which it lies.

Picture
This shot shows the list of waypoints associated with a route, in this case from East Ferry marina in Cobhto Kinsale which is the culinary capitol of Ireland.  It includes the "Cork 7" waypoint shown above.  Each waypoint is shown with its distance and bearing from the previous one, and the total distance is shown at the top.
There's more work to do yet on the presentation and layout of this screen, bu the data is there.

So it's well on the way.  Hopefully this app will be working and robust to support our trip to the Antrim coast later this summer!
 
 
Success at last.  I still can't work out how to get from a ListItemDropDown item to the owning ComboBox.  I thought at one point that getRootView() would do it, but no such luck.

No, the answer in the end hinges on the fact tat I developed the ComboBox widget and accompanying class, so I can do what I want with it.  One thing I can do is pass the ComboBox's TextView to the OnItemSelected callback, instead of the item selected from the list which is the default.  If I can find out the TextView in this way, I can get its ViewHolder and from there to the data held in the specific ComboBox.  After that, it all falls into place.

Su substantial progress today.  I can set up a list of Waypoints associated with a particular Route, populate it, define the order of Waypoints, and work out the distance and bearing from each Wayoint to the next and then display the total number of Waypoints in the Route an the total distance to travel.  All good stuff.  One or two more things to do with Routes, such as the ability to delete a Waypoint from a Route, and I can then start deploying this technology to the other main functions in PCDB Waypoints.

Then on to the really important things.  Updating my charts before our voyage to the Antrim coast in Northern Ireland in Caledonia this summer!
 
 
 
 
They say you can do anything in Android.  But there's one thing I can't find out how to do.  It doesn't seem unreasonable, but Andoid doesn't seem to have anticipated it yet.

I've implemented a ComboBox which works OK.  Now I want to implement a list of Waypoints associated with a particular Route.  The ListItem for this list is thus complex, and includes a waypoint number (so you can specify the order in which the waypoints are reached) and a ComboBox that specifies the waypoint.  Android is  very good at reusing the View entries that represent these list items.  It holds informat in something called a ViewHolder which represents the fields in a particular ListItem and any other information I want to hold in it.  You can associate the name of the ViewHolder with some of the controls in the ListItem, including the waypoint number, and if I change that I can update the appropriate database record OK.  But when I select a Waypoint from the ComboBox, I can't for the life of me find the ViewHolder that represents the ListItem that holds the ComboBox.  Instead it seems to pick an item at random, and return that to my code, so a purely random record gets updated.  Not at all what I want.

I'ts taken me severl days to get to this point, and I've learnt a lot bout implemet
 
 
I guess we're not the only people to be plagued by calls of this kind.  A few weeks ago we were getting a constant stream of them.  Asking the caller for his Microsoft payroll number seemed to make them hang up.  The upshot is that, if you're gullible enough to do what they ask, you put your computer and possibly home network at risk.

The WIndows Secrets newsletter recently ran an article on this, at http://windowssecrets.com/forums/showthread.php/141855-Hoax-calls-from-quot-Microsoft-quot.  I particularly liked the photo of one of the call centre staff responsible.
 
 
No posts for a few days as I've been too busy making substantial progess with PCDB Waypoints.  Since sortig ListViews and Fragments, I've now got tables and Activities working for Waypoints, Voyages, Routes, (Chart) Folios, Places, Boats and Icons (representing a Waypoint).  I'm currently revisiting the thornly problem of implementing a ComboBox widget in Android that allows autocompletion and still permits you to define a new item if the one you want isn't in the list.  Android has tended to forget this issue as all the examples of AutoCompleteTextViews they provide use a static list of strings such as countries, and thus adding a new entry doesn't do very much in Android (though I guess it may at the UN).

I want to base the drop-down list on a database table, allow autocompletion from the entries in the table, and provide code to add a new row to the table if what the user types isn't there.  I've made a start and now have a ComboBox class sort of working, in that it compiles OK and appears OK on the screen.  So far, though, it doesn't display the entries from the database and doesn't respond to the "Next" or "Done" keys.  More to do here yet.
 
 
After struggling with Fragments for three days, I finally sorted them on Friday.  The problem was that, in a two-fragment screen, the LH fragment that displayed a list of Waypoints, couldn't see the fragment in which to display the Waypoint details, so when I tried to display the details it fell over.  The solution, in the end, came down to the fact that I was expanding the details fragment in the wrong place - onActivityCreated rather than onCreate!

Once I'd fixed that, I've made some substantial progress.  The Waypoints facility is now working and enables me to store and update waypoints.  I've also implemented the Folios facilities, so that I can test the ability to refer to a Folio from a Waypoint.  The usual (for Microsoft Access) faciliy to define a new Folio from the Waypoint screen is now also working.

With those two facilities up and running, the next stage is to parameterise as much as possible so that the process of adding a new facility is as painless as it is with the Microsoft Access version.  That's tomorrow's task.