This fixes an issue where widgets weren't being updated. It
was caused by creating widgets with the wrong package id.
Keyguard used to be identified with package "android" when it
was running in the system proces. Now that it's separate, we need
to explicitly pass in the package name for keyguard ("com.android.keyguard")
when we allocate app widget ids.
Change-Id: I4911be8533ea4d24c64669fe98d03f39a684f55a
Keyguard currently relies on being in the system process to grab the
given user's widgets. When we split keyguard into a new process,
it will need to have access to user-specific info to instantiate a
specific user's widgets. In order to accomplish this, we add an
explicit userid to each binder call as well as new permission
check to allow keyguard access.
This also fixes a potential race condition of having an incorrect user id
due to an async call to change the user. Every binder call now has a specific
user id. The user id is either the calling process user's id or an explicit
one passed by applications like keyguard. It is created once when an
AppWidgetManager is instantiated and remains for the lifetime of the object.
Change-Id: Iec767fb399677b3cf2f9c0993e06b49951eb1f66
New layout for widget picker is still not up to
final design, but this change prepares all the
backend work
Also, remove use of features filter from the
picker, since this is being removed from the API
Change-Id: I9b332e22cf34b98c20c720602c920d28aed01d6c