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()