* 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>
This error occurs when dock grid is greater than workspace grid
Error :
java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
at com.android.launcher3.CellLayout$ViewCluster.isViewTouchingEdge(CellLayout.java:2053)
at com.android.launcher3.CellLayout.pushViewsToTempLocation(CellLayout.java:1894)
at com.android.launcher3.CellLayout.attemptPushInDirection(CellLayout.java:2173)
at com.android.launcher3.CellLayout.rearrangementExists(CellLayout.java:2372)
at com.android.launcher3.celllayout.ReorderAlgorithm.findReorderSolution(ReorderAlgorithm.java:76)
at com.android.launcher3.celllayout.ReorderAlgorithm.calculateReorder(ReorderAlgorithm.java:185)
at com.android.launcher3.CellLayout.calculateReorder(CellLayout.java:2435)
at com.android.launcher3.CellLayout.performReorder(CellLayout.java:2453)
at com.android.launcher3.Workspace.manageReorderOnDragOver(Workspace.java:2589)
at com.android.launcher3.Workspace.onDragOver(Workspace.java:2570)
at com.android.launcher3.dragndrop.DragController.checkTouchMove(DragController.java:489)
at com.android.launcher3.dragndrop.DragController.handleMoveEvent(DragController.java:453)
at com.android.launcher3.dragndrop.LauncherDragController.startDrag(LauncherDragController.java:154)
at com.android.launcher3.dragndrop.DragController.startDrag(DragController.java:156)
at com.android.launcher3.Workspace.beginDragShared(Workspace.java:1830)
at com.android.launcher3.Workspace.beginDragShared(Workspace.java:1732)
at com.android.launcher3.Workspace.startDrag(Workspace.java:1721)
at com.android.launcher3.touch.ItemLongClickListener.beginDrag(ItemLongClickListener.java:85)
at com.android.launcher3.touch.ItemLongClickListener.onWorkspaceItemLongClick(ItemLongClickListener.java:65)
at com.android.launcher3.touch.ItemLongClickListener.$r8$lambda$nz9MSaglTImbNX-jBQmvpOY7s8M
* Alternative solution could be to set
onTaskViewVisibilityChanged(true) for the taskView that is about
to be dismissed so it loads it's taskIcon/thumbnail back from the cache
* However, that does still leave us open to race conditions (even though
we can be reasonably confident the icon is probably in the cache)
* Also made other changes to allow already public fields on some classes
to be mockable for unit testing
Fixes: 275267738
Test: Tested with fullscreen task at end of overview,
GroupedTaskView at end of overview,
Initiating split from home,
Initiating split from overview actions,
Initiating split from overview app icon
Change-Id: Ic9059c93c07b90f61c9f418d5d36d6ba201ff96a
Previously we were using any touch outside of the panel to move
the container, but we want to check this last, after checking if
the touch is near the scrollbar (in which case it should intercept
instead).
Test: Manual
Flag: N/A
Fix: 236661990
Change-Id: I518c546356d1f6c6cedf4b31fa621295dd090175
Fixes: 275269031
Test: use two panel device
verify taskbar icon size in portrait
verify taskbar icon size in landscape
rotate between the two orientation
Change-Id: I21ae4aee90c3aa54615d8d0881acb40d8b4f351f