This also means Taskbar is transient by default in automated tests,
instead of persistent. Updated some checks accordingly.
Flag: LEGACY ENABLE_TRANSIENT_TASKBAR ENABLED
Test: TaskbarExpandCollapse#hideShowTaskbar; TaplTestsTaskbar;
TaplTestsTransientTaskbar; TaplTestsPersistentTaskbar
Bug: 270395798
Change-Id: I48b4c809025a9bab0a37ada1317adee823b1a8f9
* Initial Patches for to support Q,R and S
- TODO create Widget Factory Holder
* Remove tracing
* Fixed Resources$NotFoundException
Lawnchair (Debug) bug report 15-Nov-2023 2:32:03 pm
version: 13 Dev (#2291) (13)
commit: c5bed50
build.brand: samsung
build.device: m30s
build.display: RP1A.200720.012.M307FXXS4CWC2
build.fingerprint: samsung/m30sdd/m30s:11/RP1A.200720.012/M307FXXS4CWC2:user/release-keys
build.hardware: exynos9611
build.id: RP1A.200720.012
build.manufacturer: samsung
build.model: SM-M307F
build.product: m30sdd
build.type: user
version.codename: REL
version.incremental: M307FXXS4CWC2
version.release: 11
version.sdk_int: 30
display.density_dpi: 420
isRecentsEnabled: false
error: Uncaught exception
android.view.InflateException: Binary XML file line #27 in app.lawnchair.debug:layout/task_desktop: Resource ID #0x106002f
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x106002f
at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:255)
at android.content.res.Resources.getColor(Resources.java:1169)
at com.android.quickstep.views.DesktopTaskView.onFinishInflate(DesktopTaskView.java:124)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1134)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at com.android.launcher3.util.ViewPool.inflateNewView(ViewPool.java:106)
at com.android.launcher3.util.ViewPool.lambda$initPool$1(ViewPool.java:69)
at com.android.launcher3.util.ViewPool.$r8$lambda$wSRnQcMZiOmM7xwf4gm88rNehhg(ViewPool.java:0)
at com.android.launcher3.util.ViewPool$$ExternalSyntheticLambda1.run(R8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:923)
* Fix java.lang.NoClassDefFoundError OnBackInvokedCallback$Stub
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/window/IOnBackInvokedCallback$Stub;
at com.android.launcher3.QuickstepTransitionManager.<init>(QuickstepTransitionManager.java:265)
at com.android.launcher3.uioverrides.QuickstepLauncher.buildAppTransitionManager(QuickstepLauncher.java:302)
at com.android.launcher3.uioverrides.QuickstepLauncher.setupViews(QuickstepLauncher.java:236)
at app.lawnchair.LawnchairLauncher.setupViews(LawnchairLauncher.kt:244)
at com.android.launcher3.Launcher.onCreate(Launcher.java:518)
at com.android.launcher3.uioverrides.QuickstepLauncher.onCreate(QuickstepLauncher.java:527)
at app.lawnchair.LawnchairLauncher.onCreate(LawnchairLauncher.kt:186)
at android.app.Activity.performCreate(Activity.java:8057)
at android.app.Activity.performCreate(Activity.java:8037)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.window.IOnBackInvokedCallback$Stub" on path: DexPathList[[zip file "/data/app/~~xd_Rtvu8nzsZdmkjP4cE7A==/app.lawnchair.debug-LCjip_oNAIceiLCO_DoA3g==/base.apk"],nativeLibraryDirectories=[/data/app/~~xd_Rtvu8nzsZdmkjP4cE7A==/app.lawnchair.debug-LCjip_oNAIceiLCO_DoA3g==/lib/arm64, /data/app/~~xd_Rtvu8nzsZdmkjP4cE7A==/app.lawnchair.debug-LCjip_oNAIceiLCO_DoA3g==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64, /system/product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.android.launcher3.QuickstepTransitionManager.<init>(QuickstepTransitionManager.java:265)
at com.android.launcher3.uioverrides.QuickstepLauncher.buildAppTransitionManager(QuickstepLauncher.java:302)
at com.android.launcher3.uioverrides.QuickstepLauncher.setupViews(QuickstepLauncher.java:236)
at app.lawnchair.LawnchairLauncher.setupViews(LawnchairLauncher.kt:244)
at com.android.launcher3.Launcher.onCreate(Launcher.java:518)
at com.android.launcher3.uioverrides.QuickstepLauncher.onCreate(QuickstepLauncher.java:527)
at app.lawnchair.LawnchairLauncher.onCreate(LawnchairLauncher.kt:186)
at android.app.Activity.performCreate(Activity.java:8057)
at android.app.Activity.performCreate(Activity.java:8037)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
* Clean up and add our own window manager proxy
- Add our own LawnchairWindowManagerProxy based on SystemWindowManagerProxy to reduce conflict when merging aosp
* Keep androidx.core.app.CoreComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/app.lawnchair.debug-
* Fix crash on LauncherPreviewRenderer on A10
FATAL EXCEPTION: main
Process: app.lawnchair.debug, PID: 8873
java.lang.NoSuchMethodError: No interface method getCurrentWindowMetrics()Landroid/view/WindowMetrics; in class Landroid/view/WindowManager; or its super classes (declaration of 'android.view.WindowManager' appears in /system/framework/framework.jar!classes3.dex)
at com.android.launcher3.graphics.LauncherPreviewRenderer.<init>(LauncherPreviewRenderer.java:246)
at app.lawnchair.views.LauncherPreviewView.renderView(LauncherPreviewView.kt:138)
at app.lawnchair.views.LauncherPreviewView.loadModelData$lambda$3$lambda$2(LauncherPreviewView.kt:109)
at app.lawnchair.views.LauncherPreviewView.$r8$lambda$cYc0chie-2LAfMVJGiDN9mdIeDA(Unknown Source:0)
at app.lawnchair.views.LauncherPreviewView$$ExternalSyntheticLambda1.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
* Add our own LawnchairWidgetHolder
* Reformat
* improved readability
* Pass spotless
* Fix Resources$NotFoundException
Lawnchair (Debug) bug report 19 Nov 2023 12:06:33 pm
version: 13 Dev (#2327) (13)
commit: 9683178
build.brand: Teclast
build.device: T40Pro_2022_EEA
build.display: V1.02_20230826
build.fingerprint: Teclast/T40Pro_2022_EEA/T40Pro_2022_EEA:12/SP1A.210812.016/221010:user/release-keys
build.hardware: ums9230_1h10
build.id: SP1A.210812.016
build.manufacturer: Teclast
build.model: T40 Pro_EEA
build.product: T40Pro_2022_EEA
build.type: user
version.codename: REL
version.incremental: 221010
version.release: 12
version.sdk_int: 31
display.density_dpi: 280
isRecentsEnabled: false
error: Uncaught exception
java.lang.RuntimeException: Unable to start activity ComponentInfo{app.lawnchair.debug/app.lawnchair.LawnchairLauncher}: android.content.res.Resources$NotFoundException: Resource ID #0x7f0700b8 type #0x5 is not valid
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3683)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3840)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:105)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:136)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2252)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7941)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:553)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0700b8 type #0x5 is not valid
at android.content.res.Resources.getFloat(Resources.java:1224)
at com.android.launcher3.DeviceProfile.(DeviceProfile.java:397)
at com.android.launcher3.DeviceProfile$Builder.build(DeviceProfile.java:1938)
at com.android.launcher3.InvariantDeviceProfile.initGrid(InvariantDeviceProfile.java:441)
at com.android.launcher3.InvariantDeviceProfile.initGrid(InvariantDeviceProfile.java:339)
at com.android.launcher3.InvariantDeviceProfile.initGrid(InvariantDeviceProfile.java:353)
at com.android.launcher3.InvariantDeviceProfile.(InvariantDeviceProfile.java:213)
at com.android.launcher3.InvariantDeviceProfile.$r8$lambda$DNcXzmawjoq65q3wgQi9M48DryY(Unknown Source:2)
at com.android.launcher3.InvariantDeviceProfile$$ExternalSyntheticLambda4.get(Unknown Source:0)
at com.android.launcher3.util.MainThreadInitializedObject.lambda$get$0(MainThreadInitializedObject.java:60)
at com.android.launcher3.util.MainThreadInitializedObject.$r8$lambda$xtvr3aByNYHC2nsBQ97HC1SKg4A(Unknown Source:0)
at com.android.launcher3.util.MainThreadInitializedObject$$ExternalSyntheticLambda0.get(Unknown Source:4)
at com.android.launcher3.util.TraceHelper.allowIpcs(TraceHelper.java:84)
at com.android.launcher3.util.MainThreadInitializedObject.get(MainThreadInitializedObject.java:59)
at com.android.launcher3.LauncherAppState.(LauncherAppState.java:166)
at com.android.launcher3.LauncherAppState.(LauncherAppState.java:109)
at com.android.launcher3.LauncherAppState$$ExternalSyntheticLambda12.get(Unknown Source:2)
at com.android.launcher3.util.MainThreadInitializedObject.lambda$get$0(MainThreadInitializedObject.java:60)
at com.android.launcher3.util.MainThreadInitializedObject.$r8$lambda$xtvr3aByNYHC2nsBQ97HC1SKg4A(Unknown Source:0)
at com.android.launcher3.util.MainThreadInitializedObject$$ExternalSyntheticLambda0.get(Unknown Source:4)
at com.android.launcher3.util.TraceHelper.allowIpcs(TraceHelper.java:84)
at com.android.launcher3.util.MainThreadInitializedObject.get(MainThreadInitializedObject.java:59)
at com.android.launcher3.LauncherAppState.getInstance(LauncherAppState.java:97)
at com.android.launcher3.Launcher.onCreate(Launcher.java:492)
at com.android.launcher3.uioverrides.QuickstepLauncher.onCreate(QuickstepLauncher.java:527)
at app.lawnchair.LawnchairLauncher.onCreate(LawnchairLauncher.kt:205)
at android.app.Activity.performCreate(Activity.java:8060)
at android.app.Activity.performCreate(Activity.java:8040)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3653)
... 12 more
* Keep InputMethodService.canImeRenderGesturalNavButtons
---------
Co-authored-by: Goooler <wangzongler@gmail.com>
- Set system bars appearance to light/dark depending on device
theme to ensure visibility
- Also fix issue where taskbar icons would appear partially
offscreen and prevent pressing nav buttons if you rotated
Fixes: 293438087
Test: adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.SetupWizardTestActivity
- Skip to the end (AllSetActivity), and ensure 3 buttons are visible
- Rotate device and ensure 3 buttons are still visible and functional
- Will also flash / wipe to the build once it's created
Flag: None
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:286fc215e632280fe0b401bfd713621104861288)
Merged-In: Ie2d9bf1e1d95a6ccbd1f9c592adb51390b21ad85
Change-Id: Ie2d9bf1e1d95a6ccbd1f9c592adb51390b21ad85
By default when deep press is detected (https://developer.android.com/reference/android/view/MotionEvent#CLASSIFICATION_DEEP_PRESS)
during LPNH triggers the long press action immediately. This change makes this toggelable.
Flag is set to enabled by default, which leads to the default behavior.
Fix: 310952290
Test: Manual
Flag: LEGACY ENABLE_LPNH_DEEP_PRESS ENABLED
Change-Id: I970fed697979ee528e54b8be0139d842f3a64c43
This will help to avoid breaking other test suites by this increase.
Bug: 311023703
Test: presubmit
Flag: N/A
Change-Id: Ia91b03b72fa6592684e7a1673b9b56448f637dd4
When opening freeform window from recents menu PiP should not
be started at the same time since the PiP transition can cause
freeform to not work as intended.
Bug: 299505542
Change-Id: I6392089b3ac9ce914fb37cc84780f28aa3fc75f8
With BAL hardening in V PendingIntent creator's need to expliciitly opt
in to grant their BAL privileges.
The change is a noop unless the `bal_require_opt_in_by_pending_intent_creator` flag is enabled.
Bug: 296478951
Flag: NA
Test: atest NexusLauncherTests:com.android.quickstep.FallbackRecentsTest NexusLauncherTests:com.android.quickstep.StartLauncherViaGestureTests
Change-Id: I7f2f4f3613f70b6ec0c398803a140ab93dcf1a03
Change the lottie files used to demonstrate the overview gesture for
mobile, foldable, and tablet.
Test: Went through overview gesture tutorial on mobile, foldable, and
tablet and ensured the animation played smoothly.
Fix: 283765711
Flag: N/A
Change-Id: I567eece9348d4c88b6f02fd267416ae155bcaf86
- Also fix WindowBounds.isLandscape to use full display bounds to determine isLandscape, otherwise both orientation will be treated as isLandscape when using availableSize
Bug: 309801705
Test: manual and presubmit
Flag: NONE
Change-Id: Ic7f4235e620d4760a9af356f23066fe5b23304e6
AbsSwipeUphandler has many potential and common NPEs. Added more null checks to AbsSwipeUpHandler
Flag: N/A
Fixes: 295905702
Fixes: 309535060
Test: StartLauncherViaGestureTests, quick switched and launched app from recents
Change-Id: I11f62eac423ae3c5792ce97ca49963f1e005b289