- Closing from app to home where weird artifacts shown
- Duplicated icon after adding new icon in the folder
- Stuck icon when moving from app to home
closes the following
- #5084
- #5081
- #5074
* fixed java.lang.NoSuchMethodError: No interface method toList()
´´´
Ljava/util/List; in class Ljava/util/stream/Stream; or its super classes (declaration of 'java.util.stream.Stream' appears in /system/framework/core-oj.jar)
at com.android.launcher3.model.WidgetsModel.getFilteredWidgetsListForPicker(WidgetsModel.java:99)
at com.android.launcher3.model.WidgetsModel.getWidgetsListForPicker(WidgetsModel.java:122)
at com.android.launcher3.model.BaseLauncherBinder.bindWidgets(BaseLauncherBinder.java:204)
at com.android.launcher3.model.LoaderTask.run(LoaderTask.java:338)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
´´´
* fix crashes when trying to customize from folders
* fix NoClassDefFound attempting to create new folder in lower apis
* fix java.lang.NoSuchMethodError: No static method beginAsyncSection(Ljava/lang/String;I)V in class Landroid/os/Trace; or its super classes (declaration of 'android.os.Trace' appears in /system/framework/framework.jar!classes2.dex) when adding widgets below Q
at com.android.launcher3.widget.LauncherAppWidgetHostView.setAppWidget(LauncherAppWidgetHostView.java:126)
at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:382)
at com.android.launcher3.widget.LauncherWidgetHolder.createViewInternal(LauncherWidgetHolder.java:447)
at com.android.launcher3.widget.LauncherWidgetHolder.createView(LauncherWi
* fix java.lang.NoSuchMethodError: No static method beginAsyncSection(Ljava/lang/String;I)V in class Landroid/os/Trace; or its super classes (declaration of 'android.os.Trace' appears in /system/framework/framework.jar!classes2.dex) when adding widgets below Q
at com.android.launcher3.widget.LauncherAppWidgetHostView.setAppWidget(LauncherAppWidgetHostView.java:126)
at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:382)
at com.android.launcher3.widget.LauncherWidgetHolder.createViewInternal(LauncherWidgetHolder.java:447)
at com.android.launcher3.widget.LauncherWidgetHolder.createView(LauncherWi
* fix java.lang.NoSuchMethodError: No virtual method setSystemGestureExclusionRects(Ljava/util/List;)V in class Lcom/android/launcher3/AppWidgetResizeFrame; or its super classes (declaration of 'com.android.launcher3.AppWidgetResizeFrame' appears in /data/app/app.lawnchair.play.debug-ewPju7gaDxUbh-ipLPLIoA==/base.apk!classes6.dex)
* fix more NoSuchMethodError
* fix NPE´s
* fix: disable showing addButton widget as it not make sense i think
* fix java.lang.NoSuchMethodError: No virtual method getInstallerUid()I in class Landroid/content/pm/PackageInstaller$SessionInfo; or its super classes (declaration of 'android.content.pm.PackageInstaller$SessionInfo' appears in /system/framework/framework.jar)
at com.android.launcher3.pm.InstallSessionHelper.getUserHandle(InstallSessionHelper.java:265)
at com.android.launcher3.pm.InstallSessionHelper.verify(InstallSessionHelper.java:164)
* fix java.lang.NoSuchMethodError: No virtual method getInstallerUid()I in class Landroid/content/pm/PackageInstaller$SessionInfo; or its super classes (declaration of 'android.content.pm.PackageInstaller$SessionInfo' appears in /system/framework/framework.jar)
at com.android.launcher3.pm.InstallSessionHelper.getUserHandle(InstallSessionHelper.java:265)
at com.android.launcher3.pm.InstallSessionHelper.verify(InstallSessionHelper.java:164)
* Update InstallSessionHelper
* revert changes in BaseWidgetSheet
* apply changes from code review
* fixed java.lang.NoSuchMethodError: No interface method toList()
´´´
Ljava/util/List; in class Ljava/util/stream/Stream; or its super classes (declaration of 'java.util.stream.Stream' appears in /system/framework/core-oj.jar)
at com.android.launcher3.model.WidgetsModel.getFilteredWidgetsListForPicker(WidgetsModel.java:99)
at com.android.launcher3.model.WidgetsModel.getWidgetsListForPicker(WidgetsModel.java:122)
at com.android.launcher3.model.BaseLauncherBinder.bindWidgets(BaseLauncherBinder.java:204)
at com.android.launcher3.model.LoaderTask.run(LoaderTask.java:338)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
´´´
* fix crashes when trying to customize from folders
* fix NoClassDefFound attempting to create new folder in lower apis
* fix java.lang.NoSuchMethodError: No static method beginAsyncSection(Ljava/lang/String;I)V in class Landroid/os/Trace; or its super classes (declaration of 'android.os.Trace' appears in /system/framework/framework.jar!classes2.dex) when adding widgets below Q
at com.android.launcher3.widget.LauncherAppWidgetHostView.setAppWidget(LauncherAppWidgetHostView.java:126)
at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:382)
at com.android.launcher3.widget.LauncherWidgetHolder.createViewInternal(LauncherWidgetHolder.java:447)
at com.android.launcher3.widget.LauncherWidgetHolder.createView(LauncherWi
* fix java.lang.NoSuchMethodError: No static method beginAsyncSection(Ljava/lang/String;I)V in class Landroid/os/Trace; or its super classes (declaration of 'android.os.Trace' appears in /system/framework/framework.jar!classes2.dex) when adding widgets below Q
at com.android.launcher3.widget.LauncherAppWidgetHostView.setAppWidget(LauncherAppWidgetHostView.java:126)
at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:382)
at com.android.launcher3.widget.LauncherWidgetHolder.createViewInternal(LauncherWidgetHolder.java:447)
at com.android.launcher3.widget.LauncherWidgetHolder.createView(LauncherWi
* fix java.lang.NoSuchMethodError: No virtual method setSystemGestureExclusionRects(Ljava/util/List;)V in class Lcom/android/launcher3/AppWidgetResizeFrame; or its super classes (declaration of 'com.android.launcher3.AppWidgetResizeFrame' appears in /data/app/app.lawnchair.play.debug-ewPju7gaDxUbh-ipLPLIoA==/base.apk!classes6.dex)
* Patch fix for Android 13 and below
tested in Android 9, 10 and 13 and works fine.
* fix crash dragging the icons from drawer to home screen
* use LawnchairWindowManagerProxy
---------
Co-authored-by: MrSluffy <werdna.jac@gmail.com>
Pull #4417 implemented this incompletely, resulting in breakage in
NothingOS 2.6.
Transaction needs to be applied so that the animation chain can
continue.
Signed-off-by: Juhyung Park <qkrwngud825@gmail.com>
Currently the recents activity is started by a pending intent created
by launcher. And the sender is system server.
(HIERARCHY_OP_TYPE_PENDING_INTENT in WindowOrganizerController)
If the intent creator doesn't have visible windows, e.g. launcher is
occluded by its another embedded of another package, then the background
launch policy will check whether the intent sender is allowed. But
system server also doesn't have visible windows, which causes
BackgroundActivityStartController#
checkBackgroundActivityStartAllowedBySender to return BalVerdict.BLOCK.
Which will set MOVE_TO_FRONT_AVOID_PI_ONLY_CREATOR_ALLOWS to disallow
moving the target task to front.
See I72a6c22a5fb27aeac52a4e5d46c6a16e28ee6757 for the block policy.
Although currently the recents activity can still move to front because
some places miss to check blocking the launch. Then it is like just
using a security hole.
By adding the background launch permission hint to ActivityOptions,
BackgroundActivityStartController#hasBalPermission will check if the
real caller has permission START_ACTIVITIES_FROM_BACKGROUND. Then
it will pass because the intent sender is system server.
Bug: 341618283
Flag: EXEMPT bugfix
Test: atest NexusLauncherTests: \
com.android.quickstep.TaskAnimationManagerTest
Test: Swipe to minus one screen. Click a news item to Launch chrome.
Swipe from bottom to return to home. There should not have an
error log:
"Without Android 15 BAL hardening this activity would be moved
to the foreground ... only the creator of the PendingIntent
allows BAL. realCallingPackage: android.uid.system:1000 ..."
(from ActivityStarter#logPIOnlyCreatorAllowsBAL)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a37161182e76cf445b660d1d4ac138476cfa278e)
Merged-In: I19153f6553c09421bca248d4ff9110d168b34f98
Change-Id: I19153f6553c09421bca248d4ff9110d168b34f98
When using a 3rd party launcher most likely
Log:
E AndroidRuntime: Process: com.android.launcher3, PID: 2783
E AndroidRuntime: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.USER_UNLOCKED flg=0x50000010 (has extras) } in com.android.launcher3.util.SimpleBroadcastReceiver@89bb61a
E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1818)
E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args.$r8$lambda$mcNAAl1SQ4MyJPyDg8TJ2x2h0Rk(Unknown Source:0)
E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:959)
E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:100)
E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:232)
E AndroidRuntime: at android.os.Looper.loop(Looper.java:317)
E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8502)
E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:554)
E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
E AndroidRuntime: Caused by: java.lang.IllegalStateException: Existing input consumer found with name: recents_animation_input_consumer, display: 0, user: UserHandle{0}
E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3190)
E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3166)
E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3149)
E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3091)
E AndroidRuntime: at android.view.IWindowManager$Stub$Proxy.createInputConsumer(IWindowManager.java:4872)
E AndroidRuntime: at com.android.systemui.shared.system.InputConsumerController.registerInputConsumer(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:24)
E AndroidRuntime: at com.android.quickstep.TouchInteractionService.onUserUnlocked(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:51)
E AndroidRuntime: at com.android.quickstep.TouchInteractionService$$ExternalSyntheticLambda0.run(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:12)
E AndroidRuntime: at com.android.launcher3.util.RunnableList.executeAllAndClear(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:21)
E AndroidRuntime: at com.android.launcher3.util.RunnableList.executeAllAndDestroy(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:4)
E AndroidRuntime: at com.android.launcher3.util.LockedUserState.access$notifyUserUnlocked(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:3)
E AndroidRuntime: at com.android.launcher3.util.LockedUserState$mUserUnlockedReceiver$1.accept(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:22)
E AndroidRuntime: at com.android.launcher3.util.SimpleBroadcastReceiver.onReceive(go/retraceme 015d387a8a548af421dcff814eada6998d8d1f185998fc40f30bbeef937dbdc3:3)
E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1810)
E AndroidRuntime: ... 10 more
E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
E AndroidRuntime: at com.android.server.wm.InputMonitor.createInputConsumer(InputMonitor.java:226)
E AndroidRuntime: at com.android.server.wm.WindowManagerService.createInputConsumer(WindowManagerService.java:6543)
E AndroidRuntime: at android.view.IWindowManager$Stub.onTransact(IWindowManager.java:2612)
E AndroidRuntime: at com.android.server.wm.WindowManagerService.onTransact(WindowManagerService.java:1406)
E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1496)
Co-authored-by: Ido Ben-Hur <idoybh2@gmail.com>