Client/Titanium issues

Upstream issues in Titanium's public bug trackers which affect us. We've also got a couple issues in their private support tracker; should make sure that any software issues remaining are also cross-referenced in the public trackers.

Items listed as patched are fixed in our Titanium Mobile custom runtime build, which we're using to build iPhone and Android client releases.

Our Desktop releases are currently built with the stock Titanium Desktop 1.0.0 runtime through Appcelerator's cloud packaging.

Desktop

 * (wishlist) 38511 - In-place application updates without having analytics turned on. Looks like there is built-in functionality but you have to be using their analytics module.
 * (wishlist) Helpdesk 16691 Lighthouse 450 Issue tracker 2498 - Ability to automatically launch the client after install
 * (weirdness) 19301 - Can't set alphanumeric version info (e.g.: "0.9 Alpha"); it has to be numeric
 * 17031 - No way to check for native notification services
 * 16911 - No geolocation services Also see: 21531 (HTML5 geolocation supposed to be in the next version of Titanium Desktop)
 * (workaround) Helpdesk 39721 Notifications can't resolve file:/// URLs. Ideally, we want to download icons to the application data directory and pass in URLs to them to notifications. Workaround is to download them to the app resources directory which notifications seem to be able to access via app:// URLs. This directory is supposed to be read-only even though it isn't.
 * Helpdesk 41571 - Titanium.App.getSystemProperties returns empty object instead of props from tiapp.xml (was hoping to use this for setting default values, such as theme in tiapp.xml instead of having a separate config file).

 Fixed 
 * Cloud packaging has stopped working for our app. Helpdesk 42521. Looks like we need to start doing our own packaging. Cloud packaging hasn't been working for us since before 9/10/10. Related Lighthouse issue? -- Appcelerator seems to have fixed this - no explanation yet.

Linux

 * Helpdesk 17451 and Lighthouse 371 - Installer blows up on Ubuntu (symbol lookup error)
 * 303 - Animated GIFs don't animate on 64-bit
 * (library bugs on 64-bit)
 * 26801 - Client wont run on Cent OS 5.5 and distros with older versions of libstdc++ See also: 2420. (Possible work-around is to recompile Titanium Desktop using older libs and distribute a different runtime with our client.)
 * Issue tracker 2404 Helpdesk 39101 - Gigantic notifications on some systems

Mac

 * (wishlist) 155 - Keychain API needed for us to store passwords in native keychain
 * (workaround) 25621 - HTTP basic auth not working under OS X 10.5
 * We seem to have worked around this by doing the auth header ourself; as far as I can tell it's a bug in the version of libcurl that shipped with 10.5, sometimes mucking up auth info when reusing connections. Not 100% sure on that though.
 * (wishlist) About box not customizable
 * (wishlist) Help menu item shows error
 * Lighthouse 54, Helpdesk 41321 - Can't hook or modify existing application menus/menu items

Windows

 * Ticket 2743 and Helpdesk 44021 - Application icons look terrible (pixelated and such). Lighthouse 231 may be a related. I tried a GIF images but that caused the application to freeze on Win32, and so I opened: Lighthouse 457 and HelpDesk 44781
 * notifications require additional package install (Snarl)
 * HelpDesk 56511 - Win32 online check fails when behind corporate firewalls
 * Worse, it looks like it's getting confused about what to do if there's a proxy configured, once you take the online check out
 * Related ticket: Issue 2410 - Login Issue in Corporate Network

Mobile
Patched


 * MERGED need XML serializer
 * Merged upstream, will appear in Titanium Mobile 1.5.0 :D
 * clipboard access
 * patch on branch, posting on bug (may need more testing for non-text data)

Workaround
 * (workaround) 36281 - TabGroup widget windows can't share a single WebView (Made our own Tab widget to do window management, which is what Appcelerator recommended.)
 * (workaround) data read from file disappears when file is deleted
 * putting off file deletion until after we're done with the data should do... sigh.

Documentation bugs
 * No documentation for Titanium.Blob class on Mobile
 * some Titanium.Filesystem.File methods are actually properties
 * Some attributes on File are not documented (e.g.: size)
 * autocorrect, autocapitalization properties undocumented

Wishlist

Android
Serious unpatched bugs
 * pause/resume not fired on Android
 * crashes due to unsynchronized hashmap access in event listener management

