|
|
|
@ -1,10 +1,13 @@
|
|
|
|
package org.koitharu.kotatsu.core.util.ext
|
|
|
|
package org.koitharu.kotatsu.core.util.ext
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
|
|
|
|
import android.graphics.Point
|
|
|
|
import android.graphics.Rect
|
|
|
|
import android.graphics.Rect
|
|
|
|
import android.os.Build
|
|
|
|
import android.os.Build
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View.MeasureSpec
|
|
|
|
import android.view.View.MeasureSpec
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import android.view.ViewGroup
|
|
|
|
|
|
|
|
import android.view.WindowManager
|
|
|
|
import android.widget.Checkable
|
|
|
|
import android.widget.Checkable
|
|
|
|
import androidx.annotation.StringRes
|
|
|
|
import androidx.annotation.StringRes
|
|
|
|
import androidx.appcompat.widget.ActionMenuView
|
|
|
|
import androidx.appcompat.widget.ActionMenuView
|
|
|
|
@ -200,3 +203,24 @@ fun View.setContentDescriptionAndTooltip(@StringRes resId: Int) {
|
|
|
|
contentDescription = text
|
|
|
|
contentDescription = text
|
|
|
|
TooltipCompat.setTooltipText(this, text)
|
|
|
|
TooltipCompat.setTooltipText(this, text)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun View.getWindowBounds(): Rect {
|
|
|
|
|
|
|
|
val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
|
|
|
|
|
|
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
|
|
|
|
|
|
wm.currentWindowMetrics.bounds
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
val size = Point()
|
|
|
|
|
|
|
|
@Suppress("DEPRECATION")
|
|
|
|
|
|
|
|
display.getSize(size)
|
|
|
|
|
|
|
|
Rect(0, 0, size.x, size.y)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun View.isOnScreen(): Boolean {
|
|
|
|
|
|
|
|
if (!isShown) {
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
val actualPosition = Rect()
|
|
|
|
|
|
|
|
getGlobalVisibleRect(actualPosition)
|
|
|
|
|
|
|
|
return actualPosition.intersect(getWindowBounds())
|
|
|
|
|
|
|
|
}
|
|
|
|
|