package com.xw.yunwei
|
|
import android.annotation.SuppressLint
|
import android.content.Context
|
import android.net.ConnectivityManager
|
import android.net.NetworkCapabilities
|
import android.os.Build
|
import android.os.Bundle
|
import android.view.View
|
import android.widget.FrameLayout
|
import androidx.databinding.ViewDataBinding
|
import com.xw.common.SecureScreenShot
|
import com.xw.common.base.BaseActivity
|
import com.xw.common.base.BaseViewModel
|
import com.xw.common.utils.BindUtils
|
import com.xw.yunwei.extension.dpToPx
|
import com.xw.yunwei.extension.spToPx
|
import com.xw.yunwei.ui.widget.WatermarkView
|
|
//基础业务activity,增加水印和防截屏
|
abstract class BaseBusinessActivity<V : ViewDataBinding, VM : BaseViewModel>() :
|
BaseActivity<V, VM>() {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
SecureScreenShot.apply(window)
|
}
|
|
override fun setContentView(view: View?) {
|
val wrapWatermark = wrapWatermark(view)
|
super.setContentView(wrapWatermark)
|
}
|
|
private fun wrapWatermark(view: View?): FrameLayout {
|
val layout = FrameLayout(this)
|
layout.addView(view)
|
val watermarkView = WatermarkView(this)
|
watermarkView.layoutParams = FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
FrameLayout.LayoutParams.MATCH_PARENT
|
).also {
|
it.topMargin = 88.dpToPx(this)
|
it.bottomMargin = 66.dpToPx(this)
|
}
|
watermarkView.watermarkText = getWatermarkText()
|
watermarkView.textColor = BindUtils.getResColor(R.color.color_0f31456a)
|
watermarkView.isStaggered = false
|
watermarkView.watermarkTextRotation = -15f
|
watermarkView.spacingX = (375f / 2f).dpToPx(this)
|
watermarkView.spacingY = 200f.dpToPx(this)
|
watermarkView.textSize = 14f.spToPx(this)
|
layout.addView(watermarkView)
|
return layout
|
}
|
|
//获取水印文案
|
protected fun getWatermarkText() = Constants.user?.let {
|
"${it.nickName}-${it.phoneNumber}"
|
} ?: ""
|
|
//判断是否有无网络
|
@SuppressLint("Deprecation")
|
fun isNetworkAvailableLegacy(): Boolean {
|
val connectivityManager =
|
getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
val network = connectivityManager.activeNetwork
|
val networkCapabilities = connectivityManager.getNetworkCapabilities(network)
|
return networkCapabilities != null && (
|
networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
|
networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
|
)
|
} else {
|
val networkInfo = connectivityManager.activeNetworkInfo
|
return networkInfo != null && networkInfo.isConnected
|
}
|
}
|
}
|