Commit Graph

10126 Commits

Author SHA1 Message Date
Tony Wickham 4fc8287c78 Handle more cases in FocusHelper#handleHotseatButtonKeyEvent().
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
2015-11-10 16:52:14 -08:00
Tony Wickham 3cfa97d4c1 Added unit tests for b/25434120 regression.
Change-Id: I55b10274c4bb63ec6fd3138236e78a04e3eac91a
2015-11-06 17:08:57 -08:00
Tony Wickham 0e2f3849b8 Merge "Make sure user can always get to next page with keyboard." into ub-launcher3-burnaby-polish 2015-11-06 18:10:05 +00:00
Tony Wickham 0f6f2b181f Merge "Stop explicitly snapping to page when navigating with keyboard." into ub-launcher3-burnaby-polish 2015-11-06 18:08:44 +00:00
Tony Wickham c2964cb6cd Make sure user can always get to next page with keyboard.
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
2015-11-05 12:54:17 -08:00
Sunny Goyal 1b323794f2 Ignoring DeadObjectException in startListening
> As of android M, the platform somtimes throws DeadObjectException
instead of TransactionTooLargeException

Bug: 25305031
Change-Id: I3a98db8a5041aef01640d16f9beb71b72bf598f1
2015-11-05 16:10:55 +05:30
Tony Wickham 25189851ac Stop explicitly snapping to page when navigating with keyboard.
When an icon grabs focus, it already snaps to its own page, so
the explicit snapToPage() is redundant. And in the case where no icon
will grab the focus, the explicit call puts us in a weird state
because the page snaps but the focus doesn't change (see bug).

(This happens, for instance, if you are moving from an icon on the
bottom right of page 1 and the only icon on page 2 is in the top
left. In this case, the second icon won't take focus because the
angle is too wide according to FocusLogic#handleDpadHorizontal().)

Bug: 25434120
Change-Id: I17b0ef7d86426a2599bc948bf2313dca7e112364
2015-11-04 17:44:32 -08:00
Tony Wickham 04e2c9ef56 Stop clearing focus when snapping to a new workspace page.
Clearing the focus was causing the first child in the new page to
immediately take focus, which caused FocusIndicatorView jank when
using a keyboard.

Bug: 25256728
Change-Id: I5ab31ebc3fe370d7ac9e9792b30dab3467023738
2015-10-30 18:04:48 -07:00
Tony Wickham 4530aca912 Set parallax offset to be 0.5f for default wallpapers.
This ensures they are centered as they were without any offset.

Bug: 25347076
Change-Id: Id773cd89463d47b350e60878c00e1112e0244414
2015-10-30 09:52:22 -07:00
Tony Wickham a3c74d10a7 Setting correct height for search bar widget options bundle.
- Seperate search bar height from its top and bottom paddings
- Report this height plus 8dps top and bottom for the widget options
- Use a separate bottom padding to adjust spacing between QSB and
  the workspace
- Add tests to verify the height of the search bar in both normal and
  tall modes (ran on Nexus 6, 7, and 10)
Change-Id: Ia7557785d1b38194eee869d0460456e8f33447d5
2015-10-29 12:18:28 -07:00
Winson Chung cbdb153893 Merge "Disabling the desaturation of fast scroll items." into ub-launcher3-burnaby-polish 2015-10-28 22:35:00 +00:00
Winson c08c59de07 Disabling the desaturation of fast scroll items.
Change-Id: I7e90e3b35dc6473ba5e2319abcea5c0c76cbd708
2015-10-28 15:30:38 -07:00
Tony Wickham c3d76582b6 Merge "Add null check in Launcher onNewIntent() before moveToDefaultScreen()." into ub-launcher3-burnaby-polish 2015-10-27 01:02:26 +00:00
Sunny Goyal 1ba7e36cc8 Fixing null check when calling mutateOnMainThread
Bug: 25269169
Change-Id: I74f7fb833a374f59a16487099f1bf72b086e88ee
2015-10-26 10:42:12 -07:00
Tony c1739096b4 Add null check in Launcher onNewIntent() before moveToDefaultScreen().
There is a race condition that occurs primarily (maybe entirely) with
Android Auto, it seems because they hijack the Home intent or something
similar. I'm not exactly sure how Android Auto works, but if I pair my
phone with the Desktop Head Unit (car dashboard emulator), I can repro
the NPE fairly easily by simply force closing Android Auto and then
disconnecting my phone from the DHU. If I don't force close Android
Auto, then pressing home launches Android Auto or other apps that I
assume handle some custom intent, such as Car Home Ultra, instead of
normal Home intents such as Launcher3/Google Now Launcher. So I think
what's happening is that, when the phone is disconnected from the car,
Android Auto restores and launches the real home intent (Launcher 3)
around the same time that it destroys the previous home intent
(Android Auto, Car Home Ultra, etc.). This could cause the NPE if both
intents are actually Launcher 3, as is the case when Android Auto is
already closed, because mWorkspace is set to null in
Launcher#onDestroy() (something like onNewIntent() --> post() called
--> onDestroy() --> post() runs). This is consistent with the fact
that I can guarantee a repro if I use postDelayed() instead of post().

