tree 7611574f12e387e4ba48e0270f0e9dbafc0c8e96
parent c026e8ef0b0209342686f83aea983eda03dc252b
author Jeffrey Sharkey <> 1238535477 -0700
committer The Android Open Source Project <initial-contribution@android.com> 1238535477 -0700

AI 143776: am: CL 143622 Correctly startListening() for widget updates when first boot completes.
  During the first boot upgrade, LauncherProvider will deleteHost() to clear out any old appWidgetId bindings.  During the first boot, Launcher calls AppWidgetHost.startListening() to watch for widget updates.  It also calls loadUserItems(), which loads data from LauncherProvider, triggering the database creation and deleteHost() call.  Because deleteHost() removes any existing callbacks, any future widget updates are dropped on the floor.  (This can currently be solved by rebooting, because there isn't an upgrade on subsequent boots.)
  This bug was particularly evident on vfpioneer-userdebug builds, as there aren't any configuration changes that cause Launcher to be destroyed and recreated.  (When destroyed and recreated, we startListening() again, and LauncherProvider doesn't call deleteHost().)
  To handle this special case, Launcher creates a ContentObserver pointing at a specific URI, which the LauncherProvider notifies when the AppWidgetHost is reset through deleteHost(), allowing Launcher to correctly startListening() again.
  Original author: jsharkey
  Merged from: //branches/cupcake/...

Automated import of CL 143776
