Commit Graph
672 Commits
Author SHA1 Message Date
Sunny Goyal b0416cc478 Merge changes from topic "revert-17983445-hotseat_span-WQWWPUHOTD" into tm-dev
* changes:
  Revert "Fix hotseat width to span a number of columns"
  Revert "Update workspace, cell layout, shortcut and widget, and cell size calculations."
2022-05-09 23:14:38 +00:00
Sunny Goyal 89a89d63a4 Revert "Fix hotseat width to span a number of columns"
Revert submission 17983445-hotseat_span

Reason for revert: b/231283023
Reverted Changes:
Ice4e37929:Fix hotseat width to span a number of columns
I9ed508490:Fix hotseat width to span a number of columns

Change-Id: Iabf67c5efd8155131a0c8a88192ddd671a43747b
2022-05-09 19:32:07 +00:00
Sunny Goyal f76524151d Merge "Replacing ItemInfoMatcher with predicate" into tm-dev 2022-05-03 20:04:55 +00:00
Sunny Goyal 32084d49d3 Replacing ItemInfoMatcher with predicate
This removed unnecessary componentName lookups when it
is not required. Many checks just rely on IDs and
userHandle

Bug: 231153610
Test: Presubmit
Change-Id: Ief93954abc5861062a9f55dc2ef181d3de106c62
2022-05-03 10:07:22 -07:00
Sunny Goyal 7bf8730634 Fixing wrong window insets estimation
Launcher was estimating the landscape insets incorrectly
causing the UI to get reloaded if device is rotated. This also
caused widgets to be refetched as a result of grid size change

Bug: 218067434
Test: Verified locally that the window bounds do not change
Change-Id: Ia7228296c78ea3056f4859e43696d4bfd9522d3c
2022-05-02 13:18:45 -07:00
Thales Lima 828875cd12 Fix hotseat width to span a number of columns
Bug: 227344807
Test: manual
Change-Id: Ice4e37929bcbb8c9cf3af340e67b6bec002578bd
2022-04-29 14:56:30 +00:00
Sebastián Franco 84051cd8bf Merge "Give the tests the ability to emulate other devices screens" into tm-dev 2022-04-27 17:25:55 +00:00
Sunny Goyal 52f4c16a94 Revert^2 "Removing some unused code from All-Apps"
13ae6784b5

Change-Id: I06a4c9cc6beba4fc87b4a9375872c68e71e1c5f6
2022-04-27 03:22:58 +00:00
Sebastian Franco 00aff95ac0 Give the tests the ability to emulate other devices screens
This code contains utility clases that can change the display
of a device and make it look like another device.
The function DisplayEmulator#emulate receives a DeviceEmulationData
a certain grid to emulate and a callback, everyting that happens
inside of the callback will happen when the device is being emulated
and can be used by other tests.

Example test:
package com.android.launcher3.deviceemulator;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.MediumTest;
import com.android.launcher3.deviceemulator.models.DeviceEmulationData;
import com.android.launcher3.ui.AbstractLauncherUiTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.concurrent.TimeUnit;

@MediumTest
@RunWith(AndroidJUnit4.class)
public class TestTest extends AbstractLauncherUiTest {
    @Test
    public void testEmulation() throws Exception {
        String deviceCode = "pixel6pro";
        DeviceEmulationData deviceData = DeviceEmulationData.getDevice(deviceCode);
        String grid = "normal";
        DisplayEmulator displayEmulator = new DisplayEmulator(mTargetContext);

        displayEmulator.emulate(deviceData, grid, () ->{
            TimeUnit.SECONDS.sleep(10);
            return true;
        });
    }
}

Test: You could use the test above to make your device look like a
Pixel6 pro for 10 secons.
Fix: 229028257

Change-Id: Icd79be405a2e14dda0bc5f555b0e46149e16f912
2022-04-25 11:57:58 -05:00
Andy Wickham 833b0a0b5b Merge "Adds Search Onboarding count and renames existing edu pref." into tm-dev 2022-04-25 00:26:51 +00:00
Sunny Goyal b1f6a3fe97 Merge "Revert "Removing some unused code from All-Apps"" into tm-dev 2022-04-22 19:55:42 +00:00
Sunny Goyal 13ae6784b5 Revert "Removing some unused code from All-Apps"
Revert submission 17866780-cancel-request

Reason for revert: wrong icons

Reverted Changes:
Iedc98e5ef:Cancelling previous request and clearing UI when a...
I72394fb42:Removing some unused code from All-Apps

