fixed NPEs below q(#5048)

* 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
This commit is contained in:
Rafael de Moura Dev
2024-12-10 18:47:26 -03:00
committed by GitHub
parent 742ff94968
commit 5e20759cc8
5 changed files with 13 additions and 6 deletions

View File

@@ -253,12 +253,12 @@ public class AppEventProducer implements StatsLogConsumer {
return createTempFolderTarget();
}
if (id != null && cn != null) {
if (shortcutInfo != null) {
return new AppTarget.Builder(new AppTargetId(id), shortcutInfo).build();
}
if (!Utilities.ATLEAST_Q) {
return null;
}
if (shortcutInfo != null) {
return new AppTarget.Builder(new AppTargetId(id), shortcutInfo).build();
}
return new AppTarget.Builder(new AppTargetId(id), cn.getPackageName(), userHandle)
.setClassName(cn.getClassName())
.build();

View File

@@ -16,6 +16,8 @@
package com.android.launcher3.compat;
import static com.android.launcher3.Utilities.ATLEAST_Q;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
@@ -110,6 +112,6 @@ public class AccessibilityManagerCompat {
}
public static int getRecommendedTimeoutMillis(Context context, int originalTimeout, int flags) {
return getManager(context).getRecommendedTimeoutMillis(originalTimeout, flags);
return ATLEAST_Q ? getManager(context).getRecommendedTimeoutMillis(originalTimeout, flags) : originalTimeout;
}
}

View File

@@ -22,6 +22,7 @@ import android.content.pm.LauncherApps;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageInstaller.SessionInfo;
import android.content.pm.PackageManager;
import android.os.Process;
import android.os.UserHandle;
import android.text.TextUtils;
@@ -262,6 +263,6 @@ public class InstallSessionHelper implements SafeCloseable {
}
public static UserHandle getUserHandle(@NonNull final SessionInfo info) {
return info.getUser();
return Utilities.ATLEAST_Q ? info.getUser() : Process.myUserHandle();
}
}

View File

@@ -136,8 +136,10 @@ public class LauncherAppWidgetHostView extends BaseLauncherAppWidgetHostView
public void updateAppWidget(RemoteViews remoteViews) {
if (mTrackingWidgetUpdate && remoteViews != null) {
Log.i(TAG, "App widget with id: " + getAppWidgetId() + " loaded");
Trace.endAsyncSection(
if (ATLEAST_Q) {
Trace.endAsyncSection(
TRACE_METHOD_NAME + getAppWidgetInfo().provider, getAppWidgetId());
}
mTrackingWidgetUpdate = false;
}
if (isDeferringUpdates()) {

View File

@@ -162,6 +162,8 @@ public class WidgetCell extends LinearLayout {
mWidgetName = findViewById(R.id.widget_name);
mWidgetDims = findViewById(R.id.widget_dims);
mWidgetDescription = findViewById(R.id.widget_description);
mWidgetAddButton = findViewById(R.id.widget_add_button);
mWidgetTextContainer = findViewById(R.id.widget_text_container);
FontManager fontManager = FontManager.INSTANCE.get(getContext());
fontManager.setCustomFont(mWidgetName, R.id.font_body_medium);