Commit Graph

508 Commits

Author SHA1 Message Date
Brad Fitzpatrick 73013bf94f Make LauncherModel.deleteItemFromDatabase write to disk async.
Fixes a bunch of StrictMode violations and removes TODOs.

Change-Id: I886bd071d4a8336c228d29c517a8ffc5223c0623
2010-09-14 12:33:35 -07:00
Brad Fitzpatrick 319226a894 Make Launcher.checkForLocaleChange async.
Logging indicated a 1.2 second improvement in Launcher start time
during boot (when single-threaded yaffs is very heavily contended).

BUG=2947474

Change-Id: Ie72cf02c5eacb27c6d874b6d67a0bb2de7f6b74a
2010-09-01 15:44:57 -07:00
Joe Onorato fdf5fd63c6 DO NOT MERGE - Allow the workspace to swipe while it's loading.
You still can't modify the contents of the workspace while it's loading,
but this makes it appear a little bit more responsive.  Launching apps
while the launcher is loading has always been possible.

Bug: 2748595
Change-Id: Icf252beaee5b801b30216202ce6032c4d565cde3
2010-08-31 12:02:32 -07:00
Joe Onorato f5ed4f1141 DO NOT MERGE - Fix 2941495: Launcher short-cut icons don't work for apps on SD card after reboot
Bug: 2941495
Change-Id: Idf1869d33cd5c01abea5b059ca466529cee0ad93
2010-08-31 12:02:24 -07:00
Dianne Hackborn 2d86dfec57 Fix launcher updating when all of an app's activities disappear.
Also uses a more efficient way to get all activities for a package.

Change-Id: Ic360082f0a728cf1b388af18b22122bfce866149
2010-07-24 16:48:01 -07:00
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 ab66ed2e06 Merge "This variable can be checked outside the lock because it's only set from the ui thread." into froyo 2010-06-11 10:54:31 -07:00
Joe Onorato 790c2d9fc5 This variable can be checked outside the lock because it's only
set from the ui thread.

This will help the ANR in LauncherModel.onReceive because if
we're under contention, there's a good chance that we haven't loaded
yet.  It won't completely fix it, but that will take a large refactoring.

Bug 2672967

Change-Id: I2c97a416767b4bb6aac0252f02e2aa2055ae8a4e
2010-06-11 00:14:11 -07:00
Joe Onorato d0afc87d96 Fix crash in getCurrentWorkspaceScreen.
Bug 2761789

Change-Id: I9f005c876ca20f774e6d8046e34451a7fecbe805
2010-06-11 00:03:15 -07:00
Joe Onorato 774b327991 Fix the folder bug. The change that had previously fixed this got reverted somehow.
Change-Id: I308656a5b1748e8aca254410b049110afaa7affc
2010-06-08 17:39:37 -07:00
Romain Guy 36354e4e73 Merge "Improve workspace's scrolling performance." into froyo 2010-06-08 12:59:44 -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
Romain Guy 8783a05158 Improve workspace's scrolling performance.
This is achieved by moving the 3D All Apps surface out of the screen when
it is not needed anymore. This saves us compositing costs that slow down
the drawing of the workspace.

Change-Id: I06ce1f77449fe1864517f4161913bc162c8e6b46
2010-06-07 17:08:34 -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 81a9248156 Fix drawing glitches in 2DAA.
Bug: 2739938
Change-Id: Ifeacc3ea7995b3fa90165943bc45d701a6234098
2010-06-03 21:31:02 -07:00
Daniel Sandler 6662645a67 Merge "Make 2D All Apps work better in landscape and on hdpi." into froyo 2010-06-03 14:12:11 -07:00
Daniel Sandler 86b40541a8 Make 2D All Apps work better in landscape and on hdpi.
* Correct the density (or, rather, remove the density) of
  the icons in the cache to ensure they're drawn px-for-px.

