FlashNotify 1.3

I’ve had a lot of reports from people that their phone flashes for no reason, and the most common cause is that they have old “unseen” missed calls. They’ve simply cleared the notification, but the calls are still marked as new until you actually go and look at them in the dialer app.

This new version of FlashNotify will give you a persistent notification while it thinks it should be flashing, and will tell you why – Hopefully, this should make the diagnosis a little easier 🙂 Touching on the notification will take you to the messaging app, or the missed calls list, depending on the outstanding events.

On the subject of adding diagnostics, there’s also now an option to send me some logs, which should help me to diagnose problems remotely. This integrates with the “Android Log Collector” application, freely available on the market, and should make my life a whole lot easier.

FlashNotify 1.2.1 Now Available

I know I said updates would be infrequent, but I’ll admit that this has taken a longer break than I intended 😉 Pesky real-world-work has got in the way (our project is screaming towards release), and I’m afraid that this has taken a back-seat for the time being.

1.2.1 is a minor release which removes the remote crash reporting, and the associated “Full internet access” privs on the application. I’m always a little nervous when an app requests all kinds of privileges I don’t think it needs, and I’m keen not to be an offender 🙂

Also worth noting that there’s a new FAQ bit on the FlashNotify page, which should answer a few questions… I get quite a lot of email about this at the moment, and I’m really sorry that I’ve not been able to get back to you individually. I’ll keep trying though 🙂

FlashNotify 1.2

Well, that didn’t take long – I’ve now added a “Stop flashing after…” option, as requested on the Market, and thought that was worthy of a version bump.

Not much more to say really… Just got to wait and see if I get any further automated crash reports for this one, and go from there 🙂

Various FlashNotify Activity

Quite a bit going on with FlashNotify that’s not been noted here. I added a remote crash reporter, which has given me a fair amount of useful debug from various phones, and uncovered a resource leak that really shouldn’t be happening. I’ve now resectioned the missed call code, and we should all get on a bit better from 1.1.5 onwards.

Also recently fixed an FC that would occur when the phone was low on memory when we were active.

Next up – I’ve had a feature request for a “Stop flashing after x minutes” setting, which seems pretty sensible to me… Might even call it 1.2 🙂

Tested FlashNotify on HTC Hero

I’ve had a few reports of nothing working on a number of phone models, so I’m attempting to grab as many phones as possible and test them. Currently, I’m certain that the HTC Magic and Hero devices work, and I’m actively seeking people with other phones that I can test properly.

Feel free to get in touch if you’ve got another phone and you don’t mind debugging things 🙂

Stonking start there

So the first version went out without the right security permissions. This may explain why so many people are listing it as not working… Solid testing performed, as you can tell.

Still, 1.1 up now, and we’ll see how we go.

FlashNotify on PC Browsable sites

Now available

FlashNotify is now out there in the market…Useful links:
From your phone…
And a donation app – £2
And another – £5
None of the online market lists seem to have caught up yet – links to follow for them.

Problems with Android’s WakeLock when on battery

For the sake of anyone else who may fall over this one at some point in the future…

I was trying to bring the phone out of sleep periodically using a Timer. That timer executes code that looks something like:

PowerManager pm = (PowerManager) this.ctx.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "FlashNotify");

This worked beautifully when plugged in via the USB debugger, but the moment I took the phone out of the cradle, everything stops. Blast.

It seems that when the phone drops into sleep mode when on battery mode, it enters a deep sleep state, where even the FULL_WAKE_LOCK can’t wake it up. The magic to prevent this – Before the phone makes it to the deep sleep state, grab a PARTIAL_WAKE_LOCK to keep it just about conscious. While this is potentially a little unfriendly on the battery, that’s kind of the point of this application, and we’re only going to do it for a little while.

(Vague conjecture – Maybe the OS is doing something akin to PowerManager.goToSleep to manage this – The API docs say that this overrides any wake locks, which seems a little heavy handed. Maybe that’s just wake locks which are currently active. I could dig around in the Android source, but I frankly can’t be bothered 🙂 )

This remedies the only major problem left with deploying this app now, and it’s currently running full time on my own phone. Just got to hook the settings screen up so that it works properly, and all should be ready to roll 🙂

Packaging properly

Still working on this, but (as ever) the little things like settings screens and packaging the app are taking more time than planned. Always the way, eh?