|
|
@@ -14,12 +14,15 @@ import com.adealink.frame.util.DisplayUtil.getScreenHeight
|
|
|
import com.adealink.frame.util.DisplayUtil.getScreenWidth
|
|
|
import com.adealink.frame.util.isTouchPointInView
|
|
|
import com.adealink.weparty.commonui.widget.floatview.data.IWindowFloatData
|
|
|
+import com.adealink.weparty.commonui.widget.floatview.data.MODE_APPLICATION
|
|
|
+import com.adealink.weparty.commonui.widget.floatview.data.MODE_SYSTEM
|
|
|
import com.adealink.weparty.commonui.widget.floatview.data.TAG_FLOAT_DRAG_VIEW
|
|
|
import com.adealink.weparty.commonui.widget.floatview.data.TAG_FLOAT_VIEW
|
|
|
import java.lang.Math.abs
|
|
|
|
|
|
|
|
|
-abstract class BaseDragFloatView(baseFloatData: IWindowFloatData) : BaseWindowFloatView(baseFloatData) {
|
|
|
+abstract class BaseDragFloatView(baseFloatData: IWindowFloatData) :
|
|
|
+ BaseWindowFloatView(baseFloatData) {
|
|
|
|
|
|
companion object {
|
|
|
private const val TAG = "BaseDragFloatView"
|
|
|
@@ -185,7 +188,7 @@ abstract class BaseDragFloatView(baseFloatData: IWindowFloatData) : BaseWindowFl
|
|
|
format = PixelFormat.TRANSLUCENT
|
|
|
flags = (WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
|
|
|
or WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
|
|
- or WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
|
|
|
+ //or WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
|
|
|
or WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
|
|
|
gravity = Gravity.START or Gravity.TOP
|
|
|
val layoutX = getLayoutParamX()
|
|
|
@@ -201,15 +204,37 @@ abstract class BaseDragFloatView(baseFloatData: IWindowFloatData) : BaseWindowFl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private fun updateViewLayout(){
|
|
|
- if (windowParams.token != null) {
|
|
|
- try {
|
|
|
- windowManager?.getCurrentWindowManager()?.updateViewLayout(this@BaseDragFloatView, windowParams)
|
|
|
- } catch (e: Throwable) {
|
|
|
- Log.e(
|
|
|
- TAG_FLOAT_VIEW,
|
|
|
- "$TAG_FLOAT_DRAG_VIEW, updateViewLayout crash, $e"
|
|
|
- )
|
|
|
+ private fun updateViewLayout() {
|
|
|
+ when (baseFloatData.windowMode()) {
|
|
|
+ MODE_APPLICATION -> {
|
|
|
+ if (windowParams.token != null) {
|
|
|
+ try {
|
|
|
+ windowManager?.getCurrentWindowManager()
|
|
|
+ ?.updateViewLayout(this@BaseDragFloatView, windowParams)
|
|
|
+ } catch (e: Throwable) {
|
|
|
+ Log.e(
|
|
|
+ TAG_FLOAT_VIEW,
|
|
|
+ "$TAG_FLOAT_DRAG_VIEW, updateViewLayout crash, $e"
|
|
|
+ )
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Log.w(
|
|
|
+ TAG_FLOAT_VIEW,
|
|
|
+ "$TAG_FLOAT_DRAG_VIEW, updateViewLayout fail(${this}), windowParams.token is null"
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ MODE_SYSTEM -> {
|
|
|
+ try {
|
|
|
+ windowManager?.getCurrentWindowManager()
|
|
|
+ ?.updateViewLayout(this@BaseDragFloatView, windowParams)
|
|
|
+ } catch (e: Throwable) {
|
|
|
+ Log.e(
|
|
|
+ TAG_FLOAT_VIEW,
|
|
|
+ "$TAG_FLOAT_DRAG_VIEW, updateViewLayout crash(${this}), $e"
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|