> The shortcut container closes with an animation
> When opening/closing the animation only the icon scales
and not the title and drag handle
> When dragging the icon, it starts from the original icon position and
moves under the user finger. The container grows to follow the drag view.
Bug: 28980830
Change-Id: Ic0353c30b682d1f018cbf4d62e8a6e8e7d7d4664
- Align shortcut icons with original icon.
- Drag handle is lighter and smaller.
- Shortcut pills are slightly wider to accommodate long text.
Bug: 28980830
Change-Id: I8e9709e3cbdb9df86a805a4b63a696975c61df5a
- We create a trangular path, which we use as the view's
outline (for the shadow) and as its PathShape background.
- We scale up the arrow as the container opens.
Bug: 28980830
Change-Id: I71e566552f063dfdb69067bb7e3cee659988f934
This makes the icon part of the hint text, and removes any need for
custom focus event handling.
Also the icon will now appear at the start of the text based on the
direction of the text and not the direction of the layout
Change-Id: I06c5cf99492d75b1005c69ec7c521cde0fdab010
b/30221381
> Will not support landscape case. If the user knows how to enable
rotation, it's very unlikely they don't know how to bring up apps drawer
> If unlocked using finger unlock immediately after screen is turned
off, bounce is not shown due to delay in ACTION_SCREEN_OFF broadcast
Change-Id: Ia8b7e572eaa4aeab8b1add1e5660fee3a63ba21c
- Fixing regression in hottest folder background getting clipped
- Ensuring that the padding is correctly applied in vertical bar layout
to match workspace
Bug: 30021487
Change-Id: I09bce21829867f4bd4e50646e565959421e4984c
- Adding DeviceProfile callback for when the launcher layout changes due
to insets. This is necessary since there are now different layouts
depending on which side the navigation bar is on
- Consolidating hotseat and other layout into the device profile
launcher layout logic
- Making the all apps icons match the workspace icon height
- Tweaking caret drawable to draw to the bounds specified to simplify
layout in each orientation
- Fixing minor issue with page indicator shifting in landscape
- Centering overview buttons to the workspace page
Bug: 30021487
Change-Id: I1866bce00b2948f3edd06168c0f88d81207e3f13
- Open animation: shortcuts reveal using modified circular reveal
(so that it reveals in the pill shape instead of a circle);
slight translation away from the original icon; scale icon and text.
- Hover animation: scale the shortcut pill and translate others away.
Bug: 28980830
Bug: 30127368
Change-Id: I8ed05c7a082f2c2a3f6c663da7259f6cd33e394f
Instead of expanding the edittext, using a separate textview
which is shown/hidden as the hint text
Change-Id: Ib4cedeaed9291f972be2ee407c06f4944c983e27
This allows better edge matching for the QSB. The QSB position
is kept synchronized with the page scroll and all-apps transition.
But its not visible in spring loaded and overview mode
Change-Id: I4e6723607ea966ee672273a9ca67c792fd6b5661
- Removing old logic which assumed that views were the same size,
especially now we can have variable dividers, etc.
- Simplifying old scroll position logic.
- Removing unnecessary prediction icon layout (same as normal icon)
Bug: 30023608
Change-Id: I39e1126fa586a76a9bdd3ff38cd6e360ac3021e6
Launcher clings are dead. Delete all the code and resources associated with
them.
* Did not delete the actual code the marks the cling as dismissed since it's
used in db upgrade and backup/restore paths. Figured we probably want to keep
that.
Change-Id: I28841b4a430187b62b239afeb64bee81a798e259
Fixes: 29461092
Used for widget headers and a few other places.
In order to support pre-API 25, an app-local version of colorSecondary
is created and used throughout the app. A new WidgetContainerTheme
sets colorSecondary to a canned value. On API 25+, colorSecondary
is set to the platform value.
Change-Id: Ie0dd66333052b7346eea5d82d1c88417c6a2cd00
Fixes: 28625102
- Add ShortcutsContainerListener to icons on workspace, folders, and
all apps. This handles long-press and forwards following touches to
the DeepShortcutsContainer that is created.
- Drag over shortcut before lifting finger to launch it.
- Shortcuts are rendered in pill-shaped DeepShortcutViews,
which are inside DeepShortcutContainer on DragLayer.
- The shortcut container orients above or below the icon, and left or
right-aligns with it. Biases for above + left-align.
- Long press a DeepShortcutPill to drag and pin it to the workspace.
Bug: 28980830
Change-Id: I08658d13ae51fe53064644e8d8f7b42f150fdd7d
> Adding custom actions on the page indicator to go to overview mode
> Disabling custom actions on the first page
> Disabling 'move page left' on the second page
Change-Id: Ib8154f70cb3f93e663a881357c6c46c33253887f
b/28917826
b/29469966
b/29542376
- Move state transition to when the finger is lifted and not when
the view settles.
- Refactor the vertical pull detector to use bit operation to define
which direction scroll to allow.
- Fixed many issues regarding screen rotation
- Fixes issue where slowly sliding the all apps goes into overview mode
- Fixes issue where quick slide up leads to animation starting from middle
Change-Id: I2384a0fcc5550e17359a044ef506bcc66507da5f
Instead of using hard-coded variants of colors, use the theme color
that corresponds (colorAccent, colorPrimary, etc).
Updated:
- "Search for more apps" text
- App info drop target hover color
- PageIndicatorDots
- All apps & widget scroll bar & scroll popup colors
- All apps section text color
- widget picker background color
TODO:
- widget picker header color
BUG: 28625102
Change-Id: I74b543ff71b8caef8cd950c8183ac84c759cb4d5
b/28917826
- nav bar change to light when top of the all apps container
passes y mid point of the status bar
- apps search edit box change when top of the all apps passes
the bottom of nav bar
- Restrict pull up to work only if the ACTION_DOWN event started
from the hotseat.
- Landscape: reverted old padding and margin. Only the interaction
is different.
- Tuning of the motion spec
- Animation duration respects fling speed more agressively.
- and many more small bugs...
Change-Id: Icde4093c41eeab8c9c6d9dc8b7d57adc3b171349
b/28917826
> PageIndicator is also added in landscape
> Touch delegate allows the active touch area to be 36dp
Change-Id: If00f45fc88a13cd5a6759d771313439eb58561e3
Adding an abstract FocusIndicatorHelper based on FocusIndicatorView
which draws the background instead of using a dummy view.
Change-Id: Id560195323d2ddad8fcd77ba675cf3f4fd4a94ab
> Renaming it to simply DropTargetBar
> Moving AppInfo to the top bar as well
> The workspace pages will extend to the top edge (minus some padding).
Since the QSB is no longer displayed on top of every page, there is
no reason to reserve the space.
> In spring-loaded mode, the workspace cell layout will scale enough
to make room for the drop target bar at the top
Change-Id: I2baf607310335dd576c9d9fcbb75ab708f47ac03
> Instead of recreating the whole fragment, only recreating the views
when reinflating
> Binding the fragment in xml instead of in code
This prevents duplicate fragment binding
Bug: 29120662
Change-Id: I25b942f64d68f25e1358f15d8a919daeebdcff9c
The QSB will only be resent on the first screen of the workspace
covering the full width of the first row. If will not be movable.
The first screen of the workspace will not be movable.
The searchDropTargetBar no longer contains the QSB (it can be
renamed in aseparate cl).
Refactoring all QSB related logic by moving it to a custom view
inflated only using xml.
Change-Id: Icb4fd6eb855df1af15f685961c38351bf4fd4f4a
framework page indicator (used in quick settings)
The active page is indicated with the accent color. During scroll
the active indicator expands to 2 dots corresponding to the visible pages.
Change-Id: Iaf57836b642cf87e5eed98048ecca7dd8e7643a4
- The current PageIndicator has been renamed to PageIndicatorDots
and PageIndicatorMarker has been renamed to PageIndicatorDot.
- PageIndicatorDots and PageIndicatorLine implement PageIndicator.
- PageIndicatorLine uses scroll progress and number of pages to
draw a line of the correct size and position.
- All of these page indicator files are now in a pageindicators package.
Bug: 27227498
Change-Id: I9230d2e0600ce583989bd31d0b0e252b148d15c2
The setting will not be available on a tablet, where rotation is
always enabled. On mobiles, it will be disabled when auto-rotate
is disabled in display settings.
Also removing content provider dependency from settings, as its in the
same process as launcher.
Bug: 28704055
Change-Id: Ibe6b1e67411fb0e4b2e36446710f463e4a3d6883
b/26494415
- Removed bundle object that became redundant now that we have LauncherEvent proto
- Combined Stats and UserEventLogger as they are effectively doing same thing
- Removed parent field inside Target
- added predictedRank target inside Target
b/27967359
- make com.android.launcher3.action.LAUNCH broadcast explicit
Later CL: finish packageName/intent/componentHash/predictedRank fields
Change-Id: I441fb46c834f73e58a4d2324e8da7971e8713ec8
It was setting the panel to black when highlighting a CellLayout,
instead of just adding a white border.
Bug: 27135377
Change-Id: I879b12613b0cbfdda2a980065c66ea3ceb960f33
With the new spring-loaded workspace, items are often very close to
button drop targets (e.g. App Info) at the start of a drag. This
threshold makes it less likely to accidentally drop on a target.
Bug: 24099531
Change-Id: I4912ceeb0b63958816177c7bde073e825176d987
-> New RecyclerView handles wrap_content differently
-> Add mock set of suggested apps to the LauncherExtension
issue: 27581978
Change-Id: Id080e212e0425515fa66e821d116b95284bb3526
> Instead of handling insets in BaseContainerView, directly applying
them to margins, as that scpace can't be used for scroll handling
> Appliying the top and bottom padding in xml
> The left & right padding is defied in xml which is reused for scroll
handling
Bug: 27108154
Change-Id: Ia32e6d5e8fd1bfafb1d77d1244ce2268e4da9df9
-> The new versions of LayoutManagers in the latest support lib
has begun to respect certain layout params (where before they
were ignoreed). match_parent is now treated as "match column",
which is what we want here.
issue 27581978
Change-Id: If1efed15b5a93c873ff141e3c658922819c143fb
-> Refactored the preview background rendering to be much more self-contained.
This cleans up a lot of code in the CellLayout, and keeps the logic in the
right place.
-> We switch to software rendering for performance and compatibility reasons.
-> Removed all assets.
-> FolderIcon accept animation includes animation of the clipped region.
-> 1:1 hand-off of drawing of the FolderIcon background between the FolderIcon
and the CellLayout. Unfortunately, CellLayout rendering is still required
to work around clipping issues (due to use of software layer). We also
need this to support folder creation feedback.
Change-Id: Ib8f7fa6359dfedff8145f38dd50ba03849ca0d51
am: eba87b1770
* commit 'eba87b1770937f44998aff5fc4b34a12b30c6440':
Chaning the 'title' attribute format to string to be consistent with support libraries
-> Modeled as a set of items around a circle
-> Modulate the radius and icon size as number of items grow
-> Clip the icons by a circular clip aligned to the background drawable
Remaining issues
-> Probably want to move to a programmaticly drawn circle + shadow
-> Anti-aliasing of the clipped region will need more attention
-> Need to animate all items in the preview as it changes (this
wasn't required before)
Change-Id: I678ec605f6c8a34e9d7e4aec4e9583e36a9ef394
-> Created com.android.launcher3.folder package to house most folder-related files
(aside from the FolderInfo) which is more related to the model than the UI.
Change-Id: I767063e1e4c775c01a799a3bede30cd94ac48ade
Before, the FocusIndicatorView stayed on the widget host unless the
widget had its own focus change listener, which caused a couple of
problems, namely (1) it was hard to know where the focus was from
a user's standpoint, and (2) the focus indicator could get stuck on
the screen if you entered a widget and then long-pressed workspace.
Now, the focus indicator goes away and instead the widget is framed
with a white border to indicate that the focus is inside it. The
frame goes away when pressing ESC or when touching the screen.
Bug: 26744224
Change-Id: I14025576fd7a9f901b4d969b878af0bebad79a70
- No page indicators in spring-loaded mode
- Don’t move workspace up as high
- Scale workspace at 90% instead of 80% on phones
- Increase speed of workspace -> spring-loaded -> workspace
- Widgets were being scaled down twice when dragging from widget picker
- Don't scale up icons when dragging (scaling other stuff down is enough)
- Make scrim less dark and panels more transparent
- Thin white border around page instead of highlight when hovering
Change-Id: I963e91c20d4c0340480d165e0f3b8064783c0cb2
am: f7a263c437
* commit 'f7a263c4370d1e45bb53653de2ef0fb70061ecd5':
Adding support for negative x and y in layout xml. Fixing default configurations for some screen sizes.
Fixing default configurations for some screen sizes.
> Negative values for x and y are parsed as distance from end
column and row respectively. e.g. (-1, -2) => (3, 2) in a
4x4 grid
Bug: 26110981
Change-Id: I4ca30e225ed6e2a31610ab23235d2cd10e8d317c
- Added side hints back
- Only scale down icons if spring-loaded
- Only show App Info drop target if spring-loaded
Change-Id: I4b0dddccbe0e80b7ceb6b7266fc527f757744148
- 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
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
> 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
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
- Reuse DeleteDropTarget since it's the same effect, but with "Cancel"
instead of "Remove" if supportsDeleteDropTarget() returns false.
- Rename related strings (but not their values)
Bug: 24104015
Bug: 24099531
Change-Id: Ia9fbcaa17bb17f7aa31df1f830298da01544c178
1) Use a different content description for temporary new page
2) Use different accessibility description for add widget toast
3) Announce when an item is deleted
4) Announce when hovering over a drop target
5) Announce state during drag-n-drop and widget resize (similar to seekbar)
Bug: 23573321, 24057944
Change-Id: Icabb317625e70c78e11c0b4f99b9339172d93594
- Hitting a ctrl key combo will actually call onPrepareOptionsMenu(), which
will change the state of the workspace incorrectly. Instead, listen for
the menu button, and only allow the user to enter overview mode if they
are currently not dragging or in an overlay state (like all apps or
widgets).
- Also making the overview buttons focusable so that they are focused when
you go into overview mode.
Bug: 22483367
Change-Id: Ie6e9febd8a5a4e7ad25d745639d42d1c7b9801b4
It is a bit clunky and doesn't have the App Info drag bar at the
bottom yet, but it is a start.
Also removed page hints because they are no longer used.
Change-Id: I1f8f82d33e6694cab1f1c762e78852ac0d40ab33
- Also fixing case where the all apps button to search for more apps
was not focusable
Bug: 20639227
Change-Id: Ie4d9092e654d3cafc0eb346b3bb744ec3e295e92
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.
Change-Id: I6fe69c2e1dd463402f51222715fae31b9d4dd240
> Using xml bitmap for changing alpha, instead of a new bitmap
> using state list animator, which changes the alpha of the
whole view, and not just the icon
Change-Id: I2dda9bfba390a24a83b162c3cf4bcb9a0865f4c2
* commit 'dd306188a6e8b4d00b8ef0ab402589c92802f04b':
Updating theme to use the light theme by default, instead of wallpaper theme > This allows us to use all the goodness of material theme > Cursor in folder edit text is no longer 1px wide
> This allows us to use all the goodness of material theme
> Cursor in folder edit text is no longer 1px wide
Change-Id: I705f5472ff71969ae45747dd127a8ba5253df44d
This reverts commit 878e8eefa5.
This change breaks folder panning while editing the folder name.
On mobile, open folder
click on the folder name
keyboard appears, launcher pans
click back/close folder and click the folder name again
keyboard appears, folder stays behind the keyboard
Change-Id: Ief977add004107d053b56dff18d222be9012706b
> Removing utility method for isAttachedToWindow
> Moving logic to calculate cell size from workspace to DeviceProfile
> Replacing some constants with xml resource variables
> Saving the item info using content values for better compatibility with other methods
Change-Id: Idd612633d97a6241cb31148df9466031374bd5a0
This is per an earlier CR comment "we should probably move all this code to its own package (launcher3.dragndrop) in a separate cl".
I'm not moving DragSource because it's referred from gsa code.
Bug: 22609426
Change-Id: Ia7204dab99c0c395c66b77143a2d60411153f5f3