Commit Graph

112 Commits

Author SHA1 Message Date
Joe Onorato 3611578579 Make the loader thread a Looper and move the package manager
updates into that thread as well.

This gets rid of the ANRs that happened because both threads were
holding mAllAppsListLock.  Now mAllAppsList should only be touched
from within the worker thread.

Change-Id: Ifc4ac27e0c0a927ac66c456d097fd3d4ef6c5e1e
2010-06-18 14:40:26 -04:00
Joe Onorato d0afc87d96 Fix crash in getCurrentWorkspaceScreen.
Bug 2761789

Change-Id: I9f005c876ca20f774e6d8046e34451a7fecbe805
2010-06-11 00:03:15 -07:00
Joe Onorato cc67f476c0 Improve launcher loading performance by only doing re-binds.
This always reloads the workspace, because I think it's a less risky change and that only adds
~100ms.

Change-Id: I215b1f741f022e47ce06e78b9cfdd9967a8f1b9d
2010-06-08 11:32:28 -07:00
Daniel Sandler 843e860e8e Load All Apps before the workspace if All Apps is showing.
This change reorganizes the increasingly Byzantine loader
thread so that the order of (workspace, allapps) can be
reversed if the user is currently looking at the all apps
view. The perceptual improvement in performance is huge if
you change the Launcher's orientation while All Apps is
visible (which forces a reload/bind of everything); now that
AA doesn't have to wait behind the workspace it
(specifically, its first batch of icons) appears much, much
faster.

Bug: 2722977
Change-Id: I07a9afd5f1cff4019f2640b082872176ba0a887e
2010-06-07 16:45:16 -04:00
Daniel Sandler 3e9454a9ac Disable hotseat buttons if AllApps is visible.
Bug: 2707845
Change-Id: Ic4039f9737b3218a45bb3e8456c47927edd3fe3d
2010-05-24 11:22:41 -04:00
Daniel Sandler ab1ebd7e6f Hotseats: better strategy for finding the default browser.
To do this, we invoke resolveActivity to see what activity
would result from viewing an arbitrary (but valid) URL. If
there's just one installed, or there are multiple and the
user has chosen a default handler for http:, we take that
component and launch it with CATEGORY_HOME (so as not to
upset the URL in the frontmost window/tab/what-have-you).
We also use this information to extract the localized name
of the app, which is then installed into the hotseat as the
contentDescription (for accessibility).

If there's no default and multiple options are availble,
we'll get the activity chooser instead. In this case, we
just fire off that chooser and let the user pick an app
(possibly setting a default along the way). Because the
default may change, we reload all this hotseat information
every time one of the hotseats is tapped.

Another side-effect of this approach is that until there
exists a default browser, the original URL will be sent to
the activity the user chooses from the ResolveActivity. So
we need a sensible default URL here; one can be found in
R.string.default_browser_url (similar to Browser's
R.string.homepage_base).

This change also moves the hotseat intents and icons into
arrays.xml for easier configuration.

Change-Id: I06268df8b59e0f41f1f8b0e47f823db4c44ec761
2010-04-28 15:52:54 -04:00
Daniel Sandler c9b1877f9a New Launcher feature: "hotseat" icons.
The hotseats are permanent slots on either side of the
AllApps button. Their functions are:

  LEFT/BOTTOM: Phone
    Launched via the hardcoded class name
    com.android.contacts/.ContactsLaunchActivity.

  RIGHT/TOP: Browser
    Launched by querying to see which application is the
    default for URLs, then starting that activity directly.

In the future, it would be ideal to allow an application
with permission to access LauncherProvider to customize
these (icons, contentDescriptions, and Intents).

