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