|
@@ -33,6 +33,8 @@ import com.wdkl.ncs.android.middleware.common.MessageEvent
|
|
|
import com.wdkl.ncs.android.middleware.common.SipStatus
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.conversion_box.MainActivityContract
|
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.conversion_box.MainActivityPresenter
|
|
|
+import com.wdkl.ncs.android.middleware.model.ServerInfo
|
|
|
+import com.wdkl.ncs.android.middleware.model.ThirdServerInfo
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
@@ -45,11 +47,16 @@ import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
|
|
|
+import com.wdkl.ncs.android.middleware.udp.ServerInfoUtil
|
|
|
import com.wdkl.ncs.android.middleware.utils.AppUtil
|
|
|
+import com.wdkl.ncs.android.middleware.utils.CommonUtils
|
|
|
+import com.wdkl.ncs.janus.util.JanusConstant
|
|
|
import kotlinx.android.synthetic.main.conversion_box_main_lay.*
|
|
|
import kotlinx.android.synthetic.main.main_activity_layout.*
|
|
|
import kotlinx.android.synthetic.main.sky_voice_call_layout.*
|
|
|
import kotlinx.android.synthetic.main.view_title_layout.*
|
|
|
+import okhttp3.OkHttpClient
|
|
|
+import okhttp3.Request
|
|
|
import org.greenrobot.eventbus.EventBus
|
|
|
import org.greenrobot.eventbus.Subscribe
|
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
@@ -60,6 +67,7 @@ import java.io.IOException
|
|
|
import java.io.PrintWriter
|
|
|
import java.lang.Process
|
|
|
import java.util.*
|
|
|
+import java.util.concurrent.TimeUnit
|
|
|
import kotlin.collections.ArrayList
|
|
|
|
|
|
|
|
@@ -109,8 +117,11 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
|
|
|
private val uninstallApk = true
|
|
|
|
|
|
+ private var serverSuccess = false
|
|
|
+ private val handler by lazy { Handler(Looper.getMainLooper()) }
|
|
|
+
|
|
|
override fun getLayId(): Int {
|
|
|
- return R.layout.main_activity_layout;
|
|
|
+ return R.layout.main_activity_layout
|
|
|
}
|
|
|
|
|
|
override fun bindDagger() {
|
|
@@ -124,7 +135,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
//获取mac地址
|
|
|
Constant.LOCAL_MAC = NetHelper.getInstance().macAddress
|
|
|
|
|
|
- presenter.loadTcpServerHost()
|
|
|
+ //presenter.loadTcpServerHost()
|
|
|
|
|
|
//注册广播
|
|
|
regReceiver()
|
|
@@ -172,6 +183,8 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
AppTool.Time.delay(120000) {
|
|
|
openNetwrokDebug()
|
|
|
}
|
|
|
+
|
|
|
+ checkServer()
|
|
|
}
|
|
|
|
|
|
private fun checkAppExist() : Boolean {
|
|
@@ -235,6 +248,93 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
}
|
|
|
|
|
|
|
|
|
+ private fun checkServer() {
|
|
|
+ Thread {
|
|
|
+ while (!serverSuccess) {
|
|
|
+ val okHttpClient = OkHttpClient().newBuilder()
|
|
|
+ .connectTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
+ .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
+ .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
+ .build()
|
|
|
+ val url: String = CommonUtils.getUrl(BaseApplication.appContext)
|
|
|
+ val port: String = CommonUtils.getUrlPort(BaseApplication.appContext)
|
|
|
+ val request = Request.Builder()
|
|
|
+ .url("http://$url:$port/ncs_url/server_info")
|
|
|
+ .get()
|
|
|
+ .build()
|
|
|
+
|
|
|
+ try {
|
|
|
+ val response = okHttpClient.newCall(request).execute()
|
|
|
+ if (response != null && response.isSuccessful) {
|
|
|
+ //接口数据获取成功
|
|
|
+ serverSuccess = true
|
|
|
+ presenter.loadServerInfo()
|
|
|
+ } else {
|
|
|
+ //接口数据获取失败,可能服务器ip不对,尝试重新获取服务器ip
|
|
|
+ val info = ServerInfoUtil.get(Constant.LOCAL_MAC)
|
|
|
+ checkServerInfo(info)
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ //接口数据获取失败,可能服务器ip不对,尝试重新获取服务器ip
|
|
|
+ val info = ServerInfoUtil.get(Constant.LOCAL_MAC)
|
|
|
+ checkServerInfo(info)
|
|
|
+ //e.printStackTrace()
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ Thread.sleep(30000)
|
|
|
+ } catch (ex: Exception) {
|
|
|
+ ex.printStackTrace()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }.start()
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun checkServerInfo(info: ThirdServerInfo?) {
|
|
|
+ //检查获取到的服务器ip是否可用,可用则重启app重新初始化,不可用则什么都不做,等待下次重新获取服务器ip
|
|
|
+ if (info != null) {
|
|
|
+ if (info.thirdServer == null || info.thirdServerPort == null) {
|
|
|
+ Log.d(TAG, "server info data null")
|
|
|
+ showMsgMain("get server data null")
|
|
|
+ } else {
|
|
|
+ val okHttpClient = OkHttpClient().newBuilder()
|
|
|
+ .connectTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
+ .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
+ .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
+ .build()
|
|
|
+ val request = Request.Builder()
|
|
|
+ .url("http://${info.thirdServer}:${info.thirdServerPort}/ncs_url/server_info")
|
|
|
+ .get()
|
|
|
+ .build()
|
|
|
+
|
|
|
+ try {
|
|
|
+ val response = okHttpClient.newCall(request).execute()
|
|
|
+ if (response != null && response.isSuccessful) {
|
|
|
+ //接口数据获取成功,稍后重启app
|
|
|
+ serverSuccess = true
|
|
|
+ CommonUtils.setUrl(activity, info.thirdServer)
|
|
|
+ CommonUtils.setUrlPort(activity, info.thirdServerPort.toString())
|
|
|
+ showMsgMain("restart...")
|
|
|
+ handler.postDelayed({
|
|
|
+ AppUpdateHelper.restartApp(activity)
|
|
|
+ }, 10000)
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ showMsgMain("server error or net error")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Log.d(TAG, "server info null")
|
|
|
+ showMsgMain("get server null")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun showMsgMain(msg: String) {
|
|
|
+ runOnUiThread {
|
|
|
+ showMessage(msg)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
fun switchFragment(id: Int, fragment: Fragment, tag: String) {
|
|
|
supportFragmentManager.beginTransaction()
|
|
@@ -268,6 +368,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
showMessage("请勿频繁点击...")
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ tv_btn_server_settings.setOnClickListener {
|
|
|
+ ServerConfigDialogHelper.showPasswordDialog(activity)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//设置串口监听
|
|
@@ -315,6 +419,8 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
SerialPortUtil.getInstance().closeHeart()
|
|
|
SerialPortUtil.getInstance().closeSerialPort()
|
|
|
|
|
|
+ handler.removeCallbacksAndMessages(null)
|
|
|
+
|
|
|
//rs485
|
|
|
//SerialPort485Util.getInstance().closeSerialPort()
|
|
|
}
|
|
@@ -350,7 +456,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
}
|
|
|
|
|
|
override fun setTcpServerHost(tcpSeverDTO: TcpSeverDTO) {
|
|
|
- if (loaded) {
|
|
|
+ /*if (loaded) {
|
|
|
return
|
|
|
}
|
|
|
loaded = true
|
|
@@ -377,6 +483,41 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
}).start()
|
|
|
|
|
|
//更新
|
|
|
+ tv_mac_addr.setText("MAC: " + Constant.LOCAL_MAC + "\nIP: " + NetHelper.getInstance().localIP + ", server: " + serverIp + ", tcp: " + Constant.TCP_SERVER_URL)*/
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun setServerInfo(data: ServerInfo) {
|
|
|
+ if (loaded) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ loaded = true
|
|
|
+
|
|
|
+ Constant.TCP_SERVER_URL = data.tcpLocalIp
|
|
|
+ Constant.TCP_PORT = data.tcpPort
|
|
|
+ Constant.TCP_HEART_BEAT = data.tcpIdleSeconds
|
|
|
+
|
|
|
+ JanusConstant.JANUS_URL = "ws://" + data.rtcLocalIp + ":" + data.rtcPort
|
|
|
+ JanusConstant.STUN_SERVER = arrayOf<String>(data.stunServer)
|
|
|
+ //JanusConstant.TURN_SERVER = data.turnServer
|
|
|
+
|
|
|
+ //开启TCP连接
|
|
|
+ startTcp()
|
|
|
+ showMessage("tcp开始连接...host: " + Constant.TCP_SERVER_URL + ", port: " + Constant.TCP_PORT)
|
|
|
+
|
|
|
+ Thread(Runnable {
|
|
|
+ while (!initialized) {
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ initDevice()
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ Thread.sleep(20000)
|
|
|
+ } catch (e: Exception) {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).start()
|
|
|
+
|
|
|
+ //更新
|
|
|
tv_mac_addr.setText("MAC: " + Constant.LOCAL_MAC + "\nIP: " + NetHelper.getInstance().localIP + ", server: " + serverIp + ", tcp: " + Constant.TCP_SERVER_URL)
|
|
|
}
|
|
|
|
|
@@ -1399,26 +1540,16 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
val dayStartTimeStamp = TimeHandle.dateToStamp(date+" "+SettingConfig.getInitialDayTime(this)+":00", "yyyy-MM-dd HH:mm:ss")
|
|
|
//白天结束时间戳
|
|
|
val endOfDayTimeStamp = TimeHandle.dateToStamp(date+" "+SettingConfig.getEndOfDay(this)+":00", "yyyy-MM-dd HH:mm:ss")
|
|
|
-
|
|
|
val curInday = dayStartTimeStamp < currentTimestamp && currentTimestamp < endOfDayTimeStamp
|
|
|
|
|
|
if (curInday) {
|
|
|
//当前是白天并且原来不是白天
|
|
|
if (Constant.day_state != 0 || forceSet) {
|
|
|
//设置白天亮度
|
|
|
- ScreenManagerUtil().setScreenBrightness(
|
|
|
- this,
|
|
|
- Math.ceil(2.54 * SettingConfig.getExtensionDaytimeBrightness(this)).toInt()
|
|
|
- )
|
|
|
+ ScreenManagerUtil().setScreenBrightness(this, Math.ceil(2.54 * SettingConfig.getExtensionDaytimeBrightness(this)).toInt())
|
|
|
//设置白天系统音量和响铃音
|
|
|
- VoiceManagerUtil.setSystemVoice(
|
|
|
- this,
|
|
|
- SettingConfig.getConversionBoxDaytimeSystemVolume(this)
|
|
|
- )
|
|
|
- VoiceManagerUtil.setMusicVoice(
|
|
|
- this,
|
|
|
- SettingConfig.getConversionBoxDaytimeSystemVolume(this)
|
|
|
- )
|
|
|
+ VoiceManagerUtil.setSystemVoice(this, SettingConfig.getConversionBoxDaytimeSystemVolume(this))
|
|
|
+ VoiceManagerUtil.setMusicVoice(this, SettingConfig.getConversionBoxDaytimeSystemVolume(this))
|
|
|
view_title_layout_iv_day_night.setImageResource(R.mipmap.ic_daylight)
|
|
|
}
|
|
|
Constant.day_state = 0
|
|
@@ -1426,19 +1557,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
//当前是夜晚并且原来不是夜晚
|
|
|
if (Constant.day_state != 1 || forceSet) {
|
|
|
//设置晚上亮度
|
|
|
- ScreenManagerUtil().setScreenBrightness(
|
|
|
- this,
|
|
|
- Math.ceil(2.54 * SettingConfig.getExtensionNightBrightness(this)).toInt()
|
|
|
- )
|
|
|
+ ScreenManagerUtil().setScreenBrightness(this, Math.ceil(2.54 * SettingConfig.getExtensionNightBrightness(this)).toInt())
|
|
|
//设置晚上系统音量和响铃音
|
|
|
- VoiceManagerUtil.setSystemVoice(
|
|
|
- this,
|
|
|
- SettingConfig.getConversionBoxNightSystemVolume(this)
|
|
|
- )
|
|
|
- VoiceManagerUtil.setMusicVoice(
|
|
|
- this,
|
|
|
- SettingConfig.getConversionBoxNightSystemVolume(this)
|
|
|
- )
|
|
|
+ VoiceManagerUtil.setSystemVoice(this, SettingConfig.getConversionBoxNightSystemVolume(this))
|
|
|
+ VoiceManagerUtil.setMusicVoice(this, SettingConfig.getConversionBoxNightSystemVolume(this))
|
|
|
view_title_layout_iv_day_night.setImageResource(R.mipmap.ic_night)
|
|
|
}
|
|
|
Constant.day_state = 1
|
|
@@ -1456,14 +1578,11 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
|
|
|
AppUpdateHelper.restartApp(activity)
|
|
|
}
|
|
|
- } else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
|
|
|
+ } /*else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
|
|
|
presenter.loadTcpServerHost()
|
|
|
- }
|
|
|
+ }*/
|
|
|
} else if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {
|
|
|
updateNetState()
|
|
|
- if (!initialized) {
|
|
|
- presenter.loadTcpServerHost()
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|