|
@@ -0,0 +1,931 @@
|
|
|
+package com.wdkl.ncs.android.component.home.activity
|
|
|
+
|
|
|
+import android.Manifest
|
|
|
+import android.content.Context
|
|
|
+import android.content.Intent
|
|
|
+import android.content.IntentFilter
|
|
|
+import android.graphics.Color
|
|
|
+import android.net.Uri
|
|
|
+import android.os.*
|
|
|
+import android.provider.Settings
|
|
|
+import android.telephony.PhoneStateListener
|
|
|
+import android.telephony.SignalStrength
|
|
|
+import android.telephony.TelephonyManager
|
|
|
+import android.text.TextUtils
|
|
|
+import android.util.Log
|
|
|
+import android.view.View
|
|
|
+import com.enation.javashop.net.engine.model.NetState
|
|
|
+import com.enation.javashop.net.engine.plugin.permission.RxPermissions
|
|
|
+import com.enation.javashop.utils.base.tool.CommonTool
|
|
|
+import com.enation.javashop.utils.base.widget.LoadingDialog
|
|
|
+import com.google.common.base.Strings
|
|
|
+import com.wdkl.ncs.android.component.home.BuildConfig
|
|
|
+import com.wdkl.ncs.android.component.home.R
|
|
|
+import com.wdkl.ncs.android.component.home.broadcast.BatteryBroadcastReceiver
|
|
|
+import com.wdkl.ncs.android.component.home.broadcast.MyMediaButtonReceiver
|
|
|
+import com.wdkl.ncs.android.component.home.databinding.WatchActivityHome2Binding
|
|
|
+import com.wdkl.ncs.android.component.home.launch.HomeLaunch
|
|
|
+import com.wdkl.ncs.android.component.home.service.WdKeepAliveService
|
|
|
+import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig
|
|
|
+import com.wdkl.ncs.android.component.home.util.*
|
|
|
+import com.wdkl.ncs.android.lib.base.BaseApplication
|
|
|
+import com.wdkl.ncs.android.lib.utils.*
|
|
|
+import com.wdkl.ncs.android.lib.utils.Util
|
|
|
+import com.wdkl.ncs.android.lib.vo.MessageEvent
|
|
|
+import com.wdkl.ncs.android.middleware.common.Constants
|
|
|
+import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
|
|
|
+import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
|
|
|
+import com.wdkl.ncs.android.middleware.model.ServerIpInfo
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.ChannelDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.ChannelImDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
|
+import com.wdkl.ncs.android.middleware.model.vo.DeviceVO
|
|
|
+import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
|
|
|
+import com.wdkl.ncs.android.middleware.model.vo.WatchContactVO
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.NettyClient
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.TcpClientHandler
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.enums.CommunicationEnum
|
|
|
+import com.wdkl.ncs.android.middleware.utils.CommonUtils
|
|
|
+import com.wdkl.ncs.android.middleware.utils.ContactHelper
|
|
|
+import com.wdkl.ncs.keepbackground.utils.SpManager
|
|
|
+import com.wdkl.ncs.keepbackground.work.DaemonEnv
|
|
|
+import com.wdkl.rtc.util.JanusConstant
|
|
|
+import io.reactivex.Observable
|
|
|
+import kotlinx.android.synthetic.main.watch_activity_home2.*
|
|
|
+import kotlinx.android.synthetic.main.watch_activity_register.*
|
|
|
+import org.greenrobot.eventbus.EventBus
|
|
|
+import org.greenrobot.eventbus.Subscribe
|
|
|
+import org.greenrobot.eventbus.ThreadMode
|
|
|
+import java.util.*
|
|
|
+import kotlin.collections.ArrayList
|
|
|
+
|
|
|
+
|
|
|
+//@Router(path = "/watch/home")
|
|
|
+class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivityHome2Binding>(), WatchHomeActivityContract.View, View.OnClickListener {
|
|
|
+
|
|
|
+ var TAG = WatchHome2Activity::class.java.getSimpleName()
|
|
|
+
|
|
|
+ //监听网络变化
|
|
|
+ lateinit var teleManager: TelephonyManager
|
|
|
+ private var netType: Int = -1
|
|
|
+
|
|
|
+ lateinit var batteryBroadcastReceiver: BatteryBroadcastReceiver
|
|
|
+ lateinit var myMediaButtonReceiver: MyMediaButtonReceiver
|
|
|
+ private var isUnRegister = true
|
|
|
+ lateinit var loadingDialog: LoadingDialog
|
|
|
+ lateinit var netOffLoadingDialog: LoadingDialog
|
|
|
+ lateinit var countDownTimer: CountDownTimer
|
|
|
+
|
|
|
+ private var clickTime: Long = 0
|
|
|
+ private var contactUpdating = false
|
|
|
+
|
|
|
+ private var language = "zh"
|
|
|
+
|
|
|
+ private lateinit var netWorkChangeReceiver: NetWorkChangeReceiver
|
|
|
+
|
|
|
+ private val REQUEST_MANAGER_PERMISSION = 11
|
|
|
+
|
|
|
+ private var tcpInit = false
|
|
|
+
|
|
|
+ override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
+ if (!isTaskRoot) {
|
|
|
+ finish()
|
|
|
+ }
|
|
|
+ loadingDialog =
|
|
|
+ CommonTool.createLoadingDialog(this, R.layout.custom_loading, R.id.loadding_image)
|
|
|
+ netOffLoadingDialog =
|
|
|
+ CommonTool.createLoadingDialog(this, R.layout.netoff_loading, R.id.netoff_loading_image)
|
|
|
+
|
|
|
+ super.onCreate(savedInstanceState)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun getLayId(): Int {
|
|
|
+ return R.layout.watch_activity_home2
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun bindDagger() {
|
|
|
+ HomeLaunch.component.inject(this)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onWindowFocusChanged(hasFocus: Boolean) {
|
|
|
+ super.onWindowFocusChanged(hasFocus)
|
|
|
+ window.decorView.systemUiVisibility = screen_flags
|
|
|
+ }
|
|
|
+
|
|
|
+ //初始化
|
|
|
+ override fun init() {
|
|
|
+ AnrFcExceptionUtil.getInstance(application).initFCException()
|
|
|
+ //注册广播
|
|
|
+ regReceiver()
|
|
|
+
|
|
|
+ tv_register_version.text = "v" + CommonUtils.getAppVersionName(activity)
|
|
|
+
|
|
|
+ initCountDownTimer()
|
|
|
+
|
|
|
+ //网络强度监听
|
|
|
+ teleManager =
|
|
|
+ (applicationContext.getSystemService(Context.TELEPHONY_SERVICE)) as TelephonyManager
|
|
|
+ netType = NetHelper.getInstance().getNetworkState(applicationContext)
|
|
|
+ Log.i(TAG, "网络类型:" + netType)
|
|
|
+ /*
|
|
|
+-50 to -79 dBm, then it's generally considered great signal (4 to 5 bars).
|
|
|
+-80 to -89 dBm, then it's generally considered good signal (3 to 4 bars).
|
|
|
+-90 to -99 dBm, then it's generally considered average signal (2 to 3 bars).
|
|
|
+-100 to -109 dBm, then it's generally considered poor signal (1 to 2 bars).
|
|
|
+-110 to -120 dBm, then it's generally considered very poor signal (0 to 1 bar)
|
|
|
+ */
|
|
|
+ //if (netType == NetHelper.NETWORK_4G) {
|
|
|
+ if (teleManager != null) {
|
|
|
+ teleManager.listen(object : PhoneStateListener() {
|
|
|
+ override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
|
|
|
+ if (NetHelper.getInstance().getNetworkState(applicationContext) == NetHelper.NETWORK_NONE) {
|
|
|
+ tv_signal_strength.setText(R.string.network_disconnect)
|
|
|
+ } else {
|
|
|
+ tv_signal_strength.setText(R.string.network_connect)
|
|
|
+ }
|
|
|
+
|
|
|
+ super.onSignalStrengthsChanged(signalStrength)
|
|
|
+ }
|
|
|
+ }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
|
|
|
+ }
|
|
|
+ //}
|
|
|
+
|
|
|
+ requestPermissions()
|
|
|
+
|
|
|
+ language = LocaleMangerUtils.getApplicationLocale().language
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun getDeviceId() {
|
|
|
+ Thread{
|
|
|
+ if ("Redmi".equals(Build.BRAND)) {
|
|
|
+ Constants.imei = DeviceIdUtils.execRootCmd("getprop ro.ril.miui.imei0")
|
|
|
+ Log.d(TAG, "redmi imei0: " + Constants.imei)
|
|
|
+ } else {
|
|
|
+ Constants.imei = Util.getIMEI(this)
|
|
|
+ }
|
|
|
+
|
|
|
+ runOnUiThread {
|
|
|
+ if (!TextUtils.isEmpty(Constants.imei)) {
|
|
|
+ permissionGranted()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }.start()
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun permissionGranted() {
|
|
|
+ /*if ("Redmi".equals(Build.BRAND)) {
|
|
|
+ Constants.imei = DeviceIdUtils.getDeviceId(activity)
|
|
|
+ } else {
|
|
|
+ Constants.imei = Util.getIMEI(this)
|
|
|
+ }*/
|
|
|
+
|
|
|
+ Log.i(TAG, "IMEI " + Constants.imei)
|
|
|
+ Log.i(TAG, "mac " + Constants.mac)
|
|
|
+ tv_feedback_device_info.text = Constants.imei
|
|
|
+
|
|
|
+ //申请悬浮窗权限
|
|
|
+ if (Build.VERSION.SDK_INT >= 23) {
|
|
|
+ if (!Settings.canDrawOverlays(this)) {
|
|
|
+ val intent = Intent(
|
|
|
+ Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
|
|
|
+ Uri.parse("package:$packageName")
|
|
|
+ )
|
|
|
+ startActivityForResult(intent, 10)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
|
+ if (!Environment.isExternalStorageManager()) {
|
|
|
+ requestManagerPermission()
|
|
|
+ } else {
|
|
|
+ initTcp()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ initTcp()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (SettingConfig.getVoiceCallType(BaseApplication.appContext) == SettingConfig.PHONE_CALL) {
|
|
|
+ Constants.phoneType = CommunicationEnum.MOBILE_PHONE.value()
|
|
|
+ }
|
|
|
+
|
|
|
+ tv_server_ip.text = CommonUtils.getUrl(BaseApplication.appContext)
|
|
|
+
|
|
|
+ if (DaemonEnv.app == null && !WdKeepAliveService.instanceCreated) {
|
|
|
+ Log.d(TAG, "开始 WdKeepAliveService")
|
|
|
+ //保活守护进程
|
|
|
+ DaemonEnv.init(this)
|
|
|
+ DaemonEnv.startServiceSafely(this, WdKeepAliveService::class.java)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private fun requestManagerPermission() {
|
|
|
+ //当系统在11及以上
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
|
+ // 没文件管理权限时申请权限
|
|
|
+ if (!Environment.isExternalStorageManager()) {
|
|
|
+ val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
|
|
|
+ intent.setData(Uri.parse("package:" + getPackageName()))
|
|
|
+ startActivityForResult(intent, REQUEST_MANAGER_PERMISSION)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data)
|
|
|
+
|
|
|
+ if (requestCode == REQUEST_MANAGER_PERMISSION && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
|
+ //用户拒绝权限,重新申请
|
|
|
+ if (!Environment.isExternalStorageManager()) {
|
|
|
+ //requestManagerPermission()
|
|
|
+ showMessage(R.string.grant_write_permission)
|
|
|
+ } else {
|
|
|
+ initTcp()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private fun regReceiver() {
|
|
|
+
|
|
|
+// myMediaButtonReceiver = MyMediaButtonReceiver()
|
|
|
+// val ittFilterButton = IntentFilter(Intent.ACTION_MEDIA_BUTTON) //控制键
|
|
|
+// registerReceiver(myMediaButtonReceiver, ittFilterButton);
|
|
|
+
|
|
|
+// val ittFilterBluetooth = IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED) //蓝牙断开
|
|
|
+// registerReceiver(myMediaButtonReceiver, ittFilterBluetooth);
|
|
|
+
|
|
|
+ // 动态注册广播接收器
|
|
|
+ // 过滤器
|
|
|
+ val intentFilter = IntentFilter()
|
|
|
+ // 系统的网络被更改的过滤器
|
|
|
+ intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE")
|
|
|
+ netWorkChangeReceiver = NetWorkChangeReceiver()
|
|
|
+ registerReceiver(netWorkChangeReceiver, intentFilter)
|
|
|
+
|
|
|
+ //电池
|
|
|
+ batteryBroadcastReceiver = BatteryBroadcastReceiver(electric_quantity_tv)
|
|
|
+ val intentFilter2 = IntentFilter()
|
|
|
+ intentFilter2.addAction(Intent.ACTION_BATTERY_CHANGED)
|
|
|
+ registerReceiver(batteryBroadcastReceiver, intentFilter2)
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun releaseReceiver() {
|
|
|
+ if (batteryBroadcastReceiver != null) {
|
|
|
+ unregisterReceiver(batteryBroadcastReceiver)
|
|
|
+ }
|
|
|
+
|
|
|
+ if (netWorkChangeReceiver != null) {
|
|
|
+ unregisterReceiver(netWorkChangeReceiver)
|
|
|
+ }
|
|
|
+// if (myMediaButtonReceiver != null ){
|
|
|
+// unregisterReceiver(myMediaButtonReceiver)
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回的tcp信息
|
|
|
+ */
|
|
|
+ override fun setTcpServerHost(tcpSeverDTO: TcpSeverDTO) {
|
|
|
+ /*Log.d(TAG, "获取服务器IP完成")
|
|
|
+ if (tcpSeverDTO.publicIp != null && tcpSeverDTO.tcpPort != null && tcpSeverDTO.readerIdleTime != null) {
|
|
|
+ Constants.tcpServer = tcpSeverDTO.publicIp
|
|
|
+ Constants.tcpPort = tcpSeverDTO.tcpPort
|
|
|
+ Constants.heartBeat = tcpSeverDTO.readerIdleTime
|
|
|
+ tv_server_ip.text = tcpSeverDTO.publicIp
|
|
|
+
|
|
|
+ //成功获取到数据后再启动keepService并连接tcp服务器
|
|
|
+ if (DaemonEnv.app == null && !Strings.isNullOrEmpty(Constants.tcpServer) && !WdKeepAliveService.instanceCreated) {
|
|
|
+ Log.d(TAG, "开始 WdKeepAliveService")
|
|
|
+ //保活守护进程
|
|
|
+ DaemonEnv.init(this)
|
|
|
+ DaemonEnv.startServiceSafely(this, WdKeepAliveService::class.java)
|
|
|
+ }
|
|
|
+
|
|
|
+ presenter.getDeviceVO(Constants.imei)
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun setServerInfo(serverIpInfo: ServerIpInfo) {
|
|
|
+ if (serverIpInfo.tcpPublicIp != null && serverIpInfo.tcpPort != null && serverIpInfo.tcpIdleSeconds != null) {
|
|
|
+ Constants.tcpServer = serverIpInfo.tcpPublicIp
|
|
|
+ Constants.tcpPort = serverIpInfo.tcpPort
|
|
|
+ Constants.heartBeat = serverIpInfo.tcpIdleSeconds
|
|
|
+ tv_server_ip.text = serverIpInfo.tcpPublicIp
|
|
|
+
|
|
|
+ JanusConstant.JANUS_URL = "ws://" + serverIpInfo.rtcPublicIp + ":" + serverIpInfo.rtcPort
|
|
|
+ JanusConstant.STUN_SERVER = arrayOf<String>(serverIpInfo.stunServer)
|
|
|
+ //JanusConstant.TURN_SERVER = data.turnServer
|
|
|
+
|
|
|
+ //成功获取到数据后再启动keepService并连接tcp服务器
|
|
|
+ /*if (DaemonEnv.app == null && !Strings.isNullOrEmpty(Constants.tcpServer) && !WdKeepAliveService.instanceCreated) {
|
|
|
+ Log.d(TAG, "开始 WdKeepAliveService")
|
|
|
+ //保活守护进程
|
|
|
+ DaemonEnv.init(this)
|
|
|
+ DaemonEnv.startServiceSafely(this, WdKeepAliveService::class.java)
|
|
|
+ }*/
|
|
|
+
|
|
|
+ presenter.getDeviceVO(Constants.imei)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //通过服务端设置语言
|
|
|
+ if (SettingConfig.getLanguageMode(activity) == 0) {
|
|
|
+ var needReboot = false
|
|
|
+ if ("cn".equals(serverIpInfo.lang)) {
|
|
|
+ //中文
|
|
|
+ if (SettingConfig.getLanguageId(activity) != 2) {
|
|
|
+ needReboot = true
|
|
|
+ }
|
|
|
+ SettingConfig.setLanguageId(activity, 2)
|
|
|
+ } else if ("en".equals(serverIpInfo.lang)) {
|
|
|
+ //英文
|
|
|
+ if (SettingConfig.getLanguageId(activity) != 1) {
|
|
|
+ needReboot = true
|
|
|
+ }
|
|
|
+ SettingConfig.setLanguageId(activity, 1)
|
|
|
+ } else if ("es".equals(serverIpInfo.lang)) {
|
|
|
+ //西班牙语
|
|
|
+ if (SettingConfig.getLanguageId(activity) != 3) {
|
|
|
+ needReboot = true
|
|
|
+ }
|
|
|
+ SettingConfig.setLanguageId(activity, 3)
|
|
|
+ }
|
|
|
+
|
|
|
+ if (needReboot) {
|
|
|
+ AppTool.Time.delay(5000) {
|
|
|
+ AppUtils.restartApp()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun requestPermissions() {
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
|
+ Observable.just("")
|
|
|
+ .compose(
|
|
|
+ RxPermissions(this)
|
|
|
+ .ensure(
|
|
|
+ Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.ACCESS_WIFI_STATE,
|
|
|
+ Manifest.permission.BLUETOOTH,
|
|
|
+ Manifest.permission.RECORD_AUDIO,
|
|
|
+ Manifest.permission.CALL_PHONE,
|
|
|
+ Manifest.permission.READ_PHONE_STATE,
|
|
|
+ Manifest.permission.READ_CALL_LOG,
|
|
|
+ Manifest.permission.ANSWER_PHONE_CALLS,
|
|
|
+ Manifest.permission.WRITE_CALL_LOG,
|
|
|
+ Manifest.permission.READ_CONTACTS,
|
|
|
+ Manifest.permission.WRITE_CONTACTS,
|
|
|
+ Manifest.permission.SEND_SMS,
|
|
|
+ Manifest.permission.READ_SMS,
|
|
|
+ Manifest.permission.RECEIVE_SMS
|
|
|
+ )
|
|
|
+ )
|
|
|
+ .subscribe {
|
|
|
+ if (!it) {
|
|
|
+ showMessage(R.string.permission_tips)
|
|
|
+ requestPermissions()
|
|
|
+ } else {
|
|
|
+ getDeviceId()
|
|
|
+ }
|
|
|
+ }.joinManager(disposableManager)
|
|
|
+ } else {
|
|
|
+ Observable.just("")
|
|
|
+ .compose(
|
|
|
+ RxPermissions(this)
|
|
|
+ .ensure(
|
|
|
+ Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.ACCESS_WIFI_STATE,
|
|
|
+ Manifest.permission.BLUETOOTH,
|
|
|
+ Manifest.permission.RECORD_AUDIO,
|
|
|
+ Manifest.permission.CALL_PHONE,
|
|
|
+ Manifest.permission.READ_PHONE_STATE,
|
|
|
+ Manifest.permission.READ_CALL_LOG,
|
|
|
+ Manifest.permission.WRITE_CALL_LOG,
|
|
|
+ Manifest.permission.READ_CONTACTS,
|
|
|
+ Manifest.permission.WRITE_CONTACTS,
|
|
|
+ Manifest.permission.SEND_SMS,
|
|
|
+ Manifest.permission.READ_SMS,
|
|
|
+ Manifest.permission.RECEIVE_SMS
|
|
|
+ )
|
|
|
+ )
|
|
|
+ .subscribe {
|
|
|
+ if (!it) {
|
|
|
+ showMessage(R.string.permission_tips)
|
|
|
+ requestPermissions()
|
|
|
+ } else {
|
|
|
+ getDeviceId()
|
|
|
+ }
|
|
|
+ }.joinManager(disposableManager)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun handleAppVersion(appInfo: AppVersionDO) {
|
|
|
+ val versionCode = CommonUtils.getAppVersionCode(activity)
|
|
|
+ if (versionCode > 0 && versionCode < appInfo.versionNo && !AppUpdateActivity.opened) {
|
|
|
+ showMessage(R.string.new_version_tips)
|
|
|
+ val intent = Intent()
|
|
|
+ intent.setClass(this, AppUpdateActivity::class.java)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回的设备信息
|
|
|
+ */
|
|
|
+ override fun setDeviceDo(data: DeviceVO) {
|
|
|
+ if (data.id == null || data.id <= 0) {
|
|
|
+ loadingDialog.dismiss()
|
|
|
+ showMessage(R.string.device_not_register)
|
|
|
+ tv_register_status.setText(R.string.device_not_register_tips)
|
|
|
+ if (DaemonEnv.app != null) {
|
|
|
+ SpManager.getInstance().putBoolean(Constants.SYSTEM_REGISTERED, false)
|
|
|
+ }
|
|
|
+ tv_register_ok.visibility = View.VISIBLE
|
|
|
+ watch_activity_register_layout.visibility = View.VISIBLE
|
|
|
+ watch_activity_home_linyout.visibility = View.GONE
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ Constants.partId = data.partId
|
|
|
+ Constants.deviceId = data.id
|
|
|
+ Constants.sipId = data.sipId
|
|
|
+
|
|
|
+ loadingDialog.dismiss()
|
|
|
+ watch_activity_register_layout.visibility = View.GONE
|
|
|
+ watch_activity_home_linyout.visibility = View.VISIBLE
|
|
|
+ tv_register_ok.visibility = View.GONE
|
|
|
+
|
|
|
+ tv_register_status.text = "Loading..."
|
|
|
+ tv_register_status.setTextColor(Color.GREEN)
|
|
|
+
|
|
|
+ isUnRegister = false
|
|
|
+
|
|
|
+ Log.i(TAG, "收到返回的设备信息 ")
|
|
|
+ Constants.ethIp = data.ethIp
|
|
|
+ Constants.sipPassword = data.sipPassword
|
|
|
+ Constants.memberId = data.memberId
|
|
|
+ Constants.userName = data.memberName
|
|
|
+ Constants.userRoleName = data.roleName
|
|
|
+
|
|
|
+ presenter.getAppVersion(Constants.partId, 7)
|
|
|
+ presenter.getWatchContacts(Constants.deviceId)
|
|
|
+
|
|
|
+ if (Constants.deviceId <= 0 || TextUtils.isEmpty(Constants.sipId)) {
|
|
|
+ showMessage(R.string.init_data_error)
|
|
|
+ tv_feedback_device_info.setText(R.string.init_data_error)
|
|
|
+ return
|
|
|
+ } else if (TextUtils.isEmpty(Constants.tcpServer)) {
|
|
|
+ showMessage(R.string.init_server_data_error)
|
|
|
+ tv_feedback_device_info.setText(R.string.init_server_data_error)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (DaemonEnv.app != null) {
|
|
|
+ SpManager.getInstance().putBoolean(Constants.SYSTEM_REGISTERED, true)
|
|
|
+ }
|
|
|
+
|
|
|
+ presenter.getDeviceSettingData(Constants.partId)
|
|
|
+
|
|
|
+ //onTcpConnectSuccess()
|
|
|
+
|
|
|
+ if (Strings.isNullOrEmpty(Constants.userName)) {
|
|
|
+ watch_name_tv.setText(R.string.str_reload)
|
|
|
+ watch_name_tv.setTextColor(Color.BLACK)
|
|
|
+ watch_name_tv.textSize = 13f
|
|
|
+ watch_name_tv.setBackgroundResource(R.drawable.javashop_btn_balck_line_bg)
|
|
|
+ watch_name_tv.setOnClickListener {
|
|
|
+ loadingDialog.show()
|
|
|
+ presenter.getDeviceVO(Constants.imei)
|
|
|
+ return@setOnClickListener
|
|
|
+ }
|
|
|
+
|
|
|
+ watch_role_name_tv.setText(R.string.device_user_empty)
|
|
|
+ watch_role_name_tv.textSize = 12f
|
|
|
+ } else {
|
|
|
+ watch_name_tv.text = Constants.userName
|
|
|
+ if (Constants.userName != null) {
|
|
|
+ if (Constants.userRoleName!!.contains("腕表")) {
|
|
|
+ watch_role_name_tv.text = Constants.userRoleName!!.substring(0, (Constants.userRoleName)!!.indexOf("腕表"))
|
|
|
+ } else {
|
|
|
+ watch_role_name_tv.text = Constants.userRoleName
|
|
|
+ }
|
|
|
+ watch_user_phone_tv.text = data.phoneNumber
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Locale.CHINESE.getLanguage().equals(language)) {
|
|
|
+ watch_role_name_tv.visibility = View.VISIBLE
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Constants.phoneNumber = data.phoneNumber
|
|
|
+
|
|
|
+ //获取频道列表
|
|
|
+ if (data.memberId != null) {
|
|
|
+ presenter.getDeviceVoiceChannel(data.memberId)
|
|
|
+ }
|
|
|
+
|
|
|
+ ll_clerk_list.setOnClickListener {
|
|
|
+ var intent = Intent(this, TakeoverActivity().javaClass)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+
|
|
|
+ //初始化语音留言文件保存路径
|
|
|
+ RecordHelper.getInstance().init()
|
|
|
+
|
|
|
+ //加载电话号码白名单
|
|
|
+ presenter.getPhoneNumberWhiteList(Constants.deviceId)
|
|
|
+
|
|
|
+ showMessage("Load complete")
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun setDeviceVoiceChannel(channelList: ArrayList<ChannelDO>) {
|
|
|
+ //取第一个频道
|
|
|
+ if (channelList != null && channelList.size > 0) {
|
|
|
+ Constants.channelId = channelList.get(0).id
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun setPhoneNumberWhiteList(phoneList: ArrayList<String>) {
|
|
|
+ //保存手机号码白名单
|
|
|
+ Constants.phoneWhiteList.clear()
|
|
|
+ Constants.phoneWhiteList.addAll(phoneList)
|
|
|
+ }
|
|
|
+
|
|
|
+ //写手机通讯录
|
|
|
+ override fun setContact(contactsVOs: List<WatchContactVO>) {
|
|
|
+ if (contactsVOs != null && contactsVOs.size > 0) {
|
|
|
+ if (!contactUpdating) {
|
|
|
+ contactUpdating = true
|
|
|
+ Thread {
|
|
|
+ try {
|
|
|
+ Log.e(TAG, "111 start update contacts...")
|
|
|
+ /*for (contactVO in contactVOs) {
|
|
|
+ if (!Strings.isNullOrEmpty(contactVO.name) && !Strings.isNullOrEmpty(contactVO.phoneNumber)) {
|
|
|
+ ContactHelper.setContact(BaseApplication.appContext, contactVO.name, contactVO.phoneNumber)
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+ ContactHelper.setContact2(BaseApplication.appContext, contactsVOs)
|
|
|
+ Log.e(TAG, "111 update contacts end...")
|
|
|
+ contactUpdating = false
|
|
|
+ } catch (ex: Exception) {
|
|
|
+ contactUpdating = false
|
|
|
+ ex.printStackTrace()
|
|
|
+ }
|
|
|
+ }.start()
|
|
|
+
|
|
|
+ } else {
|
|
|
+ showMessage(R.string.contact_update_porgress)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置设备数据
|
|
|
+ */
|
|
|
+ override fun setDeviceSettingData(partSettingDO: PartSettingDO) {
|
|
|
+ Log.i(TAG, "收到设置设备数据 transferDuration" + partSettingDO.transferDuration)
|
|
|
+ Log.i(TAG, "收到设置设备数据 transferDurationLeader" + partSettingDO.transferDurationLeader)
|
|
|
+ if (partSettingDO != null && partSettingDO.transferDuration != null && partSettingDO.transferDurationLeader != null) {
|
|
|
+ if (Constants.userRoleName != null) {
|
|
|
+ if (!Constants.userRoleName!!.contains("护士组长") && Constants.userRoleName!!.contains("护士")) {
|
|
|
+ SettingConfig.setCountdownTime(application, partSettingDO.transferDuration)
|
|
|
+ } else if (Constants.userRoleName!!.contains("护士组长")) {
|
|
|
+ SettingConfig.setCountdownTime(application, partSettingDO.transferDurationLeader)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //设置通话方式
|
|
|
+ if (partSettingDO.communicationModeMobile != null) {
|
|
|
+ Constants.phoneType = partSettingDO.communicationModeMobile
|
|
|
+ if (Constants.phoneType == CommunicationEnum.MOBILE_PHONE.value()) {
|
|
|
+ SettingConfig.setVoiceCallType(BaseApplication.appContext, SettingConfig.PHONE_CALL)
|
|
|
+ } else {
|
|
|
+ SettingConfig.setVoiceCallType(BaseApplication.appContext, SettingConfig.SIP_CALL)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (partSettingDO.communicationModeBed != null) {
|
|
|
+ Constants.bedPhoneType = partSettingDO.communicationModeBed
|
|
|
+ }
|
|
|
+ if (partSettingDO.communicationModeNurse != null) {
|
|
|
+ Constants.nursePhoneType = partSettingDO.communicationModeNurse
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fun onTcpConnectSuccess() {
|
|
|
+ Log.i(TAG, "连接成功")
|
|
|
+
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ Log.i(TAG, "连接成功设置UI")
|
|
|
+ tv_net_reconnect_text.visibility = View.GONE
|
|
|
+ tv_signal_strength.setText(R.string.tcp_connect_success)
|
|
|
+ netOffLoadingDialog.dismiss()
|
|
|
+ sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ fun onTcpConnectFailed() {
|
|
|
+ Log.w(TAG, "网络断开")
|
|
|
+
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ tv_signal_strength.setText(R.string.tcp_connect_failed)
|
|
|
+ tv_net_reconnect_text.visibility = View.VISIBLE
|
|
|
+ netOffLoadingDialog.show()
|
|
|
+ sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
|
|
|
+ })
|
|
|
+
|
|
|
+ //等30秒
|
|
|
+ var waitSeconds = 0
|
|
|
+ Thread {
|
|
|
+ while (!NettyClient.instance.isConnect()) {
|
|
|
+ Log.w(TAG, "无网络" + waitSeconds)
|
|
|
+ waitSeconds++
|
|
|
+ if (waitSeconds > 30) {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ Thread.sleep(5000)
|
|
|
+ }
|
|
|
+
|
|
|
+// if (NettyClient.instance.isConnect()) {
|
|
|
+// onTcpConnectSuccess()
|
|
|
+// }
|
|
|
+ }.start()
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun bindEvent() {
|
|
|
+ customer_list_linlyout.setOnClickListener(this)
|
|
|
+ call_records_linlyout.setOnClickListener(this)
|
|
|
+ user_name_linlyout.setOnClickListener(this)
|
|
|
+ state_linlyout.setOnClickListener(this)
|
|
|
+ other_linyout.setOnClickListener(this)
|
|
|
+ channel_im_layout.setOnClickListener(this)
|
|
|
+ tv_register_ok.setOnClickListener {
|
|
|
+ Log.d(TAG, "注册完成")
|
|
|
+ initTcp()
|
|
|
+
|
|
|
+ //presenter.getDeviceVO(Constants.imei)
|
|
|
+ countDownTimer.start()
|
|
|
+ }
|
|
|
+
|
|
|
+ tv_restart_app.setOnClickListener {
|
|
|
+ AppUtils.restartApp()
|
|
|
+ }
|
|
|
+
|
|
|
+ tv_config_server.setOnClickListener {
|
|
|
+ ServerConfigDialogHelper.showPasswordDialog(activity)
|
|
|
+ }
|
|
|
+
|
|
|
+ tv_language_settings.setOnClickListener {
|
|
|
+ LanguageSetDialogHelper.showDialog(activity)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun enableHeadsetVoiceMsg(): Boolean {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun initTcp() {
|
|
|
+ if (!Strings.isNullOrEmpty(Constants.tcpServer)) { //有网且得到了服务器IP
|
|
|
+ //presenter.getTcpServerHost()
|
|
|
+ presenter.getServerInfo()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (tcpInit) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tcpInit = true
|
|
|
+
|
|
|
+ var count = 30
|
|
|
+ Thread {
|
|
|
+ while (isUnRegister && count > 0 && Strings.isNullOrEmpty(Constants.tcpServer)) {
|
|
|
+ //DaemonEnv.sendStopWorkBroadcast(this)
|
|
|
+ Log.i(TAG, "获取TCP服务器IP和端口")
|
|
|
+ //presenter.getTcpServerHost()
|
|
|
+ presenter.getServerInfo()
|
|
|
+
|
|
|
+ try {
|
|
|
+ Thread.sleep(15000)
|
|
|
+ } catch (e: Exception) {
|
|
|
+ }
|
|
|
+ count--
|
|
|
+ }
|
|
|
+
|
|
|
+ if (NetHelper.getInstance().getNetworkState(this) == NetHelper.NETWORK_NONE) {
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ showMessage(R.string.net_disconnect)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }.start()
|
|
|
+ }
|
|
|
+
|
|
|
+ fun initCountDownTimer() {
|
|
|
+ countDownTimer = object : CountDownTimer(1 * 1000L, 1000) {
|
|
|
+ override fun onTick(millisUntilFinished: Long) {
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onFinish() {
|
|
|
+ tv_register_ok.isEnabled = true
|
|
|
+ //loadingDialog.dismiss()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onResume() {
|
|
|
+ super.onResume()
|
|
|
+ window.decorView.systemUiVisibility = screen_flags
|
|
|
+
|
|
|
+ //主界面恢复时检查tcp连接状态
|
|
|
+ Log.d(TAG, "Watch home activity resumed...")
|
|
|
+ if (TcpClientHandler.getConnected()) {
|
|
|
+ onTcpConnectSuccess()
|
|
|
+ } else {
|
|
|
+ onTcpConnectFailed()
|
|
|
+ }
|
|
|
+
|
|
|
+ updatePower()
|
|
|
+
|
|
|
+ Constants.allowVoiceMsg = true
|
|
|
+ tv_im_count.text = "" + WdKeepAliveService.channelImList.size
|
|
|
+
|
|
|
+ EventBus.getDefault().post(MessageEvent("im_done", Constants.EVENT_IM_PLAY_DONE))
|
|
|
+
|
|
|
+ //返回主界面时重置呼叫状态
|
|
|
+ /*if (!Constants.showFloatWindow) {
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ }*/
|
|
|
+
|
|
|
+ //检查当前是否还有未处理事件,有则显示
|
|
|
+ if (Constants.eventList.size > 0) {
|
|
|
+ val intent = Intent()
|
|
|
+ intent.setClass(this, NewEventListActivity::class.java)
|
|
|
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onError(message: String, type: Int) {
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun complete(message: String, type: Int) {
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun start() {
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun networkMonitor(state: NetState) {
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun destory() {
|
|
|
+ releaseReceiver()
|
|
|
+ //停止服务
|
|
|
+ //DaemonEnv.sendStopWorkBroadcast(this)
|
|
|
+
|
|
|
+ if (countDownTimer != null) {
|
|
|
+ countDownTimer.cancel()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 监听
|
|
|
+ */
|
|
|
+ override fun onClick(p0: View) {
|
|
|
+ when (p0.id) {
|
|
|
+ R.id.customer_list_linlyout -> {
|
|
|
+ push("/watch/contacts")
|
|
|
+ }
|
|
|
+ R.id.call_records_linlyout -> {
|
|
|
+ var intent = Intent(this, WatchCallRecordsActivity::class.java)
|
|
|
+ intent.putExtra("action", "ALL")
|
|
|
+ intent.putExtra("customer_id", "")
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ R.id.user_name_linlyout -> {
|
|
|
+ if (Constants.userName == null) {
|
|
|
+ var intent = Intent(this, TakeoverActivity().javaClass)
|
|
|
+ startActivity(intent)
|
|
|
+ } else {
|
|
|
+ var intent = Intent(this, WatchCallRecordsActivity::class.java)
|
|
|
+ intent.putExtra("action", "UNREAD")
|
|
|
+ intent.putExtra("customer_id", "")
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ R.id.channel_im_layout -> {
|
|
|
+ //群留言
|
|
|
+ if (Constants.channelId == -1) {
|
|
|
+ showMessage(R.string.str_im_no_channel)
|
|
|
+ } else if (TextUtils.isEmpty(Constants.userName)) {
|
|
|
+ showMessage(R.string.device_user_not_register)
|
|
|
+ } else {
|
|
|
+ var intent = Intent(this, ChannelImActivity::class.java)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ R.id.state_linlyout -> {
|
|
|
+// Log.d(TAG,"点击了状态,测试崩溃")
|
|
|
+// netOffLoadingDialog.show()
|
|
|
+// Thread.sleep(10000)
|
|
|
+// netOffLoadingDialog.dismiss()
|
|
|
+ }
|
|
|
+ R.id.other_linyout -> {
|
|
|
+ if (System.currentTimeMillis() - clickTime > 2000) {
|
|
|
+ showMessage(R.string.click_twice_start_settings)
|
|
|
+ } else {
|
|
|
+ val intent = Intent(this, WatchUserSettingActivity::class.java)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ clickTime = System.currentTimeMillis()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ override fun onBackPressed() {
|
|
|
+ //禁用返回
|
|
|
+ //super.onBackPressed()
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun getPower(): Int {
|
|
|
+ val mBatteryManager = getSystemService(BATTERY_SERVICE) as BatteryManager
|
|
|
+ val power = mBatteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
|
|
|
+ Log.d(TAG, "power energy: power percent: $power")
|
|
|
+
|
|
|
+ return power
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun updatePower() {
|
|
|
+ val power = getPower()
|
|
|
+ if (10 < power && power < 20) {
|
|
|
+ electric_quantity_tv.text = "" + power
|
|
|
+ battery_warning_tv.setTextColor(Color.parseColor("#FF3030"))
|
|
|
+ battery_warning_tv.visibility = View.VISIBLE
|
|
|
+ battery_warning_tv.setText(R.string.low_power)
|
|
|
+ } else if (10 > power) {
|
|
|
+ electric_quantity_tv.text = "" + power
|
|
|
+ battery_warning_tv.setTextColor(Color.parseColor("#8B2323"))
|
|
|
+ battery_warning_tv.visibility = View.VISIBLE
|
|
|
+ battery_warning_tv.setText(R.string.low_power)
|
|
|
+ } else {
|
|
|
+ battery_warning_tv.visibility = View.GONE
|
|
|
+ electric_quantity_tv.text = "" + power
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onDestroy() {
|
|
|
+ super.onDestroy()
|
|
|
+ if (loadingDialog != null) {
|
|
|
+ loadingDialog.dismiss()
|
|
|
+ }
|
|
|
+ if (netOffLoadingDialog != null) {
|
|
|
+ netOffLoadingDialog.dismiss()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
+ fun onMoonEvent(messageEvent: MessageEvent) {
|
|
|
+ if (messageEvent.tag == Constants.EVENT_UNTREATED_QUANTITY) { //未读
|
|
|
+ var message = messageEvent.getMessage() as ArrayList<InteractionVO>
|
|
|
+ list_item_img_icon_num.text = "" + message.size
|
|
|
+ } else if (messageEvent.tag == Constants.EVENT_BATTERY_PERCENT) {
|
|
|
+ var message = messageEvent.getMessage() as Int
|
|
|
+ updatePower()
|
|
|
+
|
|
|
+ /*if (10 < message && message < 20) {
|
|
|
+ electric_quantity_tv.text = "" + message
|
|
|
+ battery_warning_tv.setTextColor(Color.parseColor("#FF3030"))
|
|
|
+ battery_warning_tv.visibility = View.VISIBLE
|
|
|
+ battery_warning_tv.text = "低电量,请注意充电"
|
|
|
+ } else if (10 > message) {
|
|
|
+ electric_quantity_tv.text = "" + message
|
|
|
+ battery_warning_tv.setTextColor(Color.parseColor("#8B2323"))
|
|
|
+ battery_warning_tv.visibility = View.VISIBLE
|
|
|
+ battery_warning_tv.text = "电量过低,请充电"
|
|
|
+ } else {
|
|
|
+ battery_warning_tv.visibility = View.GONE
|
|
|
+ electric_quantity_tv.text = "" + message
|
|
|
+ }*/
|
|
|
+ } else if (messageEvent.tag == Constants.EVENT_RTC_STATE) {
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
|
|
|
+ netOffLoadingDialog.dismiss()
|
|
|
+ //tv_signal_strength.text = "网络恢复"
|
|
|
+ tv_net_reconnect_text.visibility = View.GONE
|
|
|
+ })
|
|
|
+ } else if (messageEvent.tag == Constants.EVENT_TCP_BREAK) {
|
|
|
+ onTcpConnectFailed()
|
|
|
+ } else if (messageEvent.tag == Constants.EVENT_TCP_CONNECTED) {
|
|
|
+ onTcpConnectSuccess()
|
|
|
+ } else if (messageEvent.tag == Constants.EVENT_IM_PLAY_DONE || messageEvent.tag == Constants.EVENT_CLEAR_IM || messageEvent.tag == 3) {
|
|
|
+ tv_im_count.text = "" + WdKeepAliveService.channelImList.size
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|