Change-Id: I2ecefcaf07e6105a10f86b8dc19f75089e45a3e0
2022-04-22 19:53:37 +00:00
Sunny Goyal a938cc27a2 Merge "Removing some unused code from All-Apps" into tm-dev 2022-04-22 19:40:06 +00:00
Alex Chau e3b806366a Update pull back animation for tablet AllApps
- This is a follow-up of http://ag/17636490
- Introduced animation property specifically for pullback translation and alpha, which will invoke getRecyclerViewContainer directly on tablet, and invoke aggregate setter of appsView on phones
- Delay reset of pullback animation to after dismiss animation to avoid jump in value during state transition animation
- Introduced property factory for addictive properties similar to MultiScalePropertyFactory

Fix: 220345008
Test: manual on small and large screen
Change-Id: I7b5c0019c1d4d36c3c7ca4ec79e38e4eb09c32ca
2022-04-22 16:27:25 +01:00
Andy Wickham ef6f41a574 Adds Search Onboarding count and renames existing edu pref.
Note: I only updated the old variable name to not affect
exsiting values of the old preference.

Bug: 227627262
Test: Manually checked onboarding card only showed 3 times.
Change-Id: Ica6eca725be82ac7abf4681ba4ebcb33ee0178df
2022-04-21 23:33:14 -07:00
Sunny Goyal 3946ecd441 Removing some unused code from All-Apps
Bug: 229860311
Test: Verified on device
Change-Id: I72394fb421679688f87cdbf725859ec35529a59e
2022-04-20 09:54:48 -07:00
Shikha Malhotra e957b600d3 Refactor code to be used in LauncherLily features
Refactor add to workspace code to be used in Lily Launcher.
Also utilising code swap feature to swap out functionality of sorting
items on workspaces and finding next vacant space.

Bug: b/218186705
Test: Manually tested Launcher3 works.
Change-Id: I42a44eabeb307e1d23ef333e0a169437f9062bb6
2022-04-20 07:22:20 +00:00
Shikha Malhotra f78da1bae3 Review comments followup
These are review comments followup from ag/17399997

Bug: b/218187058
Test: manually test thet Launcher3 features work correctly
Change-Id: I9865a37c1ed663370dc28e7678994f3d961e3cd1
2022-04-12 14:33:07 +00:00
Sunny Goyal ba7cf0dc7d Fixing potential ANR when fetching for wallpaper info
Bug: 214581894
Test: Manual
Change-Id: I616b34b0ce6c96ed360073b2e8ff4eed81190add
2022-04-11 13:21:35 -07:00
Alex Chau 20af9304cb Override statusBar top inset in Launcher
Fix: 227600170
Test: manual on small and large screen devices
Change-Id: I1b0dacaf555db966d1e2a837310d9cebe3e60d7a
2022-04-04 17:39:31 +01:00
Alex Chau 5f8386cf26 Merge "Using the WindowMetrics API instead of display.getRealSize" into tm-dev 2022-03-31 10:58:40 +00:00
Thales Lima c1ea50a43d Merge "Make inline qsb part of grid attrs" into tm-dev 2022-03-31 08:30:10 +00:00
Sunny Goyal 36c0f76e21 Using the WindowMetrics API instead of display.getRealSize
Bug: 221961069
Bug: 195408476
Bug: 198965093
Test: Verified locally and presubmit
Change-Id: I4dac9c19df4c43e6a38ba5c05f27d25f4cfcb071
2022-03-30 21:07:23 +00:00
Thales Lima 12d0eff037 Make inline qsb part of grid attrs
This should make it more configurable, and be independent of the screen size set by the user.

Fix: 223726518
Test: atest Launcher3Tests:HotseatSizeTest
Test: atest Launcher3Tests:InlineQsbTest
Change-Id: If04f3fb0f556103f60b580c757a9fc06da561516
2022-03-30 20:57:57 +01:00
Jerry Chang f5d90b9ec2 Fix wrong split percentage after split layout been pushed up
The task thumbnails of splitting task might not start with (0, 0), like
the case when IME panel pushing up split layout. Updated to consider
different start position while calculating split percentage.

Fix: 218704243
Test: enter split in portrait, toggle on IME panel, observed task
      thumbnails been placed properly after swiped up to overview.
Change-Id: I5b0d9710b56e9d77b86369c7fff4bc3ca75d9c7e
2022-03-30 14:03:55 +00:00
Jeremy Sim b42345273c Fix paired icon placement in landscape/seascape
In grouped task view, paired icons will now align better with task thumbnails.

Fixes: 218783211

Test: Extensive manual testing on local device(s).
Change-Id: I372d2ee90302a8d96ace048ff4f82126d9b2b363
(cherry picked from commit d6826c74a4)
2022-03-19 00:10:16 +00:00
Alex Chau a6907dc8c9 Use correct config.smallestScreenWidthDp when creating Resource in DeviceProfile
- This is a regression from ag/17070486 when tested, likely because DeviceProfiles are no longer re-created when changing display sizes, so correct values need to be calculated on the starting state

