Skip to content
  • Peter Serwylo's avatar
    Don't implement 'update' for installed apps, use replace (Fixes #14) · 71db322b
    Peter Serwylo authored
    There were some weird edge cases that couldn't quite be pinned down,
    whereby installing an app would result in a unique key violation being
    hit. One example was when somebody was installing an apk from a file
    manager. It seems that this doesn't trigger a PACKAGE_CHANGED, but
    rather a PACKAGE_INSTALLED. The end result is that it attempts to insert
    a record that already exists in the installed apps table. Because we
    have a unique key constraing on the appId, it breaks.
    
    This commit changes the way that we insert installed app details.
    Instead of inserting some times, and updating other times, we always
    insert. If we hit a unique key violation, the row is deleted, and then
    the new values are reinserted.
    71db322b