diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index 6273b87..6481f0c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,12 +1,12 @@ package com.casic.birmm.inspect.view import android.content.Intent -import android.text.TextUtils import android.view.KeyEvent import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.aihook.alertview.library.AlertView import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity import com.casic.birmm.inspect.extensions.show @@ -23,6 +23,7 @@ private var clickTime: Long = 0 private val itemList: List = arrayListOf("巡检记录", "事件记录") + private var isSingleMode = false override fun initLayoutView(): Int = R.layout.activity_main @@ -35,28 +36,50 @@ } override fun initData() { - val userModelJson = SaveKeyValues.getValue(Constant.USER_OBJECT, "") as String - if (TextUtils.isEmpty(userModelJson)) { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { + isSingleMode = SaveKeyValues.getValue("isSingleMode", false) as Boolean + if (!isSingleMode) { + // 如果不是单机模式登录,则获取用户信息 + obtainUserInfo() + } + } + + private fun obtainUserInfo() { + val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + userViewModel.getUserInfo() + userViewModel.resultModel.observe(this, Observer { + if (it.code == 200) { //记录登录log LogToFile.write( FileUtils.documentFile, TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" ) SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + } else { + AlertView( + "温馨提示", "获取用户信息失败,是否重试?", "是", arrayOf("否"), + null, this, AlertView.Style.Alert + ) { _, position -> + when (position) { + -1 -> { + this.finish() + } + 0 -> { + obtainUserInfo() + } + } + }.show() + } + }) } override fun initEvent() { //新建巡检 createIssueLayout.setOnClickListener { - startActivity(Intent(this, MapActivity::class.java)) + if (isSingleMode) { + + } else { + startActivity(Intent(this, MapActivity::class.java)) + } } //记录查询 logSearchLayout.setOnClickListener { @@ -68,20 +91,28 @@ override fun onItemClick(position: Int) { when (position) { 0 -> { - startActivity( - Intent( - this@MainActivity, - InspectionQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + InspectionQueryActivity::class.java + ) ) - ) + } } 1 -> { - startActivity( - Intent( - this@MainActivity, - EventQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + EventQueryActivity::class.java + ) ) - ) + } } } } @@ -90,7 +121,11 @@ } //系统设置 settingsLayout.setOnClickListener { - startActivity(Intent(this, UserSettingsActivity::class.java)) + if (isSingleMode) { + startActivity(Intent(this, SingleModeUserSettingsActivity::class.java)) + } else { + startActivity(Intent(this, UserSettingsActivity::class.java)) + } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index 6273b87..6481f0c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,12 +1,12 @@ package com.casic.birmm.inspect.view import android.content.Intent -import android.text.TextUtils import android.view.KeyEvent import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.aihook.alertview.library.AlertView import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity import com.casic.birmm.inspect.extensions.show @@ -23,6 +23,7 @@ private var clickTime: Long = 0 private val itemList: List = arrayListOf("巡检记录", "事件记录") + private var isSingleMode = false override fun initLayoutView(): Int = R.layout.activity_main @@ -35,28 +36,50 @@ } override fun initData() { - val userModelJson = SaveKeyValues.getValue(Constant.USER_OBJECT, "") as String - if (TextUtils.isEmpty(userModelJson)) { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { + isSingleMode = SaveKeyValues.getValue("isSingleMode", false) as Boolean + if (!isSingleMode) { + // 如果不是单机模式登录,则获取用户信息 + obtainUserInfo() + } + } + + private fun obtainUserInfo() { + val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + userViewModel.getUserInfo() + userViewModel.resultModel.observe(this, Observer { + if (it.code == 200) { //记录登录log LogToFile.write( FileUtils.documentFile, TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" ) SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + } else { + AlertView( + "温馨提示", "获取用户信息失败,是否重试?", "是", arrayOf("否"), + null, this, AlertView.Style.Alert + ) { _, position -> + when (position) { + -1 -> { + this.finish() + } + 0 -> { + obtainUserInfo() + } + } + }.show() + } + }) } override fun initEvent() { //新建巡检 createIssueLayout.setOnClickListener { - startActivity(Intent(this, MapActivity::class.java)) + if (isSingleMode) { + + } else { + startActivity(Intent(this, MapActivity::class.java)) + } } //记录查询 logSearchLayout.setOnClickListener { @@ -68,20 +91,28 @@ override fun onItemClick(position: Int) { when (position) { 0 -> { - startActivity( - Intent( - this@MainActivity, - InspectionQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + InspectionQueryActivity::class.java + ) ) - ) + } } 1 -> { - startActivity( - Intent( - this@MainActivity, - EventQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + EventQueryActivity::class.java + ) ) - ) + } } } } @@ -90,7 +121,11 @@ } //系统设置 settingsLayout.setOnClickListener { - startActivity(Intent(this, UserSettingsActivity::class.java)) + if (isSingleMode) { + startActivity(Intent(this, SingleModeUserSettingsActivity::class.java)) + } else { + startActivity(Intent(this, UserSettingsActivity::class.java)) + } } } diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt index eb53d30..059ef77 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt @@ -110,21 +110,23 @@ } Constant.DISCOVERY_DEVICE -> { val bean = msg.obj as BlueToothBean - if (mapActivity.blueToothBeans.size == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } else { - //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 - var judge = 0 - for (it in mapActivity.blueToothBeans) { - if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { - judge = 1 - break +// if (bean.bluetoothDevice.name.isDigitOnly()) { + if (mapActivity.blueToothBeans.size == 0) { + mapActivity.blueToothBeans.add(bean) + } else { + //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 + var judge = 0 + for (it in mapActivity.blueToothBeans) { + if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { + judge = 1 + break + } + } + if (judge == 0) { + mapActivity.blueToothBeans.add(bean) } } - if (judge == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } - } +// } } Constant.DISCOVERY_OUT_TIME -> { OtherUtils.dismissLoadingDialog() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index 6273b87..6481f0c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,12 +1,12 @@ package com.casic.birmm.inspect.view import android.content.Intent -import android.text.TextUtils import android.view.KeyEvent import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.aihook.alertview.library.AlertView import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity import com.casic.birmm.inspect.extensions.show @@ -23,6 +23,7 @@ private var clickTime: Long = 0 private val itemList: List = arrayListOf("巡检记录", "事件记录") + private var isSingleMode = false override fun initLayoutView(): Int = R.layout.activity_main @@ -35,28 +36,50 @@ } override fun initData() { - val userModelJson = SaveKeyValues.getValue(Constant.USER_OBJECT, "") as String - if (TextUtils.isEmpty(userModelJson)) { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { + isSingleMode = SaveKeyValues.getValue("isSingleMode", false) as Boolean + if (!isSingleMode) { + // 如果不是单机模式登录,则获取用户信息 + obtainUserInfo() + } + } + + private fun obtainUserInfo() { + val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + userViewModel.getUserInfo() + userViewModel.resultModel.observe(this, Observer { + if (it.code == 200) { //记录登录log LogToFile.write( FileUtils.documentFile, TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" ) SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + } else { + AlertView( + "温馨提示", "获取用户信息失败,是否重试?", "是", arrayOf("否"), + null, this, AlertView.Style.Alert + ) { _, position -> + when (position) { + -1 -> { + this.finish() + } + 0 -> { + obtainUserInfo() + } + } + }.show() + } + }) } override fun initEvent() { //新建巡检 createIssueLayout.setOnClickListener { - startActivity(Intent(this, MapActivity::class.java)) + if (isSingleMode) { + + } else { + startActivity(Intent(this, MapActivity::class.java)) + } } //记录查询 logSearchLayout.setOnClickListener { @@ -68,20 +91,28 @@ override fun onItemClick(position: Int) { when (position) { 0 -> { - startActivity( - Intent( - this@MainActivity, - InspectionQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + InspectionQueryActivity::class.java + ) ) - ) + } } 1 -> { - startActivity( - Intent( - this@MainActivity, - EventQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + EventQueryActivity::class.java + ) ) - ) + } } } } @@ -90,7 +121,11 @@ } //系统设置 settingsLayout.setOnClickListener { - startActivity(Intent(this, UserSettingsActivity::class.java)) + if (isSingleMode) { + startActivity(Intent(this, SingleModeUserSettingsActivity::class.java)) + } else { + startActivity(Intent(this, UserSettingsActivity::class.java)) + } } } diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt index eb53d30..059ef77 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt @@ -110,21 +110,23 @@ } Constant.DISCOVERY_DEVICE -> { val bean = msg.obj as BlueToothBean - if (mapActivity.blueToothBeans.size == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } else { - //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 - var judge = 0 - for (it in mapActivity.blueToothBeans) { - if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { - judge = 1 - break +// if (bean.bluetoothDevice.name.isDigitOnly()) { + if (mapActivity.blueToothBeans.size == 0) { + mapActivity.blueToothBeans.add(bean) + } else { + //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 + var judge = 0 + for (it in mapActivity.blueToothBeans) { + if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { + judge = 1 + break + } + } + if (judge == 0) { + mapActivity.blueToothBeans.add(bean) } } - if (judge == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } - } +// } } Constant.DISCOVERY_OUT_TIME -> { OtherUtils.dismissLoadingDialog() diff --git a/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt new file mode 100644 index 0000000..6dafd7f --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt @@ -0,0 +1,83 @@ +package com.casic.birmm.inspect.view + +import android.content.Context +import android.content.Intent +import android.os.Vibrator +import androidx.core.content.ContextCompat +import com.casic.birmm.inspect.BuildConfig +import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.base.BaseActivity +import com.casic.birmm.inspect.extensions.show +import com.casic.birmm.inspect.utils.* +import com.gyf.immersionbar.ImmersionBar +import kotlinx.android.synthetic.main.activity_single_mode_user_settings.* +import kotlinx.android.synthetic.main.activity_user_settings.appVersionView +import kotlinx.android.synthetic.main.activity_user_settings.autoRecordSwitch +import kotlinx.android.synthetic.main.activity_user_settings.warningSwitch +import kotlinx.android.synthetic.main.include_base_title.* + + +class SingleModeUserSettingsActivity : BaseActivity() { + + private lateinit var vibrator: Vibrator + + override fun initLayoutView(): Int = R.layout.activity_single_mode_user_settings + + override fun setupTopBarLayout() { + PageNavigationManager.addActivity(this) + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)) + ImmersionBar.with(this).statusBarDarkFont(false).init() + titleView.text = "系统设置" + } + + override fun initData() { + val isOpen = SaveKeyValues.getValue(Constant.OPEN_WARNING, false) as Boolean + warningSwitch.isChecked = isOpen + val isRecord = SaveKeyValues.getValue(Constant.AUTO_RECORD, false) as Boolean + autoRecordSwitch.isChecked = isRecord + + appVersionView.text = BuildConfig.VERSION_NAME + + //震动 + vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator + } + + override fun initEvent() { + leftBackView.setOnClickListener { this.finish() } + warningSwitch.setOnClickListener { + if (!vibrator.hasVibrator()) { + "设备没有震动蜂鸣器,无法打开此开关".show(this) + warningSwitch.isChecked = false + return@setOnClickListener + } + } + warningSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.OPEN_WARNING, true) + OtherUtils.playSound(this, R.raw.alarm) + vibrator.vibrate(1000) + } else { + OtherUtils.playSound(this, 0) + SaveKeyValues.putValue(Constant.OPEN_WARNING, false) + } + } + autoRecordSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.AUTO_RECORD, true) + } else { + SaveKeyValues.putValue(Constant.AUTO_RECORD, false) + } + } + backToLoginViewButton.setChangeAlphaWhenPress(true) + backToLoginViewButton.setOnClickListener { + startActivity( + Intent( + this@SingleModeUserSettingsActivity, + LoginActivity::class.java + ) + ) + //清除所有Activity + PageNavigationManager.finishAllActivity() + } + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index 6273b87..6481f0c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,12 +1,12 @@ package com.casic.birmm.inspect.view import android.content.Intent -import android.text.TextUtils import android.view.KeyEvent import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.aihook.alertview.library.AlertView import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity import com.casic.birmm.inspect.extensions.show @@ -23,6 +23,7 @@ private var clickTime: Long = 0 private val itemList: List = arrayListOf("巡检记录", "事件记录") + private var isSingleMode = false override fun initLayoutView(): Int = R.layout.activity_main @@ -35,28 +36,50 @@ } override fun initData() { - val userModelJson = SaveKeyValues.getValue(Constant.USER_OBJECT, "") as String - if (TextUtils.isEmpty(userModelJson)) { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { + isSingleMode = SaveKeyValues.getValue("isSingleMode", false) as Boolean + if (!isSingleMode) { + // 如果不是单机模式登录,则获取用户信息 + obtainUserInfo() + } + } + + private fun obtainUserInfo() { + val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + userViewModel.getUserInfo() + userViewModel.resultModel.observe(this, Observer { + if (it.code == 200) { //记录登录log LogToFile.write( FileUtils.documentFile, TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" ) SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + } else { + AlertView( + "温馨提示", "获取用户信息失败,是否重试?", "是", arrayOf("否"), + null, this, AlertView.Style.Alert + ) { _, position -> + when (position) { + -1 -> { + this.finish() + } + 0 -> { + obtainUserInfo() + } + } + }.show() + } + }) } override fun initEvent() { //新建巡检 createIssueLayout.setOnClickListener { - startActivity(Intent(this, MapActivity::class.java)) + if (isSingleMode) { + + } else { + startActivity(Intent(this, MapActivity::class.java)) + } } //记录查询 logSearchLayout.setOnClickListener { @@ -68,20 +91,28 @@ override fun onItemClick(position: Int) { when (position) { 0 -> { - startActivity( - Intent( - this@MainActivity, - InspectionQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + InspectionQueryActivity::class.java + ) ) - ) + } } 1 -> { - startActivity( - Intent( - this@MainActivity, - EventQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + EventQueryActivity::class.java + ) ) - ) + } } } } @@ -90,7 +121,11 @@ } //系统设置 settingsLayout.setOnClickListener { - startActivity(Intent(this, UserSettingsActivity::class.java)) + if (isSingleMode) { + startActivity(Intent(this, SingleModeUserSettingsActivity::class.java)) + } else { + startActivity(Intent(this, UserSettingsActivity::class.java)) + } } } diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt index eb53d30..059ef77 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt @@ -110,21 +110,23 @@ } Constant.DISCOVERY_DEVICE -> { val bean = msg.obj as BlueToothBean - if (mapActivity.blueToothBeans.size == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } else { - //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 - var judge = 0 - for (it in mapActivity.blueToothBeans) { - if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { - judge = 1 - break +// if (bean.bluetoothDevice.name.isDigitOnly()) { + if (mapActivity.blueToothBeans.size == 0) { + mapActivity.blueToothBeans.add(bean) + } else { + //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 + var judge = 0 + for (it in mapActivity.blueToothBeans) { + if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { + judge = 1 + break + } + } + if (judge == 0) { + mapActivity.blueToothBeans.add(bean) } } - if (judge == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } - } +// } } Constant.DISCOVERY_OUT_TIME -> { OtherUtils.dismissLoadingDialog() diff --git a/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt new file mode 100644 index 0000000..6dafd7f --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt @@ -0,0 +1,83 @@ +package com.casic.birmm.inspect.view + +import android.content.Context +import android.content.Intent +import android.os.Vibrator +import androidx.core.content.ContextCompat +import com.casic.birmm.inspect.BuildConfig +import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.base.BaseActivity +import com.casic.birmm.inspect.extensions.show +import com.casic.birmm.inspect.utils.* +import com.gyf.immersionbar.ImmersionBar +import kotlinx.android.synthetic.main.activity_single_mode_user_settings.* +import kotlinx.android.synthetic.main.activity_user_settings.appVersionView +import kotlinx.android.synthetic.main.activity_user_settings.autoRecordSwitch +import kotlinx.android.synthetic.main.activity_user_settings.warningSwitch +import kotlinx.android.synthetic.main.include_base_title.* + + +class SingleModeUserSettingsActivity : BaseActivity() { + + private lateinit var vibrator: Vibrator + + override fun initLayoutView(): Int = R.layout.activity_single_mode_user_settings + + override fun setupTopBarLayout() { + PageNavigationManager.addActivity(this) + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)) + ImmersionBar.with(this).statusBarDarkFont(false).init() + titleView.text = "系统设置" + } + + override fun initData() { + val isOpen = SaveKeyValues.getValue(Constant.OPEN_WARNING, false) as Boolean + warningSwitch.isChecked = isOpen + val isRecord = SaveKeyValues.getValue(Constant.AUTO_RECORD, false) as Boolean + autoRecordSwitch.isChecked = isRecord + + appVersionView.text = BuildConfig.VERSION_NAME + + //震动 + vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator + } + + override fun initEvent() { + leftBackView.setOnClickListener { this.finish() } + warningSwitch.setOnClickListener { + if (!vibrator.hasVibrator()) { + "设备没有震动蜂鸣器,无法打开此开关".show(this) + warningSwitch.isChecked = false + return@setOnClickListener + } + } + warningSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.OPEN_WARNING, true) + OtherUtils.playSound(this, R.raw.alarm) + vibrator.vibrate(1000) + } else { + OtherUtils.playSound(this, 0) + SaveKeyValues.putValue(Constant.OPEN_WARNING, false) + } + } + autoRecordSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.AUTO_RECORD, true) + } else { + SaveKeyValues.putValue(Constant.AUTO_RECORD, false) + } + } + backToLoginViewButton.setChangeAlphaWhenPress(true) + backToLoginViewButton.setOnClickListener { + startActivity( + Intent( + this@SingleModeUserSettingsActivity, + LoginActivity::class.java + ) + ) + //清除所有Activity + PageNavigationManager.finishAllActivity() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 6cba9ba..6ee7c6f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -5,12 +5,14 @@ import com.casic.birmm.inspect.extensions.launch import com.casic.birmm.inspect.model.PublicKeyModel import com.casic.birmm.inspect.utils.LoadState +import com.casic.birmm.inspect.utils.SaveKeyValues import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager class AuthenticateViewModel : BaseViewModel() { val keyModel = MutableLiveData() fun obtainPublicKey() = launch({ + SaveKeyValues.putValue("isSingleMode", false) loadState.value = LoadState.Loading keyModel.value = RetrofitServiceManager.authenticate() }, { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 095d251..0dd2d85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index 6273b87..6481f0c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,12 +1,12 @@ package com.casic.birmm.inspect.view import android.content.Intent -import android.text.TextUtils import android.view.KeyEvent import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.aihook.alertview.library.AlertView import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity import com.casic.birmm.inspect.extensions.show @@ -23,6 +23,7 @@ private var clickTime: Long = 0 private val itemList: List = arrayListOf("巡检记录", "事件记录") + private var isSingleMode = false override fun initLayoutView(): Int = R.layout.activity_main @@ -35,28 +36,50 @@ } override fun initData() { - val userModelJson = SaveKeyValues.getValue(Constant.USER_OBJECT, "") as String - if (TextUtils.isEmpty(userModelJson)) { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { + isSingleMode = SaveKeyValues.getValue("isSingleMode", false) as Boolean + if (!isSingleMode) { + // 如果不是单机模式登录,则获取用户信息 + obtainUserInfo() + } + } + + private fun obtainUserInfo() { + val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + userViewModel.getUserInfo() + userViewModel.resultModel.observe(this, Observer { + if (it.code == 200) { //记录登录log LogToFile.write( FileUtils.documentFile, TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" ) SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + } else { + AlertView( + "温馨提示", "获取用户信息失败,是否重试?", "是", arrayOf("否"), + null, this, AlertView.Style.Alert + ) { _, position -> + when (position) { + -1 -> { + this.finish() + } + 0 -> { + obtainUserInfo() + } + } + }.show() + } + }) } override fun initEvent() { //新建巡检 createIssueLayout.setOnClickListener { - startActivity(Intent(this, MapActivity::class.java)) + if (isSingleMode) { + + } else { + startActivity(Intent(this, MapActivity::class.java)) + } } //记录查询 logSearchLayout.setOnClickListener { @@ -68,20 +91,28 @@ override fun onItemClick(position: Int) { when (position) { 0 -> { - startActivity( - Intent( - this@MainActivity, - InspectionQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + InspectionQueryActivity::class.java + ) ) - ) + } } 1 -> { - startActivity( - Intent( - this@MainActivity, - EventQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + EventQueryActivity::class.java + ) ) - ) + } } } } @@ -90,7 +121,11 @@ } //系统设置 settingsLayout.setOnClickListener { - startActivity(Intent(this, UserSettingsActivity::class.java)) + if (isSingleMode) { + startActivity(Intent(this, SingleModeUserSettingsActivity::class.java)) + } else { + startActivity(Intent(this, UserSettingsActivity::class.java)) + } } } diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt index eb53d30..059ef77 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt @@ -110,21 +110,23 @@ } Constant.DISCOVERY_DEVICE -> { val bean = msg.obj as BlueToothBean - if (mapActivity.blueToothBeans.size == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } else { - //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 - var judge = 0 - for (it in mapActivity.blueToothBeans) { - if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { - judge = 1 - break +// if (bean.bluetoothDevice.name.isDigitOnly()) { + if (mapActivity.blueToothBeans.size == 0) { + mapActivity.blueToothBeans.add(bean) + } else { + //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 + var judge = 0 + for (it in mapActivity.blueToothBeans) { + if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { + judge = 1 + break + } + } + if (judge == 0) { + mapActivity.blueToothBeans.add(bean) } } - if (judge == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } - } +// } } Constant.DISCOVERY_OUT_TIME -> { OtherUtils.dismissLoadingDialog() diff --git a/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt new file mode 100644 index 0000000..6dafd7f --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt @@ -0,0 +1,83 @@ +package com.casic.birmm.inspect.view + +import android.content.Context +import android.content.Intent +import android.os.Vibrator +import androidx.core.content.ContextCompat +import com.casic.birmm.inspect.BuildConfig +import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.base.BaseActivity +import com.casic.birmm.inspect.extensions.show +import com.casic.birmm.inspect.utils.* +import com.gyf.immersionbar.ImmersionBar +import kotlinx.android.synthetic.main.activity_single_mode_user_settings.* +import kotlinx.android.synthetic.main.activity_user_settings.appVersionView +import kotlinx.android.synthetic.main.activity_user_settings.autoRecordSwitch +import kotlinx.android.synthetic.main.activity_user_settings.warningSwitch +import kotlinx.android.synthetic.main.include_base_title.* + + +class SingleModeUserSettingsActivity : BaseActivity() { + + private lateinit var vibrator: Vibrator + + override fun initLayoutView(): Int = R.layout.activity_single_mode_user_settings + + override fun setupTopBarLayout() { + PageNavigationManager.addActivity(this) + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)) + ImmersionBar.with(this).statusBarDarkFont(false).init() + titleView.text = "系统设置" + } + + override fun initData() { + val isOpen = SaveKeyValues.getValue(Constant.OPEN_WARNING, false) as Boolean + warningSwitch.isChecked = isOpen + val isRecord = SaveKeyValues.getValue(Constant.AUTO_RECORD, false) as Boolean + autoRecordSwitch.isChecked = isRecord + + appVersionView.text = BuildConfig.VERSION_NAME + + //震动 + vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator + } + + override fun initEvent() { + leftBackView.setOnClickListener { this.finish() } + warningSwitch.setOnClickListener { + if (!vibrator.hasVibrator()) { + "设备没有震动蜂鸣器,无法打开此开关".show(this) + warningSwitch.isChecked = false + return@setOnClickListener + } + } + warningSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.OPEN_WARNING, true) + OtherUtils.playSound(this, R.raw.alarm) + vibrator.vibrate(1000) + } else { + OtherUtils.playSound(this, 0) + SaveKeyValues.putValue(Constant.OPEN_WARNING, false) + } + } + autoRecordSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.AUTO_RECORD, true) + } else { + SaveKeyValues.putValue(Constant.AUTO_RECORD, false) + } + } + backToLoginViewButton.setChangeAlphaWhenPress(true) + backToLoginViewButton.setOnClickListener { + startActivity( + Intent( + this@SingleModeUserSettingsActivity, + LoginActivity::class.java + ) + ) + //清除所有Activity + PageNavigationManager.finishAllActivity() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 6cba9ba..6ee7c6f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -5,12 +5,14 @@ import com.casic.birmm.inspect.extensions.launch import com.casic.birmm.inspect.model.PublicKeyModel import com.casic.birmm.inspect.utils.LoadState +import com.casic.birmm.inspect.utils.SaveKeyValues import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager class AuthenticateViewModel : BaseViewModel() { val keyModel = MutableLiveData() fun obtainPublicKey() = launch({ + SaveKeyValues.putValue("isSingleMode", false) loadState.value = LoadState.Loading keyModel.value = RetrofitServiceManager.authenticate() }, { diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index cecc6bb..2ff3832 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -78,14 +78,14 @@ app:qmui_radius="20dp" /> + diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt index d5ff9c5..44b83e3 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/Constant.kt @@ -29,6 +29,8 @@ const val IMAGE_MINUS_SIZE = 100 * 1024 const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" + const val ACCOUNT = "account" + const val PASSWORD = "password" const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" diff --git a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt index b18d01e..6b27714 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/GuideActivity.kt @@ -3,18 +3,10 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.CountDownTimer -import android.text.TextUtils import android.view.ViewGroup.MarginLayoutParams -import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModelProvider -import com.aihook.alertview.library.AlertView -import com.aihook.alertview.library.OnItemClickListener import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity -import com.casic.birmm.inspect.extensions.show -import com.casic.birmm.inspect.utils.* -import com.casic.birmm.inspect.vm.UserViewModel -import com.google.gson.Gson +import com.casic.birmm.inspect.utils.PageNavigationManager import com.qmuiteam.qmui.util.QMUIDisplayHelper import kotlinx.android.synthetic.main.activity_guide.* @@ -59,52 +51,7 @@ } fun startLoginActivity() { - // 判断是否已登录,已登录跳转到主页,否则去登录页 - if (TextUtils.isEmpty(AuthenticationHelper.token)) { - startActivity(Intent(this, LoginActivity::class.java)) - finish() - } else { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { - if (it.code == 200) { - //记录登录log - LogToFile.write( - FileUtils.documentFile, - TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" - ) - SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } else { - AlertView("温馨提示", - it.message, - "等会再来", - arrayOf("去登录"), - null, - this, - AlertView.Style.Alert, - OnItemClickListener { _, position -> - when (position) { - -1 -> { - this@GuideActivity.finish() - } - 0 -> { - startActivity( - Intent( - this@GuideActivity, - LoginActivity::class.java - ) - ) - finish() - } - } - }).show() - } - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + startActivity(Intent(this, LoginActivity::class.java)) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index 5b9fbd3..1dd57e4 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -31,41 +31,10 @@ } override fun initData() { + // 设置默认账号密码 + userNameView.setText(SaveKeyValues.getValue(Constant.ACCOUNT, "") as String) + userPasswordView.setText(SaveKeyValues.getValue(Constant.PASSWORD, "") as String) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - authenticateViewModel.keyModel.observe(this, Observer { - if (it.code == 200) {//用code判断,别的判断可能有坑 - val keyString = it.data!!.publicKey!! - /** - * 修改密码需要用到key,先存着,以备不时之需 - * */ - AuthenticationHelper.savePublicKey(keyString) - val publicKey = RSAUtils.keyStrToPublicKey(keyString) - - val account = userNameView.text.toString() - val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 - val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) - loginInViewModel.login(account = account, secretKey = dataByPublicKey) - loginInViewModel.resultModel.observe(this, Observer { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - //验证成功登录 - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - }) - loginInViewModel.loadState.observe(this, Observer { loginState -> - changeLoadStatus(loginState) - }) - } else { - it.message!!.show(this) - } - }) - authenticateViewModel.loadState.observe(this, Observer { - changeLoadStatus(it) - }) } private fun changeLoadStatus(status: LoadState) { @@ -104,7 +73,6 @@ } false } - loginButton.setChangeAlphaWhenPress(true) loginButton.setOnClickListener { val account = userNameView.text.toString() @@ -117,10 +85,52 @@ "密码不能为空".show(this) return@setOnClickListener } + SaveKeyValues.putValue(Constant.ACCOUNT, account) + SaveKeyValues.putValue(Constant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } + authenticateViewModel.keyModel.observe(this, Observer { + if (it.code == 200) {//用code判断,别的判断可能有坑 + val keyString = it.data!!.publicKey!! + /** + * 修改密码需要用到key,先存着,以备不时之需 + * */ + AuthenticationHelper.savePublicKey(keyString) + val publicKey = RSAUtils.keyStrToPublicKey(keyString) - singModeView.setChangeAlphaWhenPress(true) + val account = userNameView.text.toString() + val userPassword = userPasswordView.text.toString() + val dataByPublicKey = + RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + //登录并获取Token,POST请求 + val loginInViewModel = ViewModelProvider(this).get(LoginInViewModel::class.java) + loginInViewModel.login(account = account, secretKey = dataByPublicKey) + loginInViewModel.resultModel.observe(this, Observer { loginResult -> + if (loginResult.code == 200) { + AuthenticationHelper.saveToken(loginResult.data!!.token!!) + //验证成功登录 + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + }) + loginInViewModel.loadState.observe(this, Observer { loginState -> + changeLoadStatus(loginState) + }) + } else { + it.message!!.show(this) + } + }) + authenticateViewModel.loadState.observe(this, Observer { + changeLoadStatus(it) + }) + + //单机模式 + singleModeView.setChangeAlphaWhenPress(true) + singleModeView.setOnClickListener { + SaveKeyValues.putValue("isSingleMode", true) + startActivity(Intent(this, MainActivity::class.java)) + finish() + } //修改服务器配置 changeServerConfigView.setOnClickListener { diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index 6273b87..6481f0c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,12 +1,12 @@ package com.casic.birmm.inspect.view import android.content.Intent -import android.text.TextUtils import android.view.KeyEvent import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.aihook.alertview.library.AlertView import com.casic.birmm.inspect.R import com.casic.birmm.inspect.base.BaseActivity import com.casic.birmm.inspect.extensions.show @@ -23,6 +23,7 @@ private var clickTime: Long = 0 private val itemList: List = arrayListOf("巡检记录", "事件记录") + private var isSingleMode = false override fun initLayoutView(): Int = R.layout.activity_main @@ -35,28 +36,50 @@ } override fun initData() { - val userModelJson = SaveKeyValues.getValue(Constant.USER_OBJECT, "") as String - if (TextUtils.isEmpty(userModelJson)) { - val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - userViewModel.getUserInfo() - userViewModel.resultModel.observe(this, Observer { + isSingleMode = SaveKeyValues.getValue("isSingleMode", false) as Boolean + if (!isSingleMode) { + // 如果不是单机模式登录,则获取用户信息 + obtainUserInfo() + } + } + + private fun obtainUserInfo() { + val userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + userViewModel.getUserInfo() + userViewModel.resultModel.observe(this, Observer { + if (it.code == 200) { //记录登录log LogToFile.write( FileUtils.documentFile, TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()) + " ${it.data!!.name}登录成功" ) SaveKeyValues.putValue(Constant.USER_OBJECT, Gson().toJson(it))//保存用户对象 - }) - userViewModel.loadState.observe(this, Observer { - "获取用户信息失败,请重试".show(this) - }) - } + } else { + AlertView( + "温馨提示", "获取用户信息失败,是否重试?", "是", arrayOf("否"), + null, this, AlertView.Style.Alert + ) { _, position -> + when (position) { + -1 -> { + this.finish() + } + 0 -> { + obtainUserInfo() + } + } + }.show() + } + }) } override fun initEvent() { //新建巡检 createIssueLayout.setOnClickListener { - startActivity(Intent(this, MapActivity::class.java)) + if (isSingleMode) { + + } else { + startActivity(Intent(this, MapActivity::class.java)) + } } //记录查询 logSearchLayout.setOnClickListener { @@ -68,20 +91,28 @@ override fun onItemClick(position: Int) { when (position) { 0 -> { - startActivity( - Intent( - this@MainActivity, - InspectionQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + InspectionQueryActivity::class.java + ) ) - ) + } } 1 -> { - startActivity( - Intent( - this@MainActivity, - EventQueryActivity::class.java + if (isSingleMode) { + + } else { + startActivity( + Intent( + this@MainActivity, + EventQueryActivity::class.java + ) ) - ) + } } } } @@ -90,7 +121,11 @@ } //系统设置 settingsLayout.setOnClickListener { - startActivity(Intent(this, UserSettingsActivity::class.java)) + if (isSingleMode) { + startActivity(Intent(this, SingleModeUserSettingsActivity::class.java)) + } else { + startActivity(Intent(this, UserSettingsActivity::class.java)) + } } } diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt index eb53d30..059ef77 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MapActivity.kt @@ -110,21 +110,23 @@ } Constant.DISCOVERY_DEVICE -> { val bean = msg.obj as BlueToothBean - if (mapActivity.blueToothBeans.size == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } else { - //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 - var judge = 0 - for (it in mapActivity.blueToothBeans) { - if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { - judge = 1 - break +// if (bean.bluetoothDevice.name.isDigitOnly()) { + if (mapActivity.blueToothBeans.size == 0) { + mapActivity.blueToothBeans.add(bean) + } else { + //0表示未添加到list的新设备,1表示已经扫描并添加到list的设备 + var judge = 0 + for (it in mapActivity.blueToothBeans) { + if (it.bluetoothDevice.address == bean.bluetoothDevice.address) { + judge = 1 + break + } + } + if (judge == 0) { + mapActivity.blueToothBeans.add(bean) } } - if (judge == 0 && bean.bluetoothDevice.name.isDigitOnly()) { - mapActivity.blueToothBeans.add(bean) - } - } +// } } Constant.DISCOVERY_OUT_TIME -> { OtherUtils.dismissLoadingDialog() diff --git a/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt new file mode 100644 index 0000000..6dafd7f --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/view/SingleModeUserSettingsActivity.kt @@ -0,0 +1,83 @@ +package com.casic.birmm.inspect.view + +import android.content.Context +import android.content.Intent +import android.os.Vibrator +import androidx.core.content.ContextCompat +import com.casic.birmm.inspect.BuildConfig +import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.base.BaseActivity +import com.casic.birmm.inspect.extensions.show +import com.casic.birmm.inspect.utils.* +import com.gyf.immersionbar.ImmersionBar +import kotlinx.android.synthetic.main.activity_single_mode_user_settings.* +import kotlinx.android.synthetic.main.activity_user_settings.appVersionView +import kotlinx.android.synthetic.main.activity_user_settings.autoRecordSwitch +import kotlinx.android.synthetic.main.activity_user_settings.warningSwitch +import kotlinx.android.synthetic.main.include_base_title.* + + +class SingleModeUserSettingsActivity : BaseActivity() { + + private lateinit var vibrator: Vibrator + + override fun initLayoutView(): Int = R.layout.activity_single_mode_user_settings + + override fun setupTopBarLayout() { + PageNavigationManager.addActivity(this) + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)) + ImmersionBar.with(this).statusBarDarkFont(false).init() + titleView.text = "系统设置" + } + + override fun initData() { + val isOpen = SaveKeyValues.getValue(Constant.OPEN_WARNING, false) as Boolean + warningSwitch.isChecked = isOpen + val isRecord = SaveKeyValues.getValue(Constant.AUTO_RECORD, false) as Boolean + autoRecordSwitch.isChecked = isRecord + + appVersionView.text = BuildConfig.VERSION_NAME + + //震动 + vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator + } + + override fun initEvent() { + leftBackView.setOnClickListener { this.finish() } + warningSwitch.setOnClickListener { + if (!vibrator.hasVibrator()) { + "设备没有震动蜂鸣器,无法打开此开关".show(this) + warningSwitch.isChecked = false + return@setOnClickListener + } + } + warningSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.OPEN_WARNING, true) + OtherUtils.playSound(this, R.raw.alarm) + vibrator.vibrate(1000) + } else { + OtherUtils.playSound(this, 0) + SaveKeyValues.putValue(Constant.OPEN_WARNING, false) + } + } + autoRecordSwitch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + SaveKeyValues.putValue(Constant.AUTO_RECORD, true) + } else { + SaveKeyValues.putValue(Constant.AUTO_RECORD, false) + } + } + backToLoginViewButton.setChangeAlphaWhenPress(true) + backToLoginViewButton.setOnClickListener { + startActivity( + Intent( + this@SingleModeUserSettingsActivity, + LoginActivity::class.java + ) + ) + //清除所有Activity + PageNavigationManager.finishAllActivity() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 6cba9ba..6ee7c6f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -5,12 +5,14 @@ import com.casic.birmm.inspect.extensions.launch import com.casic.birmm.inspect.model.PublicKeyModel import com.casic.birmm.inspect.utils.LoadState +import com.casic.birmm.inspect.utils.SaveKeyValues import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager class AuthenticateViewModel : BaseViewModel() { val keyModel = MutableLiveData() fun obtainPublicKey() = launch({ + SaveKeyValues.putValue("isSingleMode", false) loadState.value = LoadState.Loading keyModel.value = RetrofitServiceManager.authenticate() }, { diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index cecc6bb..2ff3832 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -78,14 +78,14 @@ app:qmui_radius="20dp" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file