Fixed upstream
 * (PATCH MERGED) Memory leak in DOM proxy wrapper objects (internal cache being removed in 1.5 since it didn't work right anyway)
 * (fixed upstream) photo gallery selection broken
 * (PATCH MERGED) center property not implemented
 * need this for visual feedback effects on touch
 * patch in bug tracker for review
 * regression on firing events from webview in 1.5 -- BLOCKER for updating to the new runtime release
 * patch on test-fixes branch seems to work, submitted upstream
 * is currently fine in 1.6

Locally patched
 * (hacky patch) Android splash screen stretched horizontally in landscape mode
 * http://status.net/open-source/issues/2616
 * working around this with a local hack to center the splash screen instead of scaling it
 * (hacky patch) PRAGMA queries don't return results
 * needed to check for presence of table columns before running ALTER TABLEs

No patch, but workaround
 * (workaround) camera detection support on Android (as workaround, we're assuming all Android devices have cameras. Don't know how this might fail on camera-less devices!)
 * (workaround) ImageView scaling problem affecting site icons on account display
 * (workaround) number formatting sometimes adds unexpected .0 on integers
 * (workaround) camera & gallery fail called from modal window?!
 * (workaround) Need auto loading of multi-density images
 * (then we can add 240dpi and 120dpi artwork for high- and low-res phones... we're manually loading and rescaling tab bar images for 240dpi now)
 * (workaround) disabling touchEnabled not implemented on Android
 * tried to work around with the below...
 * (workaround) events attached to a view don't fire on it; but can fire on child views
 * worked around by using a Label with no text over the touchable area, instead of a View under it.

Wishlist


 * wrapping issues on high-res screens
 * (wishlist) apk package needs to be minimized (current package is ~5mb which is large for Android, since there's usually very limited space for app installation)
 * (wishlist) Support SD card install
 * (wishlist, high priority) notification bar support
 * (wishlist) save newly taken photo to photo gallery not supported
 * cryptic errors from camera in some cases
 * Label property minimumFontSize not implemented on Android
 * toImage functions blowing up with UI widgets - just something to watch out for
 * open dialog should be able to show without radio buttons
 * tempDirectory unimplemented on Android
 * spaceAvailable doesn't actually check free space on Android

Blackberry

 * BLOCKER need XML APIs
 * 28551 - Can't add Blackberry target to existing project

iPhone
Locally patched
 * PATCH DPI detection fix for iPhone 4
 * PATCH getElementById fails
 * PATCH setAttribute not implemented
 * PATCH double-sized images when launching iPhone app on iPad in 2x zoom
 * Local patch ignores the reported screen scaling if on an iPad reporting that it's in iPhone mode, avoiding buggage in iPhone compat mode when launched in 2x zoom
 * http://status.net/open-source/issues/2560

No patch, but workaround
 * Helpdesk 39761, Lighthouse 1680 - ImageViews do not scale images loaded from local filesystem in 1.4.1-dev
 * trying to work around this by disabling use of avatar cache in the accounts dialog, etc on iPhone. Sighhhhhhh
 * Lighthouse 1658 and Helpdesk 38771 Titanium.Filesystem.File.write always returns false when writing binary data - (workaround is to check for the file's existence/size after writing)
 * isExternalStoragePresent misspelled on iPhone and docs as iExteralStoragePresent
 * bad displayCaps.density values on iPhone 2G/3G, iPad
 * worked around by checking DPI directly... which needs our other patch for the DPI on iPhone 4.
 * Can't read file timestamps on iPhone
 * Patched by Appcelerator (r5b269cf) but now returns a Date on iPhone and a long on Android. Easy to work-around tho with a type check. (Need timestamp to figure out which files to delete (the oldest) when trimming our homegrown avatar cache)

Serious unpatched bugs
 * pause/resume don't fire at right time on iphone, get dupe resume events

Wishlist
 * (wishlist) iPhone+iPad universal binary support so we can package a single iphone+tablet-friendly version in future
 * (wishlist) iOS4 background & local notification support
 * 36421 - general complication: can't stack multiple modal windows
 * (weirdness) 35581 - Logging occasionally completely stops working (very annoying)

Documentation bugs
 * toolbar critical info not documented
 * iPad module docs incomplete
 * TableRowView.editable undocumented
 * doc output generator has crazy hardcoded output path
 * API docs don't allow adding useful version info to methods
 * pause, resume events not documented
 * iPhone system button constants not documented
 * but they're easily findable in the source :D
 * webview.evalJS not well documented