* Create a new landscape layout for 2DAA that aligns things
  properly (viz: Home icon at right, padding tuned, 6
  columns).

* Performance improvement: Make the app grid, icons, and
  home icon all opaque (by setting a black background) and
  move the home icon so it doesn't overlap the grid.

Change-Id: I961323e9e39cb122cdc694853706e7fcdd10142f
2010-06-03 10:35:44 -07:00
Daniel Sandler 596c0e6dbb Don't perform collision checks for items in folders.
Bug: 2735146
Change-Id: Ie4d03b09cc75bfc176ec91be6f6f4369af5cc2a3
2010-06-02 13:34:01 -07:00
Daniel Sandler 8802e96049 Defend against overlapping items in the workspace.
Should the Launcher's database become corrupted by
mysterious forces (e.g.: third-party launchers; botched
upgrades; smoke monsters) in such a way as to cause two
items to share the same cell, we now ignore loading the
latter.

Prevents a runtime crash (http://b/2655516).

Bug: 2655516
Change-Id: Ia514746f04f0e51b2cd07e9290589a6eab75bdd2
2010-05-26 16:50:49 -04:00
Daniel Sandler 3e297b57a0 Merge "Mask bitmap creation errors while dragging shortcuts." into froyo 2010-05-25 12:10:24 -07:00
Daniel Sandler cdc4973136 Merge "Ignore requests to add items to non-existant screens." into froyo 2010-05-25 12:09:36 -07:00
Daniel Sandler 3f8175a86e Mask bitmap creation errors while dragging shortcuts.
If we're unable to create a bitmap for the drag, e.g. due to
memory pressure, give up.

Bug: 2650809
Change-Id: I5d7360dbb1bd736a629451467e93cccdfc255b67
2010-05-25 11:49:48 -04:00
Daniel Sandler 291ad12232 Ignore requests to add items to non-existant screens.
Should avoid crashes when using Launcher2 alongside
third-party launchers that add additional workspaces.

Bug: 2709532
Change-Id: I7775b43e582346ba686524e357a2b262e9fc4dcd
2010-05-25 10:35:44 -04:00
Daniel Sandler 2e2656ccaa Merge "Disable hotseat buttons if AllApps is visible." into froyo 2010-05-24 11:31:34 -07:00
Daniel Sandler 3e9454a9ac Disable hotseat buttons if AllApps is visible.
Bug: 2707845
Change-Id: Ic4039f9737b3218a45bb3e8456c47927edd3fe3d
2010-05-24 11:22:41 -04:00
Joe Onorato f3d5ea926d Have LauncherModel poke the gc after it's done, to give the
renderscript objects a chance to get deleted, since they aren't
in the java heap.

Bug 2685490

Change-Id: Ifff97b64585ac0f6faed0feb6362f6137682e32d
2010-05-18 18:44:36 -07:00
Daniel Sandler e1cc6c3745 Fix 2617318 - NPE in Launcher2.
Applies the fix in change Id91712fa to widgets.

Bug: 2617318
Change-Id: I1e1dac6238a26497eacc23b161df171ae40bb588
2010-05-07 11:49:29 -04:00
Adam Powell 68b4182d77 Merge "Bug 2639807 - Add smarter smoothing to home screen touch scrolling." into froyo 2010-05-04 15:17:11 -07:00
Joe Onorato fad1fb5ed4 Tweak locking in launcher so mLock isn't held while the slow stuff happens.
Bug 2652948

Change-Id: I9d386395278830ead5deda17b8b09e0dcfeff989
2010-05-04 14:43:16 -07:00
Adam Powell fe8e279dbc Bug 2639807 - Add smarter smoothing to home screen touch scrolling.
Change-Id: I242e11f5aec218ae2b8f80ef3babcb2836c173db
2010-05-04 14:20:28 -07:00
Adam Powell fefa0ce22a Fix bug 2646531 - regression in home screen bitmap caching
Looks like the code path for buildDrawingCache(false) has some bugs.
This reverts to the old code path and tries to manage the creation of
those caches a bit better.

Change-Id: Ic468e9db396c51f723454dc3832e0cd1c0c82004
2010-05-03 10:23:50 -07:00
Adam Powell fea5d02507 Filter input events and smooth out touch scrolling. Bug 2639807
Change-Id: I71a18497862a30db5ff0f52f566fb86eae213ea3
2010-04-29 16:46:03 -07:00
Romain Guy 19b0600e47 Merge "Avoid ANR in Home by avoiding a sycnhronized call on the UI thread. Bug #2614636" into froyo 2010-04-28 13:55:53 -07:00
Daniel Sandler 0554b74917 Merge "Hotseats: better strategy for finding the default browser." into froyo 2010-04-28 13:32:44 -07:00
Romain Guy 0e74d9f057 Avoid ANR in Home by avoiding a sycnhronized call on the UI thread.
Bug #2614636

Change-Id: If9ded9a2e231a429e4d0a21626b486f76fd0a3a6
2010-04-28 13:32:43 -07: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
Adam Powell d40613a693 Address bug 2631580 - Tweak home screen scrolling behavior.
Duration of motion is now influenced by fling velocity. Constants have
been tuned and tweaked.

Fix a couple of drawing optimizations in Launcher2 Workspace.

Change-Id: Iaa674d10a28554884d9cc98134b2d1253b5e3e70
2010-04-26 19:43:53 -07:00
Adam Powell 2762dd856e Fix bug 2629457 - Scale home screen settle animation based on distance.
This fixes the issue where using the long-press-on-dots feature to
jump to a specific home screen overshoots by a large distance. It also
speeds up the resulting animation such that jumping from screen 1 to 5
doesn't take as long.

Change-Id: If41086b17df875be5514776e3af24292587d05a7
2010-04-26 12:44:27 -07:00
Daniel Sandler e547b6238a Merge "New Launcher feature: "hotseat" icons." into froyo 2010-04-23 10:26:30 -07: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 87d2ca8a66 Fix 2614384 - NPE in LauncherModel
Callbacks can be null.

Change-Id: I56462a54673b1804a6235d6d882008b453290542
2010-04-21 17:09:18 -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 9ecd07d636 Merge "More Launcher performance improvements." into froyo 2010-04-19 10:24:23 -07:00
Adam Powell 495f289228 Change workspace scroller interpolator
Change-Id: I1d8f1ceb39dc21e58c833cf030a41d08913ef7e3
2010-04-16 16:40:55 -07:00
Daniel Sandler 2ff10b3b01 More Launcher performance improvements.
* Removed another redundant sort
* Correctly set the thread priority to BACKGROUND for the
  all apps loading step.
* Moved batch delay to a resource
* Reduced delay between loading batches of apps to 100ms
  (we really just want to sleep a tiny bit between batches
  to give the UI time to react)

Bug: 2562420
Bug: 2599979 (related)
Change-Id: I1ae72a68c1a47377a9eb62827fe7666bfc50caa5
2010-04-16 15:17:01 -04:00
Daniel Sandler 707b0f7c3c Sort apps in AllApps3D.setApps().
The sorting is no longer being done in LauncherModel.
AA3D.addApps correctly performs an insertion sort, but
setApps did not.

Missing from change I77e3865b.

Bug: 2562420
Change-Id: I6854c2c4a221b2c1ad123410292da1fbfece7871
2010-04-15 19:35:16 -04:00
Daniel Sandler 7645c94ded Merge "Launcher2 performance: Don't sort apps in LauncherModel." into froyo 2010-04-15 13:37:33 -07:00
Daniel Sandler 054019dbea Launcher2 performance: Don't sort apps in LauncherModel.
AllApps2D and AllApps3D do their own sorting before display.

Bug: 2562420
Change-Id: I77e3865b856a5123872bee3d8578d0596956cddd
2010-04-15 16:30:11 -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