This removes code used to verify the userid's were consistent, which
is no longer needed.
Fixes bug 8167800
Change-Id: I592e4bc1158fb7775bd31ae8a26c1782b60f0fa0
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.
Fixed bug where widgets sometimes didn't show up for secondary users.
Moved permission check in AppWidgetService into getImplForUser()
Refactored to use userid from context associated AppWidgetManager instance.
Clean up AppWidgetHost to use userId from Context.
Remove redundant userId check in checkPermission since it's handled by
ActivityManager.handleIncomingUser()
Removed redundant userid check.
Upload after rebase...
Change-Id: Iae3e20f2b342c323bb58768b3d22051510f8268b
If you install a lockscreen widget app on a secondary user, lockscreen fails to find it.
There were several places where the correct context and userId were required under the
covers - AppWidgetHost, AppWidgetHostView and RemoteViewsAdapter.
Set the user id in the required places and use it to query the package information.
Bug: 7662835
Change-Id: Ife482c8ab2a2e601650b7cfe2660e88d3b8f2050
This was initially about the Clock widget crashing repeatedly on some
devices with multiple users. Turned out that there were race conditions
when switching users that could result in remote views of one user calling
back to the RemoteViewsAdapter in keyguard that in turn sent an incorrect widget id
to a different user's widget, resulting in a crash.
Since KeyguardHostView is instantiated in the same process for different users,
it needs to carry a user identity to pass along to AppWidgetService so that
remote views services were bound to the correct user and callbacks were attached and
detached properly.
Added some aidl calls that take the userId to do the binding properly. A more
complete fix might be needed in the future so that all calls from Keyguard carry
the user id.
Also, there was a problem in comparing host uid for secondary users, since Settings
for a secondary user has a different uid than keyguard. Not an issue on single-user
systems. Changed the host.uid comparison to accomodate for the secondary user.
Bug: 7450247
Change-Id: Idbc36e3c60023cac74174f6cb7f2b2130dd3052c
Many media files and source code files were marked as executable in Git.
Remove those.
Also a shell script and python script were not marked as executable.
Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
-> Also fixing a typo in AppWidgetProvider clone() -- this was the cause of
the "couldn't load widget". It wasn't getting expressed before for various
reasons.
Change-Id: Ib7114565a414d66facd8b4baeb97d5a71e96b5e9
-> vertically resizable widgets behave are sized to fill
-> non-vertically resizable widgets use the small size all the time
-> providing size call-backs. ensuring that we don't send excessive /
incorrect size callbacks. These are expensive. Had to clean things
up to ensure we only send the truth, and not bounce around.
Change-Id: I8038de01096906526e2622c6f1cd24c171e3a4ec
Also, remove ability to filter widgets by feature
in appwidget picker in anticipation of api change
Change-Id: I325de0b98f03d3a250758d504229ea27794b5330
-> This is a good change to the widget framework that I've wanted to
make for a while, but issue 7174198 triggered the immediate need.
Change-Id: I3f267e0e67f2d9f28920bb53973af365a3c9e0ba
-> Persisting certain appwidget options
-> Adding ability to specify appwidget options on bind
so as to avoid AppWidgetProvider update call with no
options.
Change-Id: I5631039f19f1822b8e123b559b6353c880c0192e
This updates AppWidgetHost and AppWidgetHostView to do a better
job at refreshing widgets and their host views. It now allows
an OnClickHandler to be specified when creating the AppWidgetHost
which allows it to correctly update AppWidgetHostViews when needed.
Change-Id: I710c1d00a8d145bf3a9fd5f5691885bec9d1c7e4