diff --git a/app/src/main/java/com/project/survey/ui/MainActivity.kt b/app/src/main/java/com/project/survey/ui/MainActivity.kt index ab4ad90..0852000 100644 --- a/app/src/main/java/com/project/survey/ui/MainActivity.kt +++ b/app/src/main/java/com/project/survey/ui/MainActivity.kt @@ -1,11 +1,13 @@ package com.project.survey.ui +import android.content.Intent import android.view.KeyEvent import androidx.activity.viewModels import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentPagerAdapter import androidx.viewpager.widget.ViewPager import blankj.utilcode.util.LogUtils +import com.bingce.device.Device import com.bingce.ui.TabEntity import com.bingce.utils.SdkUtils import com.flyco.tablayout.listener.OnTabSelectListener @@ -26,6 +28,8 @@ import com.project.survey.util.ActivityNavUtil class MainActivity : BaseBindingActivity() { companion object { + val RC_OPEN_BT = 1330 + fun start() { ActivityNavUtil.startActivity {} } @@ -117,6 +121,17 @@ class MainActivity : BaseBindingActivity() { }) } + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + when (requestCode) { + RC_OPEN_BT -> if (resultCode == RESULT_OK) { + Device.getInstance().requestConnect() + } else { + toast(R.string.bt_not_enabled) + } + } + } + private var exitTime: Long = 0 override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt b/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt index 54490c5..208e536 100644 --- a/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt +++ b/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt @@ -1,5 +1,10 @@ package com.project.survey.ui.base +import android.Manifest +import android.bluetooth.BluetoothAdapter +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager import android.os.Bundle import android.view.MenuItem import android.view.WindowManager @@ -7,12 +12,15 @@ import androidx.annotation.StringRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.widget.Toolbar +import androidx.core.app.ActivityCompat import androidx.viewbinding.ViewBinding import blankj.utilcode.util.LogUtils import com.bingce.coordlib.model.Blh import com.bingce.coordlib.model.Coordinate import com.bingce.device.Device +import com.bingce.device.Device.IDeviceRequestListener import com.bingce.device.ui.manager.DeviceConnectManager +import com.bingce.device.ui.manager.DeviceRequestManager import com.bingce.device.ui.manager.RtkManager import com.bingce.device.ui.manager.TsAnglesRefreshManager import com.bingce.device.ui.manager.TsBatteryRefreshManager @@ -22,6 +30,7 @@ import com.bingce.device.ui.manager.TsMeasSdAnglesManager import com.bingce.totalstation.TsListener import com.gyf.immersionbar.ImmersionBar import com.project.survey.R +import com.project.survey.ui.MainActivity import com.project.survey.ui.MainActivityUtils import com.project.survey.widget.LoadingDialog import org.polaric.colorful.Colorful @@ -34,26 +43,50 @@ abstract class BaseBindingActivity : AppCompatActivity() { private var toolBar: Toolbar? = null + protected lateinit var mContext: Context abstract fun getBinding(): VB abstract fun initView() abstract fun initData() abstract fun initListener() + val mainActivityUtils: MainActivityUtils = MainActivityUtils(this) { this } + + protected val deviceRequestManager: DeviceRequestManager = DeviceRequestManager(this, object: IDeviceRequestListener{ + override fun onDeviceRequestConnect() { + LogUtils.d("onDeviceRequestConnect") + mainActivityUtils.onRequestConnect() + } + + override fun onDeviceRequestDisconnect() { + LogUtils.d("onDeviceRequestDisconnect") + } + + override fun onDeviceRequestSetupChat() { + LogUtils.d("onDeviceRequestSetupChat") + } + }) protected val deviceConnectManager: DeviceConnectManager = DeviceConnectManager(this, object : Device.IDeviceConnectListener{ override fun onDeviceConnectSucceed() { LogUtils.d("onDeviceConnectSucceed") + mainActivityUtils.onDeviceConnectSuccess() } override fun onDeviceConnectLost() { LogUtils.d("onDeviceConnectLost") + mainActivityUtils.onDeviceConnectLost() } override fun onDeviceConnectFailed() { LogUtils.d("onDeviceConnectFailed") + mainActivityUtils.onDeviceConnectFailed() } override fun onDeviceConnectNeedOpenBT() { LogUtils.d("onDeviceConnectNeedOpenBT") + if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.BLUETOOTH_CONNECT ) == PackageManager.PERMISSION_GRANTED) { + val intent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) + startActivityForResult(intent, MainActivity.RC_OPEN_BT) + } } }) @@ -136,10 +169,10 @@ abstract class BaseBindingActivity : AppCompatActivity() { } }) - val mainActivityUtils: MainActivityUtils = MainActivityUtils(this) { this } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + mContext = this _binding = getBinding() setContentView(mBinding.root) // //设置背景色