The pool management APIs were simplified and using them requires much less
code than implementing your own pooling. Using common pooling logic is
also less error prone. This change swithces AccessibilityEvent and
AccessibilityNodeInfo to the new APIs.
Change-Id: I2dcfe2e1b0b0be5f89bd92359766ae3d6f8a143b
Before to implement a pool of objects, the pooled class had to implement an
interface which was leaking the pool management APIs. This requires
hiding APIs - inconvenient at best. Further, each client had to
implement the chaining of pooled instances which means adding a couple
of member variables which are manipulated by the implemented interface
methods. As a consequence the client is aware of how pooling is
implemented which is error prone and breaks encapsulation. Now the
pool objects are responsible for managing pooling state via reusable
wrapper objects and the clients are oblivious of how pooling is done.
Creating a thin cached wrapper for each pooled object has minimal
performance impact while making the code more maintainable. Actually
implementing of the old version of the APIs was taking as much code
as implementing the pooling yourself.
Also clients had to implement a poolable manager whose responsibility
was to create new instances and provide callbacks when an instance
is added to or removed from the pool. Now, the clinet class should
create a static member for the pool and expose obtain/aquire and
release/recycle methods in which it should create a new instance if
the pool did not return one and clear the state of the host when
it is returned to the pool. Updated the JavaDoc with a best practice.
The pooling was composed of several interfaces and classes scattered
over a few files, now all this is in a single small file.
Update all usages of the pooling APIs in the framework.
Also one had to write a poolable
manager which
Change-Id: Ib8dc286040eb3d7cb7d9668ba76fead05cb97647
This sequence of operations would prevent the background from
changing:
setBackgroundResource(R.something)
setBackgroundColor(aColor)
setBackgroundResource(R.something)
The last call would be no-oped.
Change-Id: I436a33599c88e35f6f36bdd63e9c256c9219e052
Fix to allow requestLayout() during layout needs to disable
the "currently doing layout" flag while it processes the requests
that came in during layout to allow these initial requests to go
through unhindered.
Change-Id: Ied5ff1589224792f153cc10f65e004f14724523d
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
This adds a means of determining when the device is in safe mode,
as required by keyguard to disabled some features.
Change-Id: I31d357e6738c92e1837f9e0263e5f3f4de66315a
* commit '00b5ed8fa9f2f38e15894519f3afeaae56e97e94': (21 commits)
Clearing connected message in stop fixes 7401152
bouncer: hide more text and frame less.
Recover from badly behaving 3rd party secure cameras.
Show bouncer mode for Slide mode in keyguard if widget isn't expanded
Making challenge come back if within the same gesture you return to the original page (issue 7422999)
Ensure edge swiping is enforced immediately upon showing keyguard (issue 7453156)
Fix issue 7468224, make sure to size pages if page changes
If a default keyguard layout isn't specified, fallback to the default layout
Use better signal for camera launch.
Render camera widget on a background thread.
Fully block user interactions when transitioning to camera.
Fixing up overscroll / hints on tablet
Cleaning up the overscroll effect
Updating UI to new design, widget shouldn't expand until page settles (issue 7467435)
Making screen hints just side page outlines, as per new design (issue 7467968)
Clean up separator string in keyguard view
Attempt to fix MENU key issue.
Update DevicePolicyManager documentation with new keyguard flags
Polish user selector accessibility.
Fix pages disappearing (issue 7456885)
...
1. A view is visible to the user if is attached to a visible window,
its visibility is VISIBLE, its alpha is not zero, all its
predecessors have visibility VISIBLE and non zero alpha, the
view is not fully covered by predecessors and is within the
screen.
The function that computes whether a view is visible for
accessibility purposes was not taking into account the
predecessors' alpha.
bug:7454355
Change-Id: I7609f4366da260091d68e5b25832498843fd3d0a