mirror of
https://github.com/SimpleMobileTools/Simple-Launcher.git
synced 2025-06-05 21:59:15 +02:00
Make popup menu height consistent with real number of items
This commit is contained in:
@@ -31,6 +31,7 @@ import android.widget.PopupMenu
|
|||||||
import androidx.core.graphics.drawable.toBitmap
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
import androidx.core.view.GestureDetectorCompat
|
import androidx.core.view.GestureDetectorCompat
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
|
import androidx.core.view.iterator
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.*
|
import com.simplemobiletools.commons.helpers.*
|
||||||
import com.simplemobiletools.launcher.BuildConfig
|
import com.simplemobiletools.launcher.BuildConfig
|
||||||
@@ -563,23 +564,6 @@ class MainActivity : SimpleActivity(), FlingListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun handleGridItemPopupMenu(anchorView: View, gridItem: HomeScreenGridItem, isOnAllAppsFragment: Boolean): PopupMenu {
|
private fun handleGridItemPopupMenu(anchorView: View, gridItem: HomeScreenGridItem, isOnAllAppsFragment: Boolean): PopupMenu {
|
||||||
var visibleMenuButtons = 6
|
|
||||||
visibleMenuButtons -= when (gridItem.type) {
|
|
||||||
ITEM_TYPE_ICON -> 1
|
|
||||||
ITEM_TYPE_WIDGET -> 3
|
|
||||||
else -> 4
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isOnAllAppsFragment) {
|
|
||||||
visibleMenuButtons--
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gridItem.type != ITEM_TYPE_WIDGET) {
|
|
||||||
visibleMenuButtons--
|
|
||||||
}
|
|
||||||
|
|
||||||
val yOffset = resources.getDimension(R.dimen.long_press_anchor_button_offset_y) * (visibleMenuButtons - 1)
|
|
||||||
anchorView.y -= yOffset
|
|
||||||
|
|
||||||
val contextTheme = ContextThemeWrapper(this, getPopupMenuTheme())
|
val contextTheme = ContextThemeWrapper(this, getPopupMenuTheme())
|
||||||
return PopupMenu(contextTheme, anchorView, Gravity.TOP or Gravity.END).apply {
|
return PopupMenu(contextTheme, anchorView, Gravity.TOP or Gravity.END).apply {
|
||||||
@@ -612,6 +596,15 @@ class MainActivity : SimpleActivity(), FlingListener {
|
|||||||
resetFragmentTouches()
|
resetFragmentTouches()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var visibleMenuItems = 0
|
||||||
|
for (item in menu.iterator()) {
|
||||||
|
if (item.isVisible) {
|
||||||
|
visibleMenuItems++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val yOffset = resources.getDimension(R.dimen.long_press_anchor_button_offset_y) * (visibleMenuItems - 1)
|
||||||
|
anchorView.y -= yOffset
|
||||||
|
|
||||||
show()
|
show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user