Thats a good workaround, thanks. It's lame that we have to consider such alternatives, though.
Originally Posted by templetonryecy
I will try a non-Sense ROM next to see if the HTC calendar is affecting notifications, but first I have to code up a HTC IME user-dictionary extraction algorithm. I looked inside its dictionary file but haven't quite determined the record format. I have determined the record bounds, so that's a start. Once I have the extracted words, I will be able to use the User Dictionary Manager from the Market to import the list into the stock android keyboard. Hm... maybe I should consider just loading the HTC keyboard on the other ROM.
Anyway, I will update the thread with my observations once I have tested the other ROM for a while. It will be interesting if it is HTC's fault about the unreliable calendar notifications...
02-24-2011 11:28 AM
Whoa, that really sucked.
Originally Posted by Symbiote
The file format is insane: it's a mix of big and little endian record semantics, which says it all for those of you who code. Anyway, now I have code that extracts all of my HTC Sense keyboard UDB words, but I can't confidently say it's 100% for all corner cases. For example, when I stress tested my UDB via the DINC UI, I found that it silently destroys existing words in the dictionary if it runs out of space (FTW!). However, the HTCIME UDB defines "running out of space" as "not finding an adequately-sized space to store the new entry in the first half of the file". The other half of the UDB is filled with zeroes and is therefore wasted. All the time. It's a fixed size file.
As far as I can tell, the UDB for the Sense keyboard is some ported crap from a previous "feature phone" (I hate that term) precompiled library. I decompiled the HTC Sense keyboard code, but most of its interaction with the UDB uses native invocations to the precompiled lib. No disassembler I found would touch that lib, so I reverted to reverse engineering. My "sense" is that the coders for HTC got the lib, didn't have full documentation (and/or care), and slapped together some code that "seems" to work with the underlying library.
Before you feel the urge to leap to HTC's defense, ask yourself why ")(HTC_RUDB_v00.04.03_EricJ" is in your dictionary and offered as a completion when you start typing. Sadly, I now know why. Don't be fooled: there is no purpose for that "word" to be there, and the phone's user dict UI will happily kill that entry if you pressure it by entering enough words (the UDB still works fine once it silently nukes this and other words). Also the HTC programming "gurus" added 12 "secret" words that won't show up in your user dictionary UI list, but are still in the file. (When was the last time you used the word "Plurk" or "nous", eh?)
I have been considering writing some code to synthesize an HTCIME-compatible UDB file from a plaintext file of user words (ie. HTC keyboard user dict import); however, my original impetus for this project was to extract the words in order to facilitate a migration to a vanilla ROM. If I move to CM7—as is the plan—I doubt I will ever construct the "HTC Sense Keyboard" import/backup app functionality that seems to be lacking in the Market.
Back on topic: Calendar notifications remain unreliable. Maybe CM7 will fix this for me.
Last edited by Symbiote; 04-17-2011 at 06:21 AM.
Reason: Link to explanation of term, if anyone cares.
Issue persists with CM7. Just had my first scheduled reminder appear. It fired precisely 28 minutes later than it should have. The phone has been sitting in the same place for hours and hasn't been used in that interval. It is unplugged, on battery, running stock CM7 with no strange utilities or task killers.
I guess Google/Android just can't provide a reliable calendar system.
I never touched the calendar app until reading your message. I should say that I'm running MIUI-1.4.15-1c, not CM7.
I set a reminder for 15:03, and at 14:53, the default 10-minute reminder went off. I fully expect that in two minutes from now, the reminder will chime again.
Sure, that would be expected behavior. My examples are due to unexpected behavior. My most recent example was an explicit 24 hour reminder that fired 23h 32m out instead of at 24h 00m. An earlier example was an 24h event notification that fired at 21h 12m out. I have also had many notifications fail to fire altogether (sorry for forgetting to call you on your birthday, Mom, it wasn't my fault).
Originally Posted by jpr
All these events are on various calendars synced from GMail/Google Apps. The events weren't recently created, and have typically been present on the phone for weeks/days. In the most recent example, the event had been synced down after the CM7 installation and had been confirmed as present on the phone hours before it was due to fire.
I am having the exact same issue on my Droid X! Please reply and let me know whether you have ever found a fix or work around. I am combing the web looking for ANY solution! This is even happening when I use a calendar that does NOT sync with Google. The alarms that usually fail are all daily repeating alarms. Usually the one-time alarms don't fail.
Totally interested in the work you've done on the HTC custom dictionary
I'm super interested in the work Symbiote did regarding the HTC custom dictionary. *bump*
Can anyone with knowledge on this PM me?
FWIW, I did some research on this issue and talked a fellow with links to ROM developers, and discovered that at least one of the custom ROMs for rooted Gingerbread OS on the Droid X FIXES this problem Motorola so graciously foisted upon us. I am now running Cyanogen Mod 7 ROM on Gingerbread .650, and my alarms have been sounding perfectly and reliably ever since. It's been about 3 weeks and so far not a single missed alarm. So for any of you who are rooted or willing to go that route, you might be able to get the same result with your Droid Incredible. You would have to find out from whoever is developing ROMs for it.
I wanted to follow up and concur: CM 7.1 has been much more reliable for me. There has been some wonkiness, but overall I have been receiving much more consistent calendar alerts. CM 7.0.x had more issues.
Originally Posted by Zoandroid
I still don't fully trust it, because it almost botched yet another birthday reminder alert last month, but it has gone from "totally worthless" to merely "not entirely trustworthy". How's that for an endorsement?
Last edited by Symbiote; 01-23-2012 at 12:33 AM.
If I set a pass-through event, or if I have a reminder time, more than any other set of 24-hour, before the sound of it, and then 25 hours at the appropriate time.