Long-winded explanation aside, I think this fix is safe, especially
since we already have a null check for mWorkspace in onNewIntent(),
just not inside the post().

Bug: 24610231

Change-Id: I42f75b83946f375d947be1961a1f2a03a3707a84
2015-10-26 01:31:53 +00:00
Tony Wickham 52040c2d51 Merge "Set search bar height before setting up views in Launcher." into ub-launcher3-burnaby-polish 2015-10-23 18:38:46 +00:00
Tony Wickham df315180f0 Don't add cells to FocusLogic sparse matrix if they aren't focusable.
Previously, any child of ShortcutAndWidgetContainer was added to the
matrix, causing widgets (which aren't focusable) to be considered as
potential targets to gain focus when an arrow key was pressed. But if
the algorithm chose them, they couldn't take the focus so nothing
happened (i.e. the focus stayed on the app/folder it was on before).

Bug: 25126768
Change-Id: Id55fc310f7f58fb8795cce51dcefe4fd1210f788
2015-10-21 17:50:22 -07:00
Tony Wickham d5d7fa10af Merge "Hide the "Set Wallpaper" action bar when clicked." into ub-launcher3-burnaby-polish 2015-10-21 21:21:14 +00:00
Tony Wickham eb804b6aac Hide the "Set Wallpaper" action bar when clicked.
This already happens everywhere except for the case where an external
app such as Photos started the wallpaper picker. So not only is this
more consistent, it also prevents crashes and other potential issues
caused by clicking "Set Wallpaper" too many times.

Bug: 25026717

Change-Id: I63c6a0ce68656e6e68094e88074a836d8c1034f9
2015-10-21 21:01:54 +00:00
Sunny Goyal 935fca1857 Do not animate folder when it is closed while changing activity state
Bug: 21733536
Change-Id: I36aa3041b9300c917e320b511e00a1721e44f854
2015-10-21 13:42:36 -07:00
Tony Wickham eef443248a Set search bar height before setting up views in Launcher.
This ensures that the QSB widget options are set correctly the first
time they are used.

Bug: 24704753
Change-Id: I2bb13ff012b6f13ca076deed61f0b08a7037e2fa
2015-10-21 12:20:31 -07:00
Geoff Mendal 56070d4b67 Import translations. DO NOT MERGE
am: 6ce85953ac  -s ours

* commit '6ce85953acf0399965c6c8a75f5e6eea5a643678':
  Import translations. DO NOT MERGE
2015-10-21 15:54:05 +00:00
Geoff Mendal 8a9f7abcf1 Import translations. DO NOT MERGE
Change-Id: I4f645e8f071559ad56ee7963934f1039b06d6e96
Auto-generated-cl: translation import
2015-10-21 08:03:43 -07:00
Geoff Mendal 6ce85953ac Import translations. DO NOT MERGE
Change-Id: I1cea6130293678ef0d5da961d11428f14e62ee25
Auto-generated-cl: translation import
2015-10-21 08:02:37 -07:00
Sunny Goyal 5c6f99e290 Merge "Fixing disabled icon getting changed back to normal state on long press" into ub-launcher3-burnaby-polish 2015-10-21 00:18:25 +00:00
Tony Wickham c2bc0ef1c3 Fix regression where keyboard couldn't switch between workspace pages.
Bug: 25122302
Change-Id: Id1d7628753ce7ef37af50e8594e541dcb6bea13e
2015-10-20 16:24:53 -07:00
Sunny Goyal cd5b7f9fc6 Fixing disabled icon getting changed back to normal state on long press
Change-Id: I4f35c1cbecfef7891f8b1187ba3be0af695d4fd5
2015-10-20 15:52:48 -07:00
Sunny Goyal 93229c40bc Fixing ConcurrentModificationException in tests
am: ec7c9178dd

* commit 'ec7c9178dd1f17cf8479acd4e0b4575a91cfb255':
  Fixing ConcurrentModificationException in tests
2015-10-20 18:05:22 +00:00
Sunny Goyal ec7c9178dd Fixing ConcurrentModificationException in tests
Change-Id: I7aabc62aa249dae979366ce2871604f5822f3139
2015-10-20 10:31:09 -07:00
Sunny Goyal fe3db428ab Merge "Refactoring getPreferenceKey method" into ub-launcher3-burnaby-polish 2015-10-20 17:17:08 +00:00
Sunny Goyal f725824fa2 Refactoring getPreferenceKey method
This method was returnning a constant and getting inlined by proguard.

Change-Id: I87348e25b21483adc1b27d16f99dec4b73205701
2015-10-20 09:41:04 -07:00
Sunny Goyal ead4ab9655 Using UiSelector instead of BySelector
Change-Id: Ie912cc7291a2533f6686bdb34e108be15ce244ac
2015-10-19 17:32:10 -07:00
Geoff Mendal 705b4abd57 Import translations. DO NOT MERGE
am: f58538672a  -s ours

* commit 'f58538672aaeb1d0d00a9c65a773f5e251003c3b':
  Import translations. DO NOT MERGE
2015-10-19 16:25:53 +00:00
Geoff Mendal 8c23c2d2ba Import translations. DO NOT MERGE
Change-Id: If930ef94a3abe3e27123d1fe3553b0a3a453ffec
Auto-generated-cl: translation import
2015-10-19 08:50:56 -07:00
Geoff Mendal f58538672a Import translations. DO NOT MERGE
Change-Id: Iee53921c75c785c7d73dd375b4e044761a5a7246
Auto-generated-cl: translation import
2015-10-19 08:49:51 -07:00
Sunny Goyal 917d434c5c Merge "Adding tests for rotation preference Updating the gradle file to run tests directly from AndroidStudio" into ub-launcher3-burnaby-polish 2015-10-17 00:49:33 +00:00
Sunny Goyal 3d1c0ffba7 Adding tests for rotation preference
Updating the gradle file to run tests directly from AndroidStudio

Change-Id: Iac23dfc6f995477f2406071fbfab3a16ee58ce6f
2015-10-16 17:19:36 -07:00
Winson Chung fb4014daa3 Merge "Fix issue with source params not reporting predicted apps." into ub-launcher3-burnaby-polish 2015-10-16 22:20:14 +00:00
Winson a49b1f75cd Fix issue with source params not reporting predicted apps.
Bug: 25020080
Change-Id: Iaa67ccbb3e3a6c264aaa4fa3c915faad8a69bbbc
2015-10-16 14:57:24 -07:00
Tony Wickham f79d347a61 Add LauncherCallbacks method to add additional search widget options.
am: 775455c4a8

* commit '775455c4a8266655bf43b943e969d42ac32609ec':
  Add LauncherCallbacks method to add additional search widget options.
2015-10-16 20:40:34 +00:00
Sunny Goyal 363da26646 Merge "Preventing activity to restart when keyboard is connected or keyboard type changes" into ub-launcher3-burnaby-polish 2015-10-16 18:32:43 +00:00
Tony Wickham 775455c4a8 Add LauncherCallbacks method to add additional search widget options.
Bug: 25000458
Change-Id: I5e8d48617568569bc6e4f284749c3ed9fb20a68f
2015-10-16 10:15:36 -07:00
Tony Wickham fb062c6335 Close some Cursors and call super.onFinishInflate().
Android Studio gave these warnings, and they seem like good ideas.

Change-Id: I9a4d3997fd18e86e007e4511e1ac9e8a75509265
2015-10-16 10:12:23 -07:00
Tony Wickham a8709ddbbf Merge "Fix "The specified child already has a parent" IllegalStateException." into ub-launcher3-burnaby-polish 2015-10-15 18:00:59 +00:00
Tony Wickham a0628cc521 Fix "The specified child already has a parent" IllegalStateException.
The problem was due to a race condition between removing a prebound
widget view from the drag layer and adding the same view to the
workspace upon dropping it; if you let go of the widget immediately
after picking it up, the latter happened before the former.

Specifically, the flow was: long-click a widget --> drop --> remove
the view from the drag layer if it's not null (it is, so nothing
happens) --> the view is finally bound/inflated and added to the drag
layer --> add the view to the workspace --> already has a parent.