Bug: 221961069
Test: verify smallestWidth specific resource on changing display sizes
Change-Id: I1539bad4b35b36f0056d59307ab5fbec23a71f49
2022-03-18 15:24:07 +00:00
Brian Isganitis 5b79bbbcbc Merge "Add support for dedicated executors for package tasks." into tm-dev 2022-03-10 00:29:37 +00:00
Sunny Goyal 187b16cb91 Updating window manager estimation logic:
> Moving the code from ApiWrapper to Resource overlays for better maintainability
> Accounting for display cutouts in insets estimation
> Using same logic in display controller and view inset dispatching

Test: Verified on device
Bug: 221961069
Change-Id: I78466353563692ce3f7512b0146ef8b61ef14bc0
2022-03-09 11:15:58 -08:00
Brian Isganitis 19f2d0dcd4 Add support for dedicated executors for package tasks.
Test: Manual
Bug: 215233405
Change-Id: I4dfdeabc8e38b84187e841c77d6e2ec2ba32aac5
2022-03-08 16:16:21 -08:00
Alex Chau 6ed408f59f Use less icons in hotseat when in 3 button nav for tablet
- We have less space on tablets when 3 button nav is enabled because QSB is now inline with the icons. This creates a new attribute to define how many icons should be shown when in that mode. This could be used for other grids in the future as well.
- InvariantDeviceProfile now listens for nav mode changes

Fixes 214882090, 221420204
Test: manual

Change-Id: I012432a1a322c4e5505e46a1198c841ab124aaa6
2022-03-07 18:38:05 +00:00
Sunny Goyal 4403d078a6 Moving NavigationMode to display controller
Navigation mode affects display properties like bounds and
most listeners already had a similar display listener. This
will remove race conditions when managing the two events.

Bug: 221961069
Test: Presubmit
Change-Id: If7a22e006e6b969ecddf075001066809aa72995c
2022-03-04 18:11:33 -08:00
Sunny Goyal 6bc4257d86 Separating refresh rate tracking to a separate class
Bug: 221961069
Test: Presubmit
Change-Id: I04091ebc9f3d88d2dbbde1bf0d5390c815e026d1
2022-02-28 17:13:00 -08:00
Nicolo' Mazzucato 5765d42ada Fix jump in animation for hotseat while re-arranging icons
While re-arranging icons the hotseat remains in scale 1.0f, while the workspace reduces it's scale (as defined by SpringLoadedState.java). Previously, the code to aggregate animations was assuming hotseat and workspace always had the same scale.

MultiScaleProperty.get() was being used to set the starting value of the animation. Previously, it was returning the last aggregated value. However, this value was correct only for the workspace, but not for the hotseat. Returning the current view scale makes it always correct.

Bug: 220271046
Test: Dragged icons from hotseat to workspace, and verified animation didn't jump
Change-Id: Ic01776c1d8e3967624626ed7c44d194a06295790
2022-02-22 18:27:26 +01:00
Brian Isganitis 7b046e7e27 Merge "Add predictions row to taskbar all apps." 2022-02-15 19:24:53 +00:00
Nicolo' Mazzucato 12131a40fe Add Z scaling during unfold to launcher
The unfold progresses are mapped to 0.85 - 1 range and set as a scale for launcher.

In case of multiple scale animations for workspace and hotseat, they are combined using MultiScaleProperty (e.g. opening an app while unfolding/going to all apps while unfolding). Note that this is a pretty difficult scenario to be in. If that happens, we multiply all values and bound the result between the max and min values.

Bug: 217368525
Test: atest MultiScalePropertyTest and manually
Change-Id: I6131c39f36deade0b7280c72edda2d72045344e9
2022-02-15 17:02:36 +01:00
Brian Isganitis 099945b075 Add predictions row to taskbar all apps.
- We need to listen to DeviceProfile changes in case the number of
  columns changes in the grid. I made an interface/mixin separate from
  ActivityContext to avoid polutting the latter with too many things. I
  also applied this change to existing taskbar A-Z grid.
- Added all apps visited count to onboarding preferences for only
  showing "All Apps" label in place of divider 20 times. Label is also
  tracked on taskbar side and should be kept in sync.

Test: Manual
Fix: 216843395
Bug: 174174514
Change-Id: I97aa91397c334123626caf18251f19e17c7104fb
2022-02-14 11:24:16 -08:00
Evan Rosky 52ab94bf17 Don't update everything when only refreshrate changes
This was going through the whole display-info-changed flow
when only the refreshrate changed. This was causing updates
with outdated information (where displaymanager callback
happens before configurationchanged). The result is that
things like touch-monitors (based on display info) were
out-of-sync with view content (which is based on configuration).

