Commit Graph

4668 Commits

Author SHA1 Message Date
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
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
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 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
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
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
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
Tony Wickham f685c7e5f7 Merge "Actually call LauncherTransitionable.onLauncherTransitionStep()." into ub-launcher3-burnaby-polish 2015-10-09 22:37:02 +00:00
Tony Wickham fa3c369cc3 am 37860923: Merge "Added launcher callback to specify search bar height." into ub-launcher3-burnaby
* commit '37860923619b1e467975a74764dff03ab657bdc7':
  Added launcher callback to specify search bar height.
2015-10-09 01:40:31 +00:00
Tony Wickham 3786092361 Merge "Added launcher callback to specify search bar height." into ub-launcher3-burnaby 2015-10-09 01:37:39 +00:00
Tony Wickham d70a4b7b78 am d6b4037b: Grid adjustments, specifically for Ryu.
* commit 'd6b4037b093445fefa7d036da339dd549fae7a9b':
  Grid adjustments, specifically for Ryu.
2015-10-09 00:38:29 +00:00
Tony Wickham 55616cd363 Added launcher callback to specify search bar height.
The search bar can now be be normal or tall. When it is set to tall,
the hotseat and page indicators move down so that the workspace isn't
compressed quite as much.

Change-Id: Id92a946eab3a93524999f92efd847a501a95f002
2015-10-08 16:58:05 -07:00
Sunny Goyal 56c7360497 Verify that the widget id is valid, before binding the widget
Bug: 23820213
Bug: 24054205
Bug: 24582322
Change-Id: I25a09b0a2a706812a7d82729b5dc554ffba84a2a
2015-10-08 14:49:55 -07:00
Sunny Goyal 5802588dc0 Merge "Update the widget spans after the provider changes" into ub-launcher3-burnaby-polish 2015-10-08 20:57:51 +00:00
Tony Wickham d6b4037b09 Grid adjustments, specifically for Ryu.
> Less than 14% of the screen is used for left/right workspace padding.
  (To be clear, this means 7% for the left and 7% for the right.)
> Hotseat icons are the same size as workspace icons.
> Far left and right hotseat edges line up with workspace edges.
> All Apps button is scaled down 8dp.

Bug: 24003478

Change-Id: Idb057ab0f6ba29e7fd93feac7573ca2e07c7e839
2015-10-08 09:23:10 -07:00
Sunny Goyal bbf0184603 Using 23 instead of Build.Versoin.M until the final SDK is available.
Change-Id: I9f8f6fe049afcd0ceb0797ddc803a2e77bab0437
2015-10-08 07:42:49 -07:00
Sunny Goyal d306055f2d Moving a few testing classes to a separate package
Change-Id: Ied1c063de3e938695493e4937f554686e0719dad
2015-10-07 11:12:38 -07:00
Sunny Goyal 21d89fbf8c Merge "Fixing overscroll effect when the navigation bar is opaque" into ub-launcher3-burnaby-polish 2015-10-07 17:22:44 +00:00
Sunny Goyal 6fb929e003 Verifying that the table was successfully created during initialzation
Table creation sometimes fails scilently, which leads to a crash loop.
This way, we will try to create a table every time after crash, so
the device would eventually be able to recover.

Bug: 24263894
Change-Id: Ic0169d33f4092042423afa24320182786c544d47
2015-10-06 16:47:14 -07:00
Tony Wickham d47807d7a9 am 3a3517fb: Add widget size options for QSB.
* commit '3a3517fb6c17120c6d11e5c95a0de4e81205d0ae':
  Add widget size options for QSB.
2015-10-06 20:53:46 +00:00
Tony Wickham 3a3517fb6c Add widget size options for QSB.
Bug: 24704753
Change-Id: I3e16c1f67a67b08b3843f7f38312447bdfa6a91e
2015-10-06 13:07:23 -07:00
Tony Wickham 0bb211a9d5 Actually call LauncherTransitionable.onLauncherTransitionStep().
Previously, it was only called at the start and end of the transition;
now it is called as the animation interpolates. Specifically, a dummy
ValueAnimator is played alongside the transition animation and calls
dispatchOnLauncherTransitionStep() as it goes.