Bug: 2559083
Change-Id: I56f6e745f8574aa17e28feaa9d2118fb4a715cd4
2010-04-23 12:37:23 -04:00
Joe Onorato d65d08e709 Fix race in LauncherModel that causes it to show duplicate icons.
Change-Id: I78130d6f237f476bc33a4718ca5ef245fe502857
2010-04-21 11:43:04 -04:00
Daniel Sandler cbe7f20ad7 Move batch size to a resource.
This way we can figure out how many apps to send to the grid
at a time even if the grid hasn't been instantiated yet.

Bug: 2599979
Change-Id: I7960fe1adae6976555334422335f3a4b28d0675e
2010-04-19 14:47:18 -04:00
Joe Onorato effc4a8aef Paper over bug 2592956 - Home not redrawing the shortcuts, widgets, or background.
The mNext* stuff in AllApps3D got reset when onNewIntent came in too fast after an
onCreate, which happened because of the configuration changed.

Change-Id: I9a358b6969ac1d17ea98f58218d47bfe983936f0
2010-04-15 11:51:38 -07:00
Daniel Sandler dca661236c Batch loading of icons for AllApps.
AllAppsList now maintains <data> and <added> in sorted
order, to amortize the cost of sorting the apps list over
multiple batches.

Launcher boosts thread priority on first launch, but we now
reduce thread priority to normal after the main workspace
has been drawn but before all apps are loaded.

Experimental feature: a short delay is introduced between
batches to help free up the CPU (as well as to show that we
are indeed batching apps).

Bug: 2562420
Change-Id: I2035ec3e819b4e7993a80c6d03bfad3914c95a7a
2010-04-14 14:36:10 -04:00
Joe Onorato 7018d8e327 Fix 2575588 - After creating new folder shortcut unable to navigate between home screen using touch.
Somebody fixed a bug in managed dialogs where it wouldn't
create the dialog after a configuration change.  This means that we
shouldn't set mWaitingForResult in createDialog, we need to set it in
onShow.  This is what the add dialog was already doing.

Change-Id: I955c2f7cd4a47213f84986ec9ba251146b1ac423
2010-04-13 20:29:42 -07:00
Joe Onorato f984e853f2 fix 2542590 add more logging when launching app fails
Change-Id: I5a1fa261c6e67eb7afb661de39e35ce43e2caa59
2010-03-25 09:47:45 -07:00
Romain Guy c16fea7161 Improve focus restore on orientation change.
Change-Id: If405c60f4a45aeb4079aa4dcd96b684fd6ea819c
2010-03-12 17:17:56 -08:00
Romain Guy 13c2e7b788 Prevent ANR in Home when changing orientation.
Bug #2504556

This solves the issue by keeping the GL context, the RS context and
the RS scene around, across orientation changes.

Change-Id: I8e3dc6e6bf039087046d49d2826c8800c5bef582
2010-03-10 19:45:00 -08:00
Joe Onorato 64e6be78dc Refactor the app updates so that it doesn't rely on the package name.
This will be needed for the upcoming change to update the icons with the
grayed out when the SD card goes away.
2010-03-10 13:42:32 -08:00
Romain Guy 406d703fad Make touch events work in landscape. 2010-03-04 18:59:31 -08:00
Romain Guy edcce099c9 Fix the build! 2010-03-04 13:03:17 -08:00
Romain Guy 8e633c5a3e Prevent crash when a bad widget launches a non-existent config activity. 2010-03-04 12:51:36 -08:00
Romain Guy 060b5c88cc Implement landscape in 3D all apps.
Bug #2454737
Bug #2454736
2010-03-04 10:16:43 -08:00
Daniel Sandler c351eb8b6a Hide the workspace when launching AllApps2D.
Boosts performance and squashes some weird focus issues.

(Also: fix builds with AllApps3D)

Change-Id: Id1c4628e119c950dced9d3383993674f3d6b9a1c
2010-03-03 15:11:52 -05:00
Daniel Sandler 388f679aa4 Introduce 2D All Apps and other support for sapphire-class devices.
AllAppsView is now the 2D, GridView-based version (very
similar to classic Launcher); AllApps3D is the
RenderScript/Rollo implementation.

