This would have caught the race condition bugs that caused the "specified child
already has a parent" IllegalStateException (bug 23896857).
Change-Id: I3b408d21113237b0c89a0a7161f504596212bd58
This should be the last keyboard CL.
- Fix bug: couldn't focus All Apps button in some cases when the All
Apps column was skipped over. Also added test case for this.
- Stop explicitly passing countX and countY to handleKeyEvent, as
these had to match the matrix dimensions anyways.
- Rename createSparseMatrix() - there were 3 methods of the same name,
but all had different purposes. This is confusing both from a
readability standpoint and also when looking at stack traces.
Change-Id: I08ba8411674fcea43a608856c114dee8dbd22398
- Handle NextPageFirstItem as first focusable item in reading order
- Handle PreviousPageLastItem as last focusable item in reading order
- Check the hotseat after the workspace in both cases above
- Dpad horizontal navigation (left/right) uses these as a last
resort (Rule3) to guarantee an item takes focus if a page exists
Note that it is necessary to search for a focusable item because
widgets are not yet focusable.
Bug: 25591057
Change-Id: I953648bd76c657d660a38427fdd4108bf9963c23
The content provider is the first component started with the main process,
which makes it ideal for initiating LauncherAppState
Change-Id: I03db82a8949ad1376af53a0033592f421dbf0b15
- Pressing Tab wraps around to the first item from the folder name,
and vice versa when pressing Shift+Tab.
- When tapping off the folder while editing the text, the folder
requests focus. We handle the following cases from that state:
- Pressing an arrow key or Tab gives focus to the first item.
- Pressing Shift+Tab gives focus to the last item.
- Fix slight corner case where moving from folder name to an item
didn't update mIsEditingName to false. So when clicking off of
the folder, it gave focus to the folder (as mentioned above)
instead of closing the folder like it usually does when icons are
focused. Not a huge deal, but still worth fixing.
Bug: 25687579
Change-Id: I1bec844c8ccd09529a11b9e3a1d92b3bdf7b2eb3
Because going to overview mode scales down the workspace, it was
thinking the touch was moving even though your finger was still. If
the "movement" was large enough, it was treated as a scroll, causing
jank. This was especially prevalent on tablets due to their size.
Bug: 25779718
Change-Id: Idb7833e0087bd24ca840f6afc451bf221f6bc047
(cherry picked from commit c984cde008)
Now instead of crashing, it says "Couldn't load image."
Bug: 25326319
Bug: 25656670
Change-Id: I71471f4b26f7c23dee40b60772ddd798f67b409e
The extra folder cell space added in ag/790800 looks bad on phones in
portrait mode, so reverting it here. However, we keep the extra space
on tablets or phones in landscape mode, since it provides more room
for long app names (bug 22462641).
Bug: 25662215
Change-Id: I2a37b884458ee557c9b8cff0c3edef16bfc50efb
The first of these cases seems like they should already have been
present, and the last couple allow you to switch pages by hitting
arrow keys on the edges of the hotseat.
Bug: 25589939
Change-Id: I9378b209250f7dc376fa97efde979bcee2979537
The All Apps button creates a number of edge cases, mainly because it
causes the hotseat to sometimes have an extra column than the workspace.
Previously, we sort of swept these problems under the rug by simply
ignoring the All Apps button if other icons were present in the hotseat,
with the assumption that those other icons should get focus instead of
the All Apps button. (If possible, we want to stay in the same column
when moving from the workspace to the hotseat.) But this doesn't always
work, as in the attached bug where the hotseat doesn't get focus at all
when the All Apps button is an obvious candidate for it.
By adding a specialized column in the focus matrix for the All Apps
button, we ensure that moving down to the hotseat stays within the
original column when possible, while also allowing the focus to switch
to the All Apps button if appropriate. Furthermore, we take care to skip
over the All Apps column when necessary in order to maintain all
previous functionality.
Bug: 25590522
Change-Id: I5d6a8ee69de8834314c4689246fe7d54329b2eef
There's a case where hitting the left/right arrow in the first/last
column wouldn't give focus to an icon on the next page because it is
vertically too far from the first icon to be considered. This makes
for a bad user experience, because there is no way to switch pages
with the keyboard. So now we brute-force search for an appropriate
icon if none was found in this case.
Bug: 25434120
Change-Id: Ifdead0e3b458717ccb33e2f0ec7c15f1fcce4b95
> As of android M, the platform somtimes throws DeadObjectException
instead of TransactionTooLargeException
Bug: 25305031
Change-Id: I3a98db8a5041aef01640d16f9beb71b72bf598f1