There are actually 2 problems here: one is that the bind/inflate is
asynchronous, and can therefore happen after dropping the widget view
being inflated, and the other is that the view is added to the
workspace even though the transition has barely started (we usually
ignore drops if the transition is less than half complete). It turns
out that this second problem was also due to a race condition, this
time between dropping a widget or app onto the workspace and calling
LauncherStateTransitionAnimation.dispatchOnLauncherTransitionStart().
If the drop happened before the dispatch, as in the case of the
crash, then the drop was accepted because the transition progress was
still 1.0 from the previous transition.

I fixed the first problem by removing the drag layer widget view
in Launcher where it is potentially used instead of Workspace. And I
fixed the second problem by setting mTransitionProgress to 0 in
Workspace.onLauncherTransitionPrepare().

I also added some debugging logs.

Bug: 23896857
Change-Id: I66944e6d3f23b70dea15f7fb01af0763a1bfcbda
2015-10-15 10:07:06 -07:00
Sunny Goyal 44b48f7702 am 28c6b963: Showing a permission prompt for direct call shortcuts
* commit '28c6b963d4ccac73ab857c839420513dd560945c':
  Showing a permission prompt for direct call shortcuts
2015-10-14 19:16:24 +00:00
Sunny Goyal d9bb1b45e9 Preventing activity to restart when keyboard is connected or keyboard type changes
Bug: 20820889
Change-Id: Ib0b21c04290607ddd67cef2003e6d89f5d6492d8
2015-10-14 11:53:49 -07:00
Winson e9f2727385 Fixing issue with overview panel buttons.
Bug: 22699895
Change-Id: I8a2f05a6008343327e34cbd3169e4056729e0b75
2015-10-13 13:56:29 -07:00
Tony Wickham a295048a69 Increase folder cell width slightly.
The increased breathing room makes it more likely that long app names
will fit in the folder cells without being cut off.

Bug: 22462641
Change-Id: I110ede040f9e8fdddbf0c4e7a395ac71435559f3
2015-10-12 15:57:23 -07:00
Sunny Goyal 28c6b963d4 Showing a permission prompt for direct call shortcuts
Bug: 24580949
Change-Id: Idc92f9f5979a730f43b4905af2bc47b6834dc7a7
2015-10-12 11:46:01 -07:00