This change just updates the local record of screenrefresh
when it changes.

Bug: 179308296
Test: With fixed-rotation-in-config, open recents and repeatedly
      rotate the device. Make sure touch regions stay aligned
      with recents content.
Change-Id: I9a8c553dfa55ec4402edcecac44bc87cb51c75fc
2022-01-26 12:11:02 -08:00
Sunny Goyal fcb9182336 Merge "Updating logic to check if icon needs badging" 2022-01-24 16:20:34 +00:00
Alex Chau 3ec6fc46cf Log display size and bounds returned from each dispaly
Bug: 211775278
Test: manual
Change-Id: I87389ccae5dee2c9a474e93cf8466a11ab6b49d4
2022-01-20 16:04:56 +00:00
Sunny Goyal 7dece749a3 Updating logic to check if icon needs badging
Bug: 209503720
Test: Manual
Change-Id: I66f0dbaf81be3190a106323fe3ce87717626d8e7
2022-01-19 17:22:46 +05:30
Tony Wickham 7b40594bc7 Merge changes I36f6cfb8,I7c784765
* changes:
  Create new window for Taskbar Nav Buttons when taskbar is focusable
  Make taskbar focusable when folder is open to get IME input
2022-01-14 17:12:08 +00:00
Tony Wickham c07fb08a1e Make taskbar focusable when folder is open to get IME input
- Remove ActivityContext#supportsIme(), as it's always true now
- Add OnFolderStateChangedListener, which we register when clicking on a taskbar folder icon to set the window focusable/not.
- Also remove Folder.STATE_NONE and instead default to STATE_CLOSED (renamed from STATE_SMALL).

TODO: make sure back button is visible above IME (followup CL)

Test: Open a folder from taskbar while in an app, no animation jump and can change folder name
Bug: 180051157
Change-Id: I7c7847657d462c16677d66b9ffa8b6fe5f164084
2022-01-12 14:22:31 -08:00
Michael Groover 871467b651 Add required flag to registerReceiver call in LauncherAppState
Android T adds support to allow a runtime receiver to be registered as
not exported, but to ensure apps can take advantage of this, calls to
registerReceiver must specify a flag indicating whether the receiver
should be exported for apps targeting T+ that are registering for
unprotected broadcasts. This commit adds the RECEIVER_EXPORTED
flag to the call to registerReceiver in LauncherAppState when
registering for ACTION_FORCE_RELOAD.

Bug: 161145287
Test: Build
Change-Id: I9ffb5e00f2ce5bc9dcff4b681237ba06604fc995
2022-01-06 12:12:21 -08:00
Tony Wickham ffe1255ad2 Merge "Update hotseat alpha in TaskbarLauncherStateController#init()" into sc-v2-dev am: e064f51642 am: 5e9a8503b6
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16492578

Change-Id: If50f4410ade4b1a6173c29eb06229f4396732bef
2021-12-21 00:56:52 +00:00
Tony Wickham bf07660f9e Update hotseat alpha in TaskbarLauncherStateController#init()
Technically the consumer should do that already, but the consumer isn't called if the value isn't changed (in this case, it's going from 1 to 1). So explicitly call the consumer once in init().

Test: Open an app, toggle dark theme from quick settings, go home and ensure hotseat isn't visible during the transition
Fixes: 211002647
Change-Id: I5a9680282b3982d9b6f982833cd671b224767518
2021-12-16 18:29:41 +00:00
Jon Miranda 986a447ee2 Merge "Play return to icon animation if user swipes back to All Apps." into sc-v2-dev am: 52ee4ec4aa am: faedc9004c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16194658

Change-Id: If3e72442f3cd3b976d688ffef366a188683247fe
2021-12-06 19:03:41 +00:00
Jon Miranda 52ee4ec4aa Merge "Play return to icon animation if user swipes back to All Apps." into sc-v2-dev 2021-12-06 18:17:52 +00:00
Alex Chau eef3ed6628 Merge "Destroy activity/view references to avoid memory leak" into sc-v2-dev am: 683b4cd824 am: f1c38718d5
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16365768

Change-Id: I0144c29e4ca9e0ea04d831f4473b4fd6ccf21a8f
2021-12-03 12:57:05 +00:00
Vinit Nayak 573fca80f6 Destroy activity/view references to avoid memory leak
Bug: 204891006
Change-Id: If60ac1716c30ebe68fb6e7457d71f542d3075422
2021-12-02 16:05:52 -08:00