TODO:
 - some mdpi assets are not in fact mdpi
 - related to above: static wallpapers not working yet
 - add dynamic selection of 2D/3D AA; currently you must
   choose one at build time by picking the appropriate class
   in all_apps.xml (see separate CL for sapphire overlay
   that does this)

Change-Id: I253d98404ea8a329a4049d2e48edd2e5129fa6ba
2010-03-03 14:38:45 -05:00
Romain Guy fb5411e982 Correctly position the quick contact badge when opened from a folder.
Bug #2467438
2010-02-24 10:04:17 -08:00
Joe Onorato deb98afe40 minor refactor: This function is only called from one place. It doesn't need the parameters. 2010-02-19 15:00:12 -08:00
Joe Onorato f0dde0927b Don't do the haptic feedback on workspace items when they're not being picked up.
related to bug 2309687
2010-02-16 18:25:23 -05:00
Joe Onorato 52fbb3cd46 Revert "Merge "Launcher changes to handle UTS test mode." into eclair"
This reverts commit b8fc9e7df6, reversing
changes made to 52ba5b08f2.
2010-02-13 11:23:10 -05:00
Wink Saville 7ac5037acc am c4470606: am b8fc9e7d: Merge "Launcher changes to handle UTS test mode." into eclair
Merge commit 'c44706064341f02a14d61091492a5fc6dc6efd2d'

* commit 'c44706064341f02a14d61091492a5fc6dc6efd2d':
  Launcher changes to handle UTS test mode.
2010-02-12 16:02:32 -08:00
Wink Saville 2693030ea4 Launcher changes to handle UTS test mode.
When in UTS test mode keys received need to be handled
by the Phone application or Contacts application to
operate properly in the test mode. When not in test mode
the search widget will handle the keys as it was before
this change.

The UTS test mode is enabled when presist.sys.uts-test-mode is 1.

bug: 2402366
Change-Id: I58e68830f9ce6905e189ecba1c04b1076799a0a0
Signed-off-by: Wink Saville <wink@google.com>
2010-02-12 12:12:45 -08:00
Joe Onorato 0589f0f66c Split ApplicationInfo into ApplicationInfo which is used for AllAppsView and ShortcutInfo which is
used for the workspace.

Consolidate the three icon resampling functions into one.

Ensure that the icons stored in LauncherProvider are the right size, so we don't have to resample
them each time we load them.
2010-02-12 12:18:40 -05:00
Bjorn Bringert 3e244cf9d2 Use Search.SOURCE from android-common
The SOURCE (search source identifier) constant is moving
from hidden in android.app.SearchManager to com.android.common.Search.

Part of http://b/issue?id=2429556

Change-Id: I68fa792f2d452aadcb9216f5c780bd082ca5039f
2010-02-10 14:17:35 +00:00
Joe Onorato 2d7e7d0d48 Fix 2261097 Shouldn't give users the option of MENU > Add in All Apps 2010-01-29 15:57:19 -08:00
Joe Onorato 8a9625e218 mostly fix 2392102 by overriding the force-open input thing 2010-01-28 15:55:35 -08:00
Romain Guy 5c16f3ecd6 Remove LiveFolders when corresponding package is uninstalled.
Bug #2298872
2010-01-12 17:24:58 -08:00
Romain Guy ea3763c267 Fix dpad nav: go left/right when dpad is moved and dots are focused.
Bug #2359364
2010-01-11 18:02:04 -08:00
Romain Guy b5de775467 Prevent crash when the app passes the wrong data type as a shortcut icon.
Bug: #2353444.
2010-01-04 14:43:49 -08:00
Joe Onorato 752a1244be am 34a0e1b0: fix bug 2326478
Merge commit '34a0e1b00b9baeff19e94f1ee35dd890063489d2'

