Remove some abstraction-breaking magic in ActionBarView and replace it
with proper resolution of the icon/logo when creating a window. The
old implementation relied on the ActionBarView's context being an
Activity.
Bug 9171554
Change-Id: Idbbb1942622195dcb55e8119f2d64287b07bb509
This is a new kind of key/value mapping that stores its data
as an array, so it doesn't need to create an extra Entry object
for every mapping placed in to it. It is also optimized to reduce
memory overhead in other ways, by keeping the base object small,
being fairly aggressive about keeping the array data structures
small, etc.
There are some unit and performance tests dropped in to some
random places; they will need to be put somewhere else once I
decided what we are going to do with this for the next release
(for example if we make it public the unit tests should go in
to CTS).
Switch IntentResolver to using ArrayMap instead of HashMap.
Also get rid of a bunch of duplicate implementations of binarySearch,
and add an optimization to the various sparse arrays where you can
supply an explicit 0 capacity to prevent it from doing an initial
array allocation; use this new optimization in a few places where it
makes sense.
Change-Id: I01ef2764680f8ae49938e2a2ed40dc01606a056b
- Removed IActivityManager.getStacks() since getStackBoxes() is better.
- Made createStacks operate relative to StackBox instead of TaskStack.
- Made resizeStack into resizeStackBox.
Change-Id: I7a0e1f4e34f399b4fd1180c60cc3989f9c2433f3
First step in permitting StackBoxes to be manipulated by user.
Necessary for Configuration changes coming down.
Change-Id: I4029926a35e4fdc59a5759fd9e4bae10bb308413
- Add all changing windows to mResizingWindows when an ActivityStack
is resized.
- Stop calling TaskStack.setBounds if the bounds haven't changed.
- Make moving a task from one stack to another work properly.
- Eliminate unused methods and redundant variables in WindowState and
WindowStateAnimator.
Change-Id: I3a950c777bcc50cdeced150d44423d4d0b38af4a
The screenshots were capturing the entire screen. Now they are limited
to the stack containing the activity.
Add debug for stack states.
Change-Id: I6d47cd37091bfdfd94e7abe89826b7ba8cb69b51
Restore over aggressive deletions from ag/305620.
Also remove over specification of debug member variables.
Change-Id: Id637d0dbece169d27271aabd714d34d449bfb050
- Put wallpaper behind all other windows.
- When moving a task to the top or bottom of a stack, move all of the
other tasks' windows on the stack to the top or bottom with the task.
Change-Id: I0821341dfd602c9240c685e954dac42678132d4a
- Replace calls to ActivityStack.resumeTopActivity() with calls to
ActivityStackSupervisor.resumeTopActivities().
- Move dim layers from display scope to stack scope. This applies to
both the animation background dim layer and the FLAG_DIM_BEHIND dim
layer.
- Move windows on stacks that are not targeting wallpaper above the
wallpaper. Otherwise wallpaper placement hides the non-focused stacks.
Change-Id: Ic6b97ac6b094672bb1ddac17ce46ea58c738f073
This introduces four generic thread that services can
use in the system process:
- Background: part of the framework for all processes, for
work that is purely background (no timing constraint).
- UI: for time-critical display of UI.
- Foreground: normal foreground work.
- IO: performing IO operations.
I went through and moved services into these threads in the
places I felt relatively comfortable about understanding what
they are doing. There are still a bunch more we need to look
at -- lots of networking stuff left, 3 or so different native
daemon connectors which I didn't know how much would block,
audio stuff, etc.
Also updated Watchdog to be aware of and check these new
threads, with a new API for other threads to also participate
in this checking.
Change-Id: Ie2f11061cebde5f018d7383b3a910fbbd11d5e11
- Putting the stack frame above the highest app window layer ends up
putting it over the IME when the caret popup is showing. This puts
the stack frame layer above the highest non-child window layer.
- Also change the timing so the layer isn't applied until all other
layers are also being applied.
Change-Id: Ic5f142998822ac1e3890a2943cda7fc86a7e7974
Missed a spot where an activity that is launching another was not
being paused. Fixes bug 8640130. At least in one case.
Release mWindowMap as soon as it is no longer needed.
Change-Id: Id2c63d3d715b98741e2ebe3c9985cb1e9ca5ffbc
Grabbing StackTapDetector before grabbing mWindowMap doesn't play well
with grabbing mWindowMap and then StackTapDetector.
Change-Id: I40daa4c940930b1ebbb587edc1958e84321d6d7f
- Save and restore WindowManager stack states.
- Maintain ActivityManager activity states based on the stack
the activity is in.
Fixes bug 8646641.
Change-Id: I16c76c7708ab49121c3884a7e5bf219898b92d3f
- New InputEventReceiver for detecting taps outside of focused stack
boundaries.
- Fixed bug that wasn't pausing the non-focused window when returning
home.
Change-Id: Ia51d312a7c029abc01eb5df1102814cc29d33b47
- Did not handle the case where mTaskIdToTask returned null.
Fixes bug 8646178.
- updateInputWindowsLw() was being called in removeWindows
immediately after it was called in performLayoutAndUpdateSurfaces.
Change-Id: I1b8bcfadcc93f8c6638fd4247b426af77feeee23
- Fix back button behavior with two stacks. Stopping activities were
held in that state indefinitely. This change causes IDLE_NOW_MSG to
be sent immediately for the last activity in a stack.
- Touch in non-focused stack was being ignored because of focus tests
in AbsListView.
- Change the focused stack when the activity focus changes. Renamed
mMainStack to mFocusedStack to reflect this.
- Resume all top stack activities when resuming.
- Assign intent task to ActivityRecord if it doesn't have a task.
Fixes bug 8433463.
Change-Id: I8d3c806234511697bc209ab99890730ffa514d20
- Add taskId parameter to createStack() so stacks are pre-populated
with a task.
- Keep track of stack access order in DisplayContent so getTasks
returns in MRU order.
- Set touchableRegion in InputMonitor so modal touching does not
extend beyond stack boundary.
- Fix stack merging so that deleting a stack results in a new
stack the size of the two children.
Change-Id: I62a6ba0a34f34dd7ec866b440bf04595379e19e8
Split stacks and move tasks between them. Layout the windows
according to the new stack split.
After layout content rectangles are known split the available area
between all stack boxes. Then use those values for future layout.
Provide stack contents to ActivityManager.
Change-Id: I9746e6185445633810d506be514d0b7b540a7f99
One for home activity(s), one for other activities. Coordination
between the stacks is handled by the ActivityStackSupervisor.
Change-Id: I11395edea501d2f84a18a6a8bced1ce3d0797dad