* commit 'dc4beb483eb14f1b56154125c67b780802756572':
Make implementation of isEmpty consistent with implementation of getCount in HeaderListViewAdapter
* commit 'e7ec492f13355888c90b3f08fbc66e49dda7ed24':
Make implementation of isEmpty consistent with implementation of getCount in HeaderListViewAdapter
Regression caused by patch a607223f34
If an item click handler results in the ListView becoming detached
from the window, the performClick runnable could be executed twice.
Null out the mTouchModeReset runnable before running the click handler
so that it is not run by the detach handler.
Change-Id: I2fab60232027bb4876f9912088e0ffb9b17d308c
The way that the Gallery was adding views (which it does in layout)
triggered a requestLayout() because of a call to setLayoutParams()
in View.addViewInner(). This tripped up the new logic that makes
layout-in-layout work, causing layout to be called on every frame,
even when the app was not doing anything.
The fix is to call the appropriate version
of requestLayoutInner() to tell it to skip calls to requestLayout().
Issue #7714495 requestLayout in endless loop
Change-Id: Icdcd886d30e4dd972da36bc6e50732c7213530c5
Also fix a bug where anchored Spinner popups would not properly move
during a layout update.
Bug 7555978
Change-Id: If8dc22b0b40b14789a4e3bdecdeb376984923899
All three of these are interrelated!
* Allow broken MeasureSpec values. The long-standing implementation
of MeasureSpec.makeMeasureSpec has been to add both values rather
than masking/or-ing the values together. Some old code relied on
this, such as if it mixed up size/mode params.
* Disable ImageView adjustViewBounds allowing the view to grow beyond
its initial size. A bug in RelativeLayout in the presence of the
above MeasureSpec fix causes this not to work properly in apps.
* Allow RelativeLayout to send overflowed/bogus MeasureSpec values
when measured with MeasureSpec.UNSPECIFIED mode. Some apps have
custom child views that do not properly handle UNSPECIFIED
measurements, but the exact overflow semantics caused this to
generate AT_MOST $REALLYBIG MeasureSpecs for those views instead if
they were placed inside a RelativeLayout in a scrolling container.
Change-Id: I977a5f1ba5637f0cba3d26a70139e2bcd021fc9c
mTouchModeReset should be executed when AbsListView is detached from window.
If not, when the AbsListView is re-attaced to window,
the child can retain a pressed state.
You can see this problem easily when you double-touch an item of
option menu very quickly.
Change-Id: I5aaa1fd5b95847efb2f5f1b5ec7cabe8eb85b237
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
The system process has no ApplicationContext and consequently was
returning null. Use the base Context in these cases.
Bug 7673699 fixed.
Change-Id: Ie2ab856bb0baefff44775a12bef7802320f72656
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
Bug: 7660973
RemoteViewsAdapter will now store the userId as part of the cache key
when caching remote views to optimize for orientation changes.
Change-Id: I7c4e52b3995d4f56ebfa35aa9516327e182ad892
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