From a35d1f2a68896d325d42a0d815b65aec0e582887 Mon Sep 17 00:00:00 2001 From: Rafael de Moura Dev <93414086+Rafael2616@users.noreply.github.com> Date: Thu, 5 Dec 2024 03:40:30 -0300 Subject: [PATCH] some fixes for lower Android versions (#5046) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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) --- .../src/com/android/launcher3/model/AppEventProducer.java | 6 +++++- src/com/android/launcher3/AppWidgetResizeFrame.java | 2 ++ .../android/launcher3/widget/LauncherAppWidgetHostView.java | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/launcher3/model/AppEventProducer.java b/quickstep/src/com/android/launcher3/model/AppEventProducer.java index f5f5f9b130..9c4d4b7cae 100644 --- a/quickstep/src/com/android/launcher3/model/AppEventProducer.java +++ b/quickstep/src/com/android/launcher3/model/AppEventProducer.java @@ -268,9 +268,13 @@ public class AppEventProducer implements StatsLogConsumer { private AppTarget createTempFolderTarget() { - return new AppTarget.Builder(new AppTargetId("folder:" + SystemClock.uptimeMillis()), + try { + return new AppTarget.Builder(new AppTargetId("folder:" + SystemClock.uptimeMillis()), mContext.getPackageName(), Process.myUserHandle()) .build(); + } catch (NoClassDefFoundError e) { + return null; + } } private String getContainer(LauncherAtom.ItemInfo info) { diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java index ee5fe20d4c..be7756234d 100644 --- a/src/com/android/launcher3/AppWidgetResizeFrame.java +++ b/src/com/android/launcher3/AppWidgetResizeFrame.java @@ -4,6 +4,7 @@ import static com.android.launcher3.CellLayout.SPRING_LOADED_PROGRESS; import static com.android.launcher3.LauncherAnimUtils.LAYOUT_HEIGHT; import static com.android.launcher3.LauncherAnimUtils.LAYOUT_WIDTH; import static com.android.launcher3.LauncherPrefs.RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN; +import static com.android.launcher3.Utilities.ATLEAST_Q; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGET_RESIZE_COMPLETED; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGET_RESIZE_STARTED; import static com.android.launcher3.views.BaseDragLayer.LAYOUT_X; @@ -211,6 +212,7 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O mSystemGestureExclusionRects.get(i).set(dragHandle.getLeft(), dragHandle.getTop(), dragHandle.getRight(), dragHandle.getBottom()); } + if (!ATLEAST_Q) return; setSystemGestureExclusionRects(mSystemGestureExclusionRects); } diff --git a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java index 44ab966472..10c9fc6525 100644 --- a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java +++ b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java @@ -16,6 +16,8 @@ package com.android.launcher3.widget; +import static com.android.launcher3.Utilities.ATLEAST_Q; + import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.graphics.Rect; @@ -123,8 +125,10 @@ public class LauncherAppWidgetHostView extends BaseLauncherAppWidgetHostView super.setAppWidget(appWidgetId, info); if (!mTrackingWidgetUpdate) { mTrackingWidgetUpdate = true; - Trace.beginAsyncSection(TRACE_METHOD_NAME + info.provider, appWidgetId); Log.i(TAG, "App widget created with id: " + appWidgetId); + if (ATLEAST_Q) { + Trace.beginAsyncSection(TRACE_METHOD_NAME + info.provider, appWidgetId); + } } }