add a listener to cell count changes

This commit is contained in:
tibbi 2022-10-04 23:34:50 +02:00
parent f572abcf84
commit e69dc7438c
2 changed files with 7 additions and 2 deletions

View File

@ -188,6 +188,10 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
hideResizeLines() hideResizeLines()
} }
resize_frame.onResizeListener = { cellsRect ->
}
widgetView.ignoreTouches = true widgetView.ignoreTouches = true
widgetView.setOnTouchListener { v, event -> widgetView.setOnTouchListener { v, event ->
resize_frame.onTouchEvent(event) resize_frame.onTouchEvent(event)

View File

@ -35,6 +35,7 @@ class MyAppWidgetResizeFrame(context: Context, attrs: AttributeSet, defStyle: In
private val lineDotRadius = context.resources.getDimension(R.dimen.resize_frame_dot_radius) private val lineDotRadius = context.resources.getDimension(R.dimen.resize_frame_dot_radius)
private val MAX_TOUCH_LINE_DISTANCE = lineDotRadius * 5 // how close we have to be to the widgets side to drag it private val MAX_TOUCH_LINE_DISTANCE = lineDotRadius * 5 // how close we have to be to the widgets side to drag it
var onClickListener: (() -> Unit)? = null var onClickListener: (() -> Unit)? = null
var onResizeListener: ((cellsRect: Rect) -> Unit)? = null
private val DRAGGING_NONE = 0 private val DRAGGING_NONE = 0
private val DRAGGING_LEFT = 1 private val DRAGGING_LEFT = 1
@ -66,7 +67,7 @@ class MyAppWidgetResizeFrame(context: Context, attrs: AttributeSet, defStyle: In
allGridItems: ArrayList<HomeScreenGridItem> allGridItems: ArrayList<HomeScreenGridItem>
) { ) {
frameRect = coords frameRect = coords
cellsRect = Rect(gridItem.left, gridItem.top, gridItem.right, gridItem.bottom) cellsRect = Rect(gridItem.left, gridItem.top, gridItem.right - 1, gridItem.bottom - 1)
this.cellWidth = cellWidth this.cellWidth = cellWidth
this.cellHeight = cellHeight this.cellHeight = cellHeight
this.sideMargins = sideMargins this.sideMargins = sideMargins
@ -98,7 +99,7 @@ class MyAppWidgetResizeFrame(context: Context, attrs: AttributeSet, defStyle: In
} }
private fun cellChanged() { private fun cellChanged() {
onResizeListener?.invoke(cellsRect)
} }
override fun onTouchEvent(event: MotionEvent?): Boolean { override fun onTouchEvent(event: MotionEvent?): Boolean {