One place where this is important is in Workspace, where
mTransitionProgress is used to determine things like whether the
workspace should accept a drop - hence the bug that caused apps dragged
from All Apps to vanish when dropped before the transition ended.

Bug: 24215358
Change-Id: I32cd633c53557305caf84e87c9a4d4f07eef2223
2015-10-05 16:57:09 -07:00
Sunny Goyal ec88204389 Update the widget spans after the provider changes
Bug: 24003213
Change-Id: I51ad5919a808ef10385d62a48a94589eefcb06bc
2015-10-05 13:23:52 -07:00
Sunny Goyal fd4264b2b5 Merge "Jailing the saved instance state of all the dynamically generated views" into ub-launcher3-burnaby-polish 2015-10-05 18:26:19 +00:00
Sunny Goyal d1a0e8b5c8 Jailing the saved instance state of all the dynamically generated views
Using itemId instead of generating a new id for each item. This is because
if the process gets killed, View.generateId will get reset but we will still
receive the generated item id map in onRestoreInstance. This will cause
conflicts with newly generated item ids.

We wrap all the generated homescreen views inside a single sparse array. This
ensures that we do not cause any conflict with dynamically generated views in
other parts of the UI.

Bug: 16840760
Change-Id: I6fe69c2e1dd463402f51222715fae31b9d4dd240
2015-10-05 18:25:49 +00:00
Winson 6febe1f361 Fixing regression when removing last item from folder.
- The regression caused the folder and all its contents to be removed
  before the new item could be moved to the place of the folder.  In
  addition, in this case, the LauncherModel would get out of sync with 
  the db because we move the last item to the workspace, but don’t 
  remove it from the contents, so deleting the folder would remove the
  item’s mapping in sBgItemIdMap.

Bug: 24620815
Change-Id: I17137f28b0f1617a890488c7a9c5b8a9e8df0e91
2015-10-02 18:26:48 -07:00
Sunny Goyal 95bae9a43d am c84e6e19: Disabling widget debug
* commit 'c84e6e19363c590bbfbac17e9ab7cc61a04d552a':
  Disabling widget debug
2015-10-02 20:23:05 +00:00
Sunny Goyal c84e6e1936 Disabling widget debug
Change-Id: I876a904358ce455c97a7a25a34c66af5e9316469
2015-10-02 12:48:37 -07:00
Winson 44818e07af Fixing regression in removing widgets via accessibility.
- Regression was introduced in ag/765323, but not visible in normal 
  drag and drop because the view is already removed from the parent.
  However, when accessibility is enabled, it was only removing it from
  the db, but not from the parents.

Change-Id: I37483d0cd6306d270441b11e6f05247d58b88521
2015-10-02 18:44:18 +00:00
Sunny Goyal 935eedad97 Merge "Do not reinflate/rebind widgets if we are going the rebind the full workspace anyway." into ub-launcher3-burnaby-polish 2015-10-02 17:40:35 +00:00
Winson 34ef93ccd6 am 058c21db: Ensure accessibility delegate is set on all apps icons.
* commit '058c21db49f4f058b7d84c8de55d3c649918ab70':
  Ensure accessibility delegate is set on all apps icons.
2015-10-02 17:21:59 +00:00
Winson 058c21db49 Ensure accessibility delegate is set on all apps icons.
Bug: 24605237
Change-Id: I801e2aca1732c021b06d996d907f368f97277cf9
2015-10-02 17:16:15 +00:00
Sunny Goyal a682a5d8c7 Make sure that the dimensions are not negative when drawing pending widget
Bug: 24585203
Change-Id: I3d328d0e1fe81d2704bb5b9d4b340a367bfb9249
2015-10-01 19:36:59 -07:00
Sunny Goyal 6bec75fe70 Do not reinflate/rebind widgets if we are going the rebind the full
workspace anyway.

Bug: 23820213
Bug: 24582781
Change-Id: I2cb4927916fed64a69100beb41ee14653ea1d70a
2015-10-01 18:51:50 -07:00
Winson Chung 1845049c66 Merge "Replace Long.compare() with implementation." into ub-launcher3-burnaby-polish 2015-10-01 22:53:15 +00:00