Today was surprisingly busy for a Veterans Day. Of course, the best way to celebrate Veterans Day would be for veterans to get the actual day off while everyone else works. Until that happens, I’ll settle for getting the day off. The only reason I got this particular veterans day off is because I am in Pensacola teaching the Navy this week. They took the day off, so we did as well.
I celebrated by sleeping in, followed by a visit to the Omni fitness center. This is a Walmart-sized gym a couple miles from our hotel. It has an enormous open floor with every kind of weight machine you can imagine, plus a wide variety of cardio equipment. I got in a great run while watching “The Enemy Below“, a movie I will have to share with the boys when I get home.
Upon returning to the hotel, I started working on the next feature I wanted to add to the LDS Tools application. I have mostly confined myself to fixing bugs, but I wanted to add a “popover” controller to allow users to quickly copy address, e-mail address, or phone number when viewing a member’s record. This seems straightforward enough, although as I dug into it a bit more it turned out to be slightly more challenging. The trick is to use what Apple calls a gesture recognizer to notice when the user holds down a touch on the screen for a long period. The recognizer calls your own code when it fires, and you’re responsible for deciding what to do; in my case, I wanted it to display the popover with a single menu command.
My first attempt displayed the popover correctly… everywhere, not just for the cells that actually contain data. For example, a long press on the “add to favorites” button would trigger the popover. This wasn’t what I had in mind, but before I could fix it, I had to interrupt my programming to join my coworker Apolonio for lunch at Chick-fil-A. He had never eaten there before, but I daresay he will be enough air again. He was particularly impressed that someone came over to our table to ask if we wanted our drinks refilled. As a lifelong California resident, he isn’t used to Southern courtesy.
After lunch, we headed for Naval Air Station Pensacola for the scheduled performance by the Blue Angels. I had seen the Angels about six weeks ago, which did absolutely nothing to diminish my interest in seeing them again. Apolonio had never seen them, so we were both eager by the time we got to the seating area along the runway. The Blues put on a fantastic show; the weather was warm and clear, the crowd energetic and appreciative, and the flight maneuvering flawless. I could, I would happily go back tomorrow or Saturday to see their two upcoming performances, the last ones of the season. However, I have a previous engagement: finishing up my week of teaching exchange to her students at Corry Station.
This class is unique in that they seem to have more cohesion, more esprit de corps, than previous classes have. This is resulted in some great discussions in study hall. These young sailors are willing to help each other with explanations, corrections, or information sharing: exactly the kind of behavior that will help make them successful in the fleet. It’s really a pleasure to work with them, especially when I can see that the content and exercises I’ve been working on for the last few months are successfully teaching them some of the complexities of exchange.
Anyway, after the airshow I came back to the hotel and resumed working on my popover problem. It turns out that the solution to my problem was to always accept the user’s long press, but only to display the popover if the user was pressing within one of the data items I cared about. For example, if the user presses down on one of the action buttons and holds the press, I just ignore it. If they do the same thing on the displayed phone number, I display the popover. Once I figured that out, thanks to some of the sample code on the Internet, the actual process of copying the phone number (or whatever) was trivial. For an encore, I think I’ll add support for copying or pasting the member’s picture, but that will require a bit more work that I don’t think will fit into the current release schedule.
Now I’m officially done for the day. I plan to spend a few minutes reading some more of Mike Mullane’s wonderful autobiography, Riding Rockets, and thence to bed. Happy Veterans Day to all who have served our nation!