* commit '34a0e1b00b9baeff19e94f1ee35dd890063489d2':
  fix bug 2326478
2009-12-15 15:05:31 -08:00
Joe Onorato 34a0e1b00b fix bug 2326478 2009-12-14 17:44:51 -08:00
Bjorn Bringert 7984c9496b Get rid of the built-in search widget in Launcher2
Uses the widget from packages/apps/QuickSearchBox instead.

Change-Id: I85d64defe155c0cad97fafef6a3db62c6cab504a
2009-12-09 21:48:38 +00:00
Romain Guy f8e6a80acd Let the user click the dots during a scroll on Home.
This allows faster scroll across Home. Also remove dead code.
2009-12-07 18:01:15 -08:00
Joe Onorato 7e4ed99eb0 Fix 2300792 - All apps zooming when you come back from an app.
This makes it so we're only listening for the CLOSE_SYSTEM_DIALOGS
broadcast while we're between onResume and onPause.
2009-12-03 13:10:49 -08:00
Joe Onorato 13724ea607 Make the launcher send the position of the icon that's launching an intent. 2009-12-02 21:33:36 -08:00
Jason Sams eb5615d1af Rename special dump properity so we can set it on user builds. 2009-11-30 11:50:10 -08:00
Joe Onorato f0be2134e5 Fix 2275513 - Icons don't update on package update
Also reuses the BubbleText object, which was being recreated for no reason.
2009-11-24 19:34:29 -05:00
Joe Onorato b20612133b Fix bug 2248173 - all apps animates out when you return home. 2009-11-24 16:13:54 -05:00
Bjorn Bringert 98047dc39f Clear search widget animation in Launcher.onResume()
Before, Launcher relied on a callback to a SearchManager.OnCancelListener to clear the search widget
animation. However, that doesn't get called if some other app opens the search dialog
before the Launcher is reopened. This change clears the animation in onResume().

Should fix http://b/issue?id=2246760
2009-11-21 22:08:04 +00:00
Joe Onorato cc19a53d61 Fix 2271080 - .lang.IllegalArgumentException: no dialog with id 1 was ever shown via
Activity#showDialog on CreateShortcut

I'm not sure how this can happen, but I think it's okay to just
drop the exception.  It's all just trying to clean up anyway.
2009-11-19 14:20:57 -08:00
Joe Onorato 14f122bf84 Fix bug 2271894 - Odd animation when press home button from app that wasn't in center home screen
Now:
 - When you're on the workspace and you press home, it animates back to the middle
 - When you're in all apps and you press home, all apps animates out and the workspace
   doesn't animate to the middle (it just jumps there)
 - When you're in an app and you press home, it doesn't animate to the middle
 - When you're in an app and you press back, it still goes to the page you were on.

Don't look at the evil hack to make it move without animating.
2009-11-19 14:06:36 -08:00
Joe Onorato 88ec0990c6 Fix 2274291 - back key doesn't go from all apps to workspace 2009-11-19 13:16:06 -08:00
Joe Onorato 61597bd5fd Fix 2271141 - Pressing the bottom corner of the screen when the applications menu is visible will
switch the home screen
2009-11-19 12:51:57 -08:00
Joe Onorato a5c32d6ecc Fix bugs 226264 and 2265943 - Home stopped responding to touch, but all-apps & notification panel
still work

I knew it was a problem with mWaitingForResult, which I'm still not convinced we need, but
Jeff Sharkey was able to find repro steps, so he's my new hero.  The steps were:
  1. Open add menu (long pressing or menu > add)
  2. Turn off the screen
  3. Turn back on & unlock
  4. Poof.
The problem was that when we get ACTION_CLOSE_SYSTEM_DIALOGS intents, we're dismissing the dialogs,
not canceling them.  I think we actually want to cancel them, but there's no easy way to do that
with the Activity class, so just clear mWaitingForResult by hand in closeSystemDialogs().
2009-11-19 10:28:49 -08:00