Commit Graph

31 Commits

Author SHA1 Message Date
Winson
2949fb5b16 Fixing talk-back folder icon removal regression.
Change-Id: I0b7fff645828d5198500973f1c9ea74f406a1a43
2015-09-24 18:21:16 +00:00
Winson
fa56b3f2f1 Requiring key chord to delete icons and folders on the workspace
- Also fixing case where the all apps button to search for more apps
  was not focusable

Bug: 20639227
Change-Id: Ie4d9092e654d3cafc0eb346b3bb744ec3e295e92
2015-09-14 19:47:19 +00:00
Winson
c0b52fefbc Refactoring to ensure item deletion always removes from the DB.
- Routing the various places where we call through to delete from
  LauncherModel through Launcher, which will delegate the removal
  of the icon from the workspace, and properly handle the removal
  of all items and their contents from the db.

Bug: 23944119

Change-Id: I022fe2b3e79da16b5af87505c4362490b8422686
2015-09-10 14:55:17 -07:00
Sunny Goyal
4f3e9383eb Code cleanup
> Removing obsolete logging
> Removing unused methods
> Removing resource leak warning due to non-static handler class in launcher

Change-Id: Ic38cc8aea82899b0b5ee3235f04e5964e49245fb
2015-06-05 00:34:06 -07:00
Sunny Goyal
316490e636 Removing some synthetic method creation
> Make package-private and @Thunk all private methods and constructors accessed from inner classes.

Change-Id: Ie5913860a0c33e48e9bf68f9b5b1699f64c2f174
2015-06-02 10:04:59 -07:00
Sunny Goyal
c6205603ef Creating landscape and portrait device profiles at app initialization
Change-Id: Ide9d007adc36b348e19b05cdf49e87f8b02db60e
2015-05-22 08:46:41 -07:00
Adam Cohen
2e6da1539b Refactoring DeviceProfile
-> Pulling out the parts of device profile which can (and need to be)
   initialized and accessed without access to an Activity context,
   ie. the invariant bits.
-> The invariant bits are stored in InvariantDeviceProfile which is
   initialized statically from LauncherAppState.
-> The DeviceProfile contains the Activity context-dependent bits,
   and we will create one of these for each Activity instance, and
   this instance is accessed through the Launcher activity.
-> It's possible that we can continue to refactor this such that
   all appropriate dimensions can be computed without an Activity
   context (by only specifying orientation). This would be an
   extension of this CL and allow us to know exactly how launcher
   will look in both orientations from any context.

Sets the stage for some improvements around b/19514688

Change-Id: Ia7daccf14d8ca2b9cb340b8780b684769e9f1892
2015-05-21 16:16:40 -07:00
Winson Chung
c393b0765d Fixing issue where the prediction bar apps are not focused.
- Also fixes issue where all apps is not accessible by keyboard
  when there are no other apps in the hotseat.

Bug: 21334471
2015-05-21 00:37:50 +00:00
Sunny Goyal
fc3c1edf7b Fixing folder focus logic
> Folder items no longer remain in a linear order when a folder
gets rearranged, and se we need to use createSparseMatrix instead
of createFullArray. Also because of this we need to use getChildAt(x, y)
instead of getChildAt(index)
> Removing traces of AppsCustomizePage (all apps) from FocusHelper

Change-Id: I9007f6b95cb823e27ef4a43ce725fda8ef1b7cf8
2015-04-16 14:53:58 -07:00
Hyunyoung Song
b76cd628e6 Focus handling null pointer exception during monkey tests.
- Also fix a bug where the focus is not navigating to the next page when there
isn't an icon within +45 and -45 range of the origin.

b/20294717

Change-Id: I16dac5c6a0463fbc9f56a447abedad18abadde98
2015-04-16 14:34:09 -07:00
Hyunyoung Song
ada50984dc Focus handling - RTL support
- Support LEFT and RIGHT keys to work across workspaces when in RTL mode.
- Folder icons navigate correctly on DPAD_LEFT/RIGHT events
- Folder navigation across pages also works correctly
- Deleted dead code inside FocusHelper

