...while listening to TTS example
This was a nice one. What was happening is that immediately upon
being created, the activity was starting another activity in a
different process. The second activity would never show, just
immediately exit. However the original activity had time to
pause and get into stopping itself before the second activity had
come back to the activity manager to say it was going away, resulting
in the activity manager asking the original activity to resume.
At this point the activity manager's state is that the second
activity is finishing and gone, and the original activity is
resumed. However in the app process the original activity is
still working on stopping itself, and it eventually completes
this and tells the activity manager. The activity manager now
changes its state to STOPPED, even though it is actually resumed
and that is the last thing it told it to be, and it is now
proceeding to set itself in that state.
This would result later in the activity manager sending an
unnecessary state change to the application. In the case of
the screen here, we next do a rotation change, the activity
manager thinks the current state is STOPPED not RESUMED, so it
tells the application to relaunch the activity in a new config
but not in the resumed state. Now it does the whole "start a
new temporary activity" thing again, at which point it tries
to pause the original activity again, and we have an unbalanced
onPause() call to the app and it falls over.
Change-Id: I38b680746f4c61ae30e7ce831e1de187adf60902
Automatically create a submenu for items with ActionProviders that
provide a submenu when the item was not initially configured to have
one.
Bug 6493376
Change-Id: I27218e2ab205e87534f235eb04042b185d99d143
1. Now the views considered during the accessibility focus search
are the ones that would get accessibility focus when thovered
over. This way the user will get the same items i.e. feedback
if he touch explores the screen and uses focus traversal. This
is imperative for a good user experience.
2. Updated which focusables are considered when searching for access
focus in ViewGroup. Generally accessibility focus ignores focus
before/after descendants.
3. Implemented focus search strategy in AbsListView that will traverse
the items of the current list (and the stuff withing one item
before moving to the next) before continuing the search if
forward and backward accessibility focus direction.
4. View focus search stops at root namespace. This is not the right
way to prevent some stuff that is not supposed to get a focus in
a container for a specific state. Actually the addFocusables
for that container has to be overriden. Further this approach
leads to focus getting stuck. The accessibility focus ignores
root names space since we want to traverse the entire screen.
5. Fixed an bug in AccessibilityInteractionController which was not
starting to search from the root of a virtual node tree.
6. Fixed a couple of bugs in FocusFinder where it was possible to
get index out of bounds exception if the focusables list is empty.
bug:5932640
Change-Id: Ic3bdd11767a7d40fbb21f35dcd79a4746af784d4
Whenever a stream type is muted, the progress bar in volume panel
is at 0.
If a stream is muted by ringer mode and does not control ringer mode,
the progress bar is disabled.
Pressing VOL- when in vibrate or silent mode resets the last audible
volume of ringtone stream (music strem on tablets) to 0.
VolumePanel implementation:
- Always prefer AudioManager APIs over AudioService APIs when available on both.
- Do not use AudioManager.shouldVibrate() (deprecated).
Change-Id: I57fcb19ada4e8d729b6b41d668496562ebe340c3
Bug 6404882.
The supplied code in this bug sets up a table with 2 columns and then
tries to add a component in column 5. Earlier attempts to fix this
by 'doing what the user meeant' had unwanted side-effects. This CL is
intended to defend against all ways to register invalid LayoutParams
and throw IllegalArgumentExcpetion when any column index falls outside the
range [0 .. N] where N is the number of columns. It also includes the
symmetrical check for rows.
Change-Id: I958a6d16035889cd954b78108773426e8b6b6d95
Bug 5859620
Simplify text selection to use left/right rather than
base/extent. In combination with webkit change, this
fixes RTL selection. The handle directions are properly-
facing when the text direction is the same for both
sides of selection.
Webkit Change: I3362c5034ce08ce1517a86882c13b78aff35fe3f
Change-Id: Ib88ed2327182ba5b47b3e41584cbe944d05c8ada
The window manager now performs the crop internally, evaluating
it every animation from, to be able to update it along with
the surface position.
Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
1. The initial design was to have some accessibility gestures
being handled by the system if the gesture handling access
service does not consume the gesture. However, we are not
sure what a good default is and once we add a default handler
we cannot remove it since people may rely on it. Thus, we
take the simples approach and let the accessibility service
handle the gestures. If no gestures are handled the system
will work in explore by touch as before.
bug:5932640
Change-Id: I865a83549fa03b0141d27ce9713e9b7bb45a57b4
SurfaceView didn't recompute the transparent region
when the INVISIBLE state (as opposed to GONE) was involved.
Bug: 6467123
Change-Id: I05930bd568a345331840c1ad8d9123ef4904c04f
* moved View#isVisibleToUser to protected with @hide
* added a new View#isVisibleToUser(Rect), so that a portion of
the view can be tested for visibility
* NumberPicker will report its concrete class name
* code to append virtual children was at wrong place
* boundInScreen for increment and decrement buttons are reported
wrong
Change-Id: Ic5d644b3e1efa15b1f0537907c8cdd4ce43a97c1
This fixes a problem where the bounds of the view weren't being
calculated properly when a separate outer radius was specified.
The code now takes the maximum of the ring drawable's width/height
and that specified in the resource files.
This gives it the best default look on all devices while still
allowing minor tweaks.
Change-Id: I5daa40ff4f14653c8cc89b39102816afb976e4f7
This refactoring sets the stage for a follow-on change that
will make use additional functions of the power HAL.
Moved functionality from android.os.Power into PowerManagerService.
None of these functions make sense being called outside of the
system server. Moving them to the PowerManagerService makes it
easier to ensure that the power HAL is initialized exactly once.
Similarly, moved ShutdownThread out of the policy package and into
the services package where it can tie into the PowerManagerService
as needed.
Bug: 6435382
Change-Id: I958241bb124fb4410d96f5d5eb00ed68d60b29e5
1. Fixed errors in the accessibility node cache.
A. The cache was not catching the case when the current window changes as a
result the user touch exploring it. As a result the cache had nodes from
more that one window but the node ids are not unique thus causing a mess.
B. The node info tree was prefetched regardless if a prefetched node is root
name space (i.e. view ids - not accessibility ids - are namespaced) while
the prefetched nodes were taking this into account. As a result there can
get disconnected subtrees in the cache.
C. When an event for a property change such as focus was received the cache
we were removing the source node. As a result there may be disconnected nodes.
D. When a node was added to the cache and an older version exists there was
no check if it will point to the same children and parent. As a result if
the state of the node has fewer children the subtrees rooted at the no
longer present children will stay disconnected in the cache.
E. When a node got accessibility or input focus the old one in the cache was
not removed. As a result you may have a state with more than one access
or input focus.
2. Added integrity check enabled only on user builds when a specific flag is set
for the cache which checks whether:
A. All nodes are from the same window.
B. All nodes are connected.
C. There are no duplicates.
D. There is only one input focus.
E. There is only one accessibility focus.
3. The reported accessibility node info tree was stopping at the root namespace
boundary which is not correct. The reported tree has to reflect everything
on the screen that the user can see such a workspace with widgets. The root
namespace is added to avoid clash of view id but the accessibility ids are
unique no matter if the view is inflated from a remote view.
4. Added calls to notify the accessibility layer when a preoprty that is interesting
for accessibiliy has changed.
bug:6471710
Change-Id: I069470d91f209ba16313fa6539787a55efa3512e
This change does not alter the behavior of the system except to
enable the use of system properties to override SQLite configuration
options for debugging.
Bug: 6484633
Change-Id: I8908a3ba07910a1193396e2e45791e9faa7be349