Merge "Fixing UI leaks when using inline-subclass" into main
diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java
index d3ee364..76c0f90 100644
--- a/src/com/android/launcher3/AbstractFloatingView.java
+++ b/src/com/android/launcher3/AbstractFloatingView.java
@@ -74,7 +74,8 @@
TYPE_TASKBAR_ALL_APPS,
TYPE_ADD_TO_HOME_CONFIRMATION,
TYPE_TASKBAR_OVERLAY_PROXY,
- TYPE_TASKBAR_PINNING_POPUP
+ TYPE_TASKBAR_PINNING_POPUP,
+ TYPE_PIN_IME_POPUP
})
@Retention(RetentionPolicy.SOURCE)
public @interface FloatingViewType {}
diff --git a/src/com/android/launcher3/model/data/ItemInfo.java b/src/com/android/launcher3/model/data/ItemInfo.java
index b82d0a0..62198cb 100644
--- a/src/com/android/launcher3/model/data/ItemInfo.java
+++ b/src/com/android/launcher3/model/data/ItemInfo.java
@@ -51,6 +51,7 @@
import com.android.launcher3.Workspace;
import com.android.launcher3.logger.LauncherAtom;
import com.android.launcher3.logger.LauncherAtom.AllAppsContainer;
+import com.android.launcher3.logger.LauncherAtom.Attribute;
import com.android.launcher3.logger.LauncherAtom.ContainerInfo;
import com.android.launcher3.logger.LauncherAtom.PredictionContainer;
import com.android.launcher3.logger.LauncherAtom.SettingsContainer;
@@ -67,6 +68,9 @@
import com.android.launcher3.util.UserIconInfo;
import com.android.systemui.shared.system.SysUiStatsLog;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Optional;
/**
@@ -187,6 +191,12 @@
@NonNull
public UserHandle user;
+ @NonNull
+ private ExtendedContainers mExtendedContainers = ExtendedContainers.getDefaultInstance();
+
+ @NonNull
+ private List<Attribute> mAttributeList = Collections.EMPTY_LIST;
+
public ItemInfo() {
user = Process.myUserHandle();
}
@@ -433,6 +443,7 @@
UserCache.INSTANCE.executeIfCreated(cache ->
itemBuilder.setUserType(getUserType(cache.getUserInfo(user))));
itemBuilder.setRank(rank);
+ itemBuilder.addAllItemAttributes(mAttributeList);
return itemBuilder;
}
@@ -491,7 +502,7 @@
default:
if (container <= EXTENDED_CONTAINERS) {
return ContainerInfo.newBuilder()
- .setExtendedContainers(getExtendedContainer())
+ .setExtendedContainers(mExtendedContainers)
.build();
}
}
@@ -499,12 +510,21 @@
}
/**
- * Returns non-AOSP container wrapped by {@link ExtendedContainers} object. Should be overridden
- * by build variants.
+ * Sets extra container info wrapped by {@link ExtendedContainers} object.
*/
- @NonNull
- protected ExtendedContainers getExtendedContainer() {
- return ExtendedContainers.getDefaultInstance();
+ public void setExtendedContainers(@NonNull ExtendedContainers extendedContainers) {
+ mExtendedContainers = extendedContainers;
+ }
+
+ /**
+ * Adds extra attributes to be added during logs
+ */
+ public void addLogAttributes(List<LauncherAtom.Attribute> attributeList) {
+ if (mAttributeList.isEmpty()) {
+ mAttributeList = new ArrayList<>(attributeList);
+ } else {
+ mAttributeList.addAll(attributeList);
+ }
}
/**
diff --git a/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java b/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java
index d329674..f4b99a0 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java
@@ -27,6 +27,7 @@
import android.content.Context;
import android.graphics.Rect;
import android.os.Process;
+import android.os.UserHandle;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
@@ -342,14 +343,9 @@
false);
mSuggestedWidgetsHeader.setExpanded(true);
- PackageItemInfo packageItemInfo = new PackageItemInfo(
+ PackageItemInfo packageItemInfo = new HighresPackageItemInfo(
/* packageName= */ SUGGESTIONS_PACKAGE_NAME,
- Process.myUserHandle()) {
- @Override
- public boolean usingLowResIcon() {
- return false;
- }
- };
+ Process.myUserHandle());
String suggestionsHeaderTitle = getContext().getString(
R.string.suggested_widgets_header_title);
String suggestionsRightPaneTitle = getContext().getString(
@@ -664,4 +660,15 @@
*/
public boolean showAllWidgets = false;
}
+
+ private static class HighresPackageItemInfo extends PackageItemInfo {
+ HighresPackageItemInfo(String packageName, UserHandle user) {
+ super(packageName, user);
+ }
+
+ @Override
+ public boolean usingLowResIcon() {
+ return false;
+ }
+ }
}