diff --git a/lawnchair/res/layout/smartspace_widget.xml b/lawnchair/res/layout/smartspace_widget.xml
new file mode 100644
index 0000000000..c02fe35e35
--- /dev/null
+++ b/lawnchair/res/layout/smartspace_widget.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt b/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt
index 4841d43f12..c9f7a6a822 100644
--- a/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt
+++ b/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt
@@ -2,7 +2,6 @@ package app.lawnchair
import android.appwidget.AppWidgetProviderInfo
import android.content.Context
-import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -62,7 +61,7 @@ class LawnchairAppWidgetHostView @JvmOverloads constructor(
companion object {
private val customLayouts = mapOf(
- SmartspaceAppWidgetProvider.componentName to R.layout.search_container_workspace
+ SmartspaceAppWidgetProvider.componentName to R.layout.smartspace_widget
)
@JvmStatic
diff --git a/lawnchair/src/app/lawnchair/smartspace/SmartspaceViewContainer.kt b/lawnchair/src/app/lawnchair/smartspace/SmartspaceViewContainer.kt
index 702648a5b5..f555d545f8 100644
--- a/lawnchair/src/app/lawnchair/smartspace/SmartspaceViewContainer.kt
+++ b/lawnchair/src/app/lawnchair/smartspace/SmartspaceViewContainer.kt
@@ -17,7 +17,7 @@ import com.patrykmichalik.preferencemanager.firstBlocking
class SmartspaceViewContainer @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, private val previewMode: Boolean = false
-) : FrameLayout(context, attrs), View.OnLongClickListener {
+) : FrameLayout(context, attrs) {
private val smartspaceView: View
@@ -27,6 +27,10 @@ class SmartspaceViewContainer @JvmOverloads constructor(
smartspaceView = if (prefs.enableEnhancedSmartspace.firstBlocking()) {
val view = inflater.inflate(R.layout.smartspace_enhanced, this, false) as BcSmartspaceView
view.previewMode = previewMode
+ view.setOnLongClickListener {
+ openOptions()
+ true
+ }
view
} else {
inflater.inflate(R.layout.smartspace_legacy, this, false)
@@ -34,19 +38,14 @@ class SmartspaceViewContainer @JvmOverloads constructor(
addView(smartspaceView)
}
- fun setupInWorkspace() {
- smartspaceView.setOnLongClickListener(this)
- }
-
- override fun onLongClick(v: View): Boolean {
- if (previewMode) return false
- if (!PreferenceManager2.getInstance(context).enableEnhancedSmartspace.firstBlocking()) return false
+ private fun openOptions() {
+ if (previewMode) return
+ if (!PreferenceManager2.getInstance(context).enableEnhancedSmartspace.firstBlocking()) return
val launcher = context.launcher
val pos = Rect()
launcher.dragLayer.getDescendantRectRelativeToSelf(smartspaceView, pos)
OptionsPopupView.show(launcher, RectF(pos), listOf(getCustomizeOption()), true)
- return true
}
private fun getCustomizeOption() = OptionsPopupView.OptionItem(
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 211158f72e..8ecde1d1f0 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -131,7 +131,6 @@ import java.util.function.Predicate;
import java.util.stream.Collectors;
import app.lawnchair.smartspace.SmartspaceAppWidgetProvider;
-import app.lawnchair.smartspace.SmartspaceViewContainer;
/**
* The workspace is a wide area with a wallpaper and a finite number of pages.
@@ -586,9 +585,6 @@ public class Workspace extends PagedView
// edges, we do not need a full width QSB.
mQsb = LayoutInflater.from(getContext())
.inflate(R.layout.search_container_workspace, firstPage, false);
- if (mQsb instanceof SmartspaceViewContainer) {
- ((SmartspaceViewContainer) mQsb).setupInWorkspace();
- }
}
int cellVSpan = FeatureFlags.EXPANDED_SMARTSPACE.get()