b/20120358

Change-Id: I7f851cb7ed31f666a91b2f856458d7966ea5f712
2015-04-13 17:44:31 -07:00
Adam Cohen
091440a9cb Reducing method count by eliminating synthetic accessors
Elimates 304 methods based on dex analysis

The java compiler generates sythetic accessor methods for all private
fields, methods and contructors accessed from inner classes. By marking them
package-private and @Thunk instead, sythentic accessor methods are no
longer needeed. These annotated elements should be treated as private.

Change-Id: Id0dc2c92733474250d8ff12fa793d3a8adeb1f26
2015-03-20 11:15:54 -07:00
Hyunyoung Song
18bfaafd3d key event focus logic should support large tablets
TL;DR;; On smaller tablets, landscape = vertical hotseat bar, and
portrait = horizontal hotseat bar. However, in larger tablets, hotseat bar is
always horizontal. This is now correctly handled using DeviceProfile.isVerticalBar
method.

b/19732584

Change-Id: I1035c89b4685be12dbc863f8a1465047a5fec6a6
2015-03-17 11:32:21 -07:00
Sunny Goyal
290800b5b7 Adding a scrollable folder content implementation
> Size is restricted to 3x3 for now
> Drag-drop across page s not implemented yet
> A-Z sorting is not implemented yet

Change-Id: I84328caa6ad910d1edeeac6f3a7fb61b7292ea7e
2015-03-09 14:21:43 -07:00
Sunny Goyal
0b0d9d40ee Merge "Refactoring folder content" into ub-launcher3-burnaby 2015-03-05 04:30:22 +00:00
Hyunyoung Song
ac721f8d5f Fix the broken build from recent focus navigation handling code
(compilation error).

Change-Id: I9beb63a88f8c7c247f397d0495501dbc0f637456
2015-03-04 16:33:56 -08:00
Sunny Goyal
c3a609f950 Refactoring folder content
> Refactoring the CellLayout in folder with a custom view so
that it can be replaced easily with a scrollable paged view.
> Moving some methods from the folder to this new view which
assume a single page layout for the folder
> Changing folder from LinearLayout to FrameLayout to properly
handle focus traversal in case of multi-page folders

Change-Id: I073c00b995488f9f5d8123b00357e094ca2cec7c
2015-03-04 15:55:47 -08:00
Hyunyoung Song
3853171963 [key event focus] DPAD navigates to the nearest item on next/previous page
b/19381790
b/16351792

TL;DR;; Previously, when RIGHT is handled on the right most column of the
current page or when LEFT is handled on the left most column, the next
icon of focus is next page 'first' icon or the previous page 'last icon'.
With this change, the row information is preserved when trying to locate
an icon to give focus in the next/previous page.

Next CL: long awaited unit tests that capture corner cases for different
orientation/ device configuration.

Change-Id: I5278bed45275b3e4cb39fb698df35f90bb45a415
2015-03-03 19:25:16 -08:00
Hyunyoung Song
31178b8237 [key event focus handling] (1)hotseat <-> icon now symmetric, (2)support DEL keycode
TL;DR; (1) Key event navigation from and to the hotseat and icons in the workspace
is now symmetric. Since there is one more icon in the hotseat, only left
N-1 icon navigation was symmetric.

(2) KeyEvent.KEYCODE_DEL and KeyEvent.KEYCODE_FORWARD_DEL can now delete icons
from the workspace. The focus move to the previous icon where the focus
traveled from.

Also contains minor styling and indexing issues.

Bug: 15408321
Bug: 19381790

Change-Id: I16cbcb2693e92eebb830997d01c0bf674073dd51
2015-02-24 22:14:11 +00:00
Hyunyoung Song
ee3e6a7b77 [key event focus handling] Cleanup/Refactor/Feature
1) Focus navigation handling is refactored to Focus utility class.
New 2 step dpad navigation algorithm is inside Focus class
2) Introduced a map (or matrix) that indicates where sparse icons are located inside a grid.
This enables getting rid of the icon sorting logic which was costly.
3) Unified all the dpad handling logic inside the handleXXKeyEvent methods
4) DOWN/UP key will allow navigation between workspace icons and the hotseat
5) Folder icons allow DOWN/UP to navigate to the title

b/19381790

Change-Id: Id45b3f215ef7c1ca5f99b08e3d721e219298627a
2015-02-20 14:25:27 -08:00
Sunny Goyal
1aaf6f20a7 Removing AccessibleTabView and some other dead code.
Change-Id: Ia122a6277f924e6077dbf15a4dc40b5042aa987d
2014-10-21 10:05:23 -07:00
Sunny Goyal
b3726d90a5 Changing hotseat keyboard controls
> Left and right keys don not navigate to next/prev page
> Down arrow on apps apps last row, do not take the focus to the end
> Nagivation sounds when focus changes

issue: 16352221

Change-Id: I5982f22dc80c408673092f8fa8ca1b2fc6381635
2014-08-20 17:00:32 -07:00
Sunny Goyal
508da15509 Updating the icon click feedback
> Using BubbleTextView everywhere, removed PagedIconView
> There is a brightness feedback on touch and shadow
feedback on click, until app launches

issue: 16878374
Change-Id: I3dc1149a123c8a75feca6210948398bf2187f1f2
2014-08-19 18:03:06 -07:00
Adam Cohen
a00673c7d9 Fix issues with the new widget layout
-> use first layout instead of first measure to determine size
-> fix issue where we were doubly accounting for padding of
   AppsCustomizePagedView
-> show page backgrounds by default, hide fake page by default
-> stripping some dead code related to the market button
   and all apps cling

Change-Id: I787bdf1092c821b780670098fb219a8a68914bc8
2014-08-14 13:15:32 -07:00
Adam Cohen
c956cbaee2 Fix crash with keyboard focus in AllApps due to view refactoring
issue 16478600

Change-Id: I0300e7ffb332b689e3412e764ab7ce59c4fc5748
2014-07-24 09:19:58 -07:00
Adam Cohen
24ce0b3708 Fixing drop targets in phone / small tablet landscape (issue 12192781)
Change-Id: I4dc8a82c8cd5ef279506e7868e33a455fba5a3be
2014-01-14 16:33:50 -08:00
Winson Chung
c58497ee61 Initial changes to restore AllApps.
- Removes unused all apps code due to dynamic grid/spacing
- Attempts to use CellLayout instead of PagedViewCellLayout

Change-Id: I3c49bca9fc35dfeaf250591fd63bc7f36119968f
2013-09-05 12:14:28 -07:00
Winson Chung
a1f133de78 Updating focus helper to account for change in Folder layout hierarchy. (Bug 9626867)
Change-Id: I8d6cce9089913de987316c9790ecfb301ca1f218
2013-07-25 11:15:13 -07:00
Daniel Sandler
e4f9891f01 Lazily instantiate LauncherAppState.
The application context for LauncherAppState is supplied by
the application whenever it starts; don't ask for an
instance before that.

Change-Id: I1ca8ea04238a357a682f79250f08813ead7ae532
2013-06-27 15:17:11 -04:00
Daniel Sandler
cc8befac35 Move LauncherApplication's state and code to LauncherAppState.
This removes Launcher's static data and other state out of
the Application object. Now LauncherApplication (extends
Application) exists only to instantiate LauncherAppState.

Change-Id: I4e323bd78b77536b92054105536a55c0c2c19ba8
2013-06-11 22:01:47 -04:00
Daniel Sandler
325dc23624 Launcher2 is now Launcher3.
Changes include
  - moving from com.android.launcher{,2} to
    com.android.launcher3
  - removing wallpapers
  - new temporary icon

Change-Id: I1eabd06059e94a8f3bdf6b620777bd1d2b7c212b
2013-06-05 23:30:20 -04:00