diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
new file mode 100644
index 0000000..4d57407
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
@@ -0,0 +1,31 @@
+package com.casic.xz.meterage.view
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_preview_doc.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class PrivacyActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_privacy
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "隐私政策"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
new file mode 100644
index 0000000..4d57407
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
@@ -0,0 +1,31 @@
+package com.casic.xz.meterage.view
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_preview_doc.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class PrivacyActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_privacy
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "隐私政策"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index a54e140..bea3e77 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -61,7 +61,39 @@
style="@style/MainButtonStyle"
android:layout_below="@id/passwordView"
android:layout_marginHorizontal="@dimen/dp_60"
- android:layout_marginTop="@dimen/dp_50"
+ android:layout_marginTop="@dimen/dp_30"
android:text="登\u3000录"
android:textColor="@color/white" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
new file mode 100644
index 0000000..4d57407
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
@@ -0,0 +1,31 @@
+package com.casic.xz.meterage.view
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_preview_doc.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class PrivacyActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_privacy
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "隐私政策"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index a54e140..bea3e77 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -61,7 +61,39 @@
style="@style/MainButtonStyle"
android:layout_below="@id/passwordView"
android:layout_marginHorizontal="@dimen/dp_60"
- android:layout_marginTop="@dimen/dp_50"
+ android:layout_marginTop="@dimen/dp_30"
android:text="登\u3000录"
android:textColor="@color/white" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_privacy.xml b/app/src/main/res/layout/activity_privacy.xml
new file mode 100644
index 0000000..36e91c4
--- /dev/null
+++ b/app/src/main/res/layout/activity_privacy.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
new file mode 100644
index 0000000..4d57407
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
@@ -0,0 +1,31 @@
+package com.casic.xz.meterage.view
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_preview_doc.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class PrivacyActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_privacy
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "隐私政策"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index a54e140..bea3e77 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -61,7 +61,39 @@
style="@style/MainButtonStyle"
android:layout_below="@id/passwordView"
android:layout_marginHorizontal="@dimen/dp_60"
- android:layout_marginTop="@dimen/dp_50"
+ android:layout_marginTop="@dimen/dp_30"
android:text="登\u3000录"
android:textColor="@color/white" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_privacy.xml b/app/src/main/res/layout/activity_privacy.xml
new file mode 100644
index 0000000..36e91c4
--- /dev/null
+++ b/app/src/main/res/layout/activity_privacy.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index 5296f1f..79c76e2 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -132,27 +132,6 @@
-
-
-
-
-
-
-
-
-
-
-
+ android:text="隐私政策" />
@@ -207,27 +186,6 @@
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
@@ -249,27 +207,6 @@
android:background="@color/mainBackground" />
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
new file mode 100644
index 0000000..4d57407
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
@@ -0,0 +1,31 @@
+package com.casic.xz.meterage.view
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_preview_doc.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class PrivacyActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_privacy
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "隐私政策"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index a54e140..bea3e77 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -61,7 +61,39 @@
style="@style/MainButtonStyle"
android:layout_below="@id/passwordView"
android:layout_marginHorizontal="@dimen/dp_60"
- android:layout_marginTop="@dimen/dp_50"
+ android:layout_marginTop="@dimen/dp_30"
android:text="登\u3000录"
android:textColor="@color/white" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_privacy.xml b/app/src/main/res/layout/activity_privacy.xml
new file mode 100644
index 0000000..36e91c4
--- /dev/null
+++ b/app/src/main/res/layout/activity_privacy.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index 5296f1f..79c76e2 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -132,27 +132,6 @@
-
-
-
-
-
-
-
-
-
-
-
+ android:text="隐私政策" />
@@ -207,27 +186,6 @@
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
@@ -249,27 +207,6 @@
android:background="@color/mainBackground" />
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f23085a..fa17c10 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,4 +2,30 @@
华东计量
中国航天科工集团二院二〇三所
数据加载中…
+
+
+ \u3000\u3000智慧计量业务 App 尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,智慧计量业务 App 会按照本隐私权政策的规定使用和披露您的个人信息。但智慧计量业务 App 将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,智慧计量业务 App 不会将这些信息对外披露或向第三方提供。智慧计量业务 App 会不时更新本隐私权政策。 您在同意智慧计量业务 App 服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于智慧计量业务 App 服务使用协议不可分割的一部分。
+ a)在您注册智慧计量业务 App 帐号时,您根据智慧计量业务 App 要求提供的个人注册信息;
+ b) 在您使用智慧计量业务 App 网络服务,或访问智慧计量业务 App 平台网页时,智慧计量业务 App 自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;
+ c) 智慧计量业务 App 通过合法途径从商业伙伴处取得的用户个人数据。
+ a) 您在使用智慧计量业务 App 平台提供的搜索服务时输入的关键字信息;
+ b) 智慧计量业务 App 收集到的您在智慧计量业务 App 发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;
+ c) 违反法律规定或违反智慧计量业务 App 规则行为及智慧计量业务 App 已对您采取的措施。
+ a) 智慧计量业务 App 不会向任何无关第三方提供、出售、出租、分享或交易您的个人信息,除非事先得到您的许可,或该第三方和智慧计量业务 App (含智慧计量业务 App 关联公司)单独或共同为您提供服务,且在该服务结束后,其将被禁止访问包括其以前能够访问的所有这些资料。
+ b) 智慧计量业务 App 亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。任何智慧计量业务 App 平台用户如从事上述活动,一经发现,智慧计量业务 App 有权立即终止与该用户的服务协议。
+ c) 为服务用户的目的,智慧计量业务 App 可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,或者与智慧计量业务 App 合作伙伴共享信息以便他们向您发送有关其产品和服务的信息(后者需要您的事先同意)。
+ 在如下情况下,智慧计量业务 App 将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息:
+ a) 经您事先同意,向第三方披露;
+ b) 为提供您所要求的产品和服务,而必须和第三方分享您的个人信息;
+ c) 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;
+ d) 如您出现违反中国有关法律、法规或者智慧计量业务 App 服务协议或相关规则的情况,需要向第三方披露;
+ e) 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷;
+ f) 在智慧计量业务 App 平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出信息披露请求的,智慧计量业务 App 有权决定向该用户提供其交易对方的联络方式等必要信息,以促成交易的完成或纠纷的解决。
+ g) 其它智慧计量业务 App 根据法律、法规或者网站政策认为合适的披露。
+ 智慧计量业务 App 收集的有关您的信息和资料将保存在智慧计量业务 App 及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或智慧计量业务 App 收集信息和资料所在地的境外并在境外被访问、存储和展示。
+ a) 在您未拒绝接受cookies的情况下,智慧计量业务 App 会在您的计算机上设定或取用cookies,以便您能登录或使用依赖于cookies的智慧计量业务 App 平台服务或功能。智慧计量业务 App 使用cookies可为您提供更加周到的个性化服务,包括推广服务。
+ b) 您有权选择接受或拒绝接受cookies。您可以通过修改浏览器设置的方式拒绝接受cookies。但如果您选择拒绝接受cookies,则您可能无法登录或使用依赖于cookies的智慧计量业务 App 网络服务或功能。
+ c) 通过智慧计量业务 App 所设cookies所取得的有关信息,将适用本政策。
+ a) 智慧计量业务 App 帐号均有安全保护功能,请妥善保管您的用户名及密码信息。智慧计量业务 App 将通过对用户密码进行加密等安全措施确保您的信息不丢失,不被滥用和变造。尽管有前述安全措施,但同时也请您注意在信息网络上不存在“完善的安全措施”。
+ b) 在使用智慧计量业务 App 网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,尤其是智慧计量业务 App 用户名及密码发生泄露,请您立即联络智慧计量业务 App 客服,以便智慧计量业务 App 采取相应措施。
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2acc2f6..9452a29 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,6 +85,7 @@
+
()
+ }
+
noticeLayout.setOnClickListener {
requireContext().navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 2ea47a0..cf9e135 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -63,4 +63,5 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_ID = "userId"
+ const val PRIVACY_CHECK_BOX = "privacyCheckBox"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f602804..3f06643 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -30,6 +30,8 @@
override fun initData() {
userPhoneView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ checkBoxView.isChecked =
+ SaveKeyValues.getValue(LocaleConstant.PRIVACY_CHECK_BOX, false) as Boolean
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
@@ -55,43 +57,55 @@
// }
loginButton.setOnClickListener {
- val userPhone = userPhoneView.text.toString()
- if (userPhone.isBlank()) {
- "请输入手机号".show(this)
- return@setOnClickListener
- }
- val userPassword = passwordView.text.toString()
- if (userPassword.isBlank()) {
- "请输入密码".show(this)
- return@setOnClickListener
- }
- SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
- SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
+ if (checkBoxView.isChecked) {
+ val userPhone = userPhoneView.text.toString()
+ if (userPhone.isBlank()) {
+ "请输入手机号".show(this)
+ return@setOnClickListener
+ }
+ val userPassword = passwordView.text.toString()
+ if (userPassword.isBlank()) {
+ "请输入密码".show(this)
+ return@setOnClickListener
+ }
+ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, userPhone)
+ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword)
- authenticateViewModel.obtainPublicKey()
- authenticateViewModel.keyModel.observe(this) { keyModel ->
- if (keyModel.code == 200) {
- val keyString = keyModel.data!!.publicKey!!
- /**
- * 修改密码需要用到key,先存着
- * */
- AuthenticationHelper.savePublicKey(keyString)
- val publicKey = RSAUtils.keyStrToPublicKey(keyString)
+ authenticateViewModel.obtainPublicKey()
+ authenticateViewModel.keyModel.observe(this) { keyModel ->
+ if (keyModel.code == 200) {
+ val keyString = keyModel.data!!.publicKey!!
+ /**
+ * 修改密码需要用到key,先存着
+ * */
+ AuthenticationHelper.savePublicKey(keyString)
+ val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
- userPassword.toByteArray(), publicKey!!
- )
- userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
- userViewModel.loginResult.observe(this) {
- if (it.code == 200) {
- AuthenticationHelper.saveToken(it.data!!.token!!)
- PageNavigationManager.finishAllActivity()
- navigatePageTo()
+ val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
+ userPassword.toByteArray(), publicKey!!
+ )
+ userViewModel.enter(keyModel.data!!.sid!!, userPhone, dataByPublicKey)
+ userViewModel.loginResult.observe(this) {
+ if (it.code == 200) {
+ AuthenticationHelper.saveToken(it.data!!.token!!)
+ PageNavigationManager.finishAllActivity()
+ navigatePageTo()
+ }
}
}
}
+ } else {
+ "请先勾选隐私政策".show(this)
}
}
+
+ checkBoxView.setOnCheckedChangeListener { _, isChecked ->
+ SaveKeyValues.putValue(LocaleConstant.PRIVACY_CHECK_BOX, isChecked)
+ }
+
+ privacyView.setOnClickListener {
+ this.navigatePageTo()
+ }
}
override fun initLayoutView(): Int = R.layout.activity_login
diff --git a/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
new file mode 100644
index 0000000..4d57407
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/PrivacyActivity.kt
@@ -0,0 +1,31 @@
+package com.casic.xz.meterage.view
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_preview_doc.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class PrivacyActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_privacy
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "隐私政策"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index a54e140..bea3e77 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -61,7 +61,39 @@
style="@style/MainButtonStyle"
android:layout_below="@id/passwordView"
android:layout_marginHorizontal="@dimen/dp_60"
- android:layout_marginTop="@dimen/dp_50"
+ android:layout_marginTop="@dimen/dp_30"
android:text="登\u3000录"
android:textColor="@color/white" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_privacy.xml b/app/src/main/res/layout/activity_privacy.xml
new file mode 100644
index 0000000..36e91c4
--- /dev/null
+++ b/app/src/main/res/layout/activity_privacy.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index 5296f1f..79c76e2 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -132,27 +132,6 @@
-
-
-
-
-
-
-
-
-
-
-
+ android:text="隐私政策" />
@@ -207,27 +186,6 @@
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
@@ -249,27 +207,6 @@
android:background="@color/mainBackground" />
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f23085a..fa17c10 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,4 +2,30 @@
华东计量
中国航天科工集团二院二〇三所
数据加载中…
+
+
+ \u3000\u3000智慧计量业务 App 尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,智慧计量业务 App 会按照本隐私权政策的规定使用和披露您的个人信息。但智慧计量业务 App 将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,智慧计量业务 App 不会将这些信息对外披露或向第三方提供。智慧计量业务 App 会不时更新本隐私权政策。 您在同意智慧计量业务 App 服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于智慧计量业务 App 服务使用协议不可分割的一部分。
+ a)在您注册智慧计量业务 App 帐号时,您根据智慧计量业务 App 要求提供的个人注册信息;
+ b) 在您使用智慧计量业务 App 网络服务,或访问智慧计量业务 App 平台网页时,智慧计量业务 App 自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;
+ c) 智慧计量业务 App 通过合法途径从商业伙伴处取得的用户个人数据。
+ a) 您在使用智慧计量业务 App 平台提供的搜索服务时输入的关键字信息;
+ b) 智慧计量业务 App 收集到的您在智慧计量业务 App 发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;
+ c) 违反法律规定或违反智慧计量业务 App 规则行为及智慧计量业务 App 已对您采取的措施。
+ a) 智慧计量业务 App 不会向任何无关第三方提供、出售、出租、分享或交易您的个人信息,除非事先得到您的许可,或该第三方和智慧计量业务 App (含智慧计量业务 App 关联公司)单独或共同为您提供服务,且在该服务结束后,其将被禁止访问包括其以前能够访问的所有这些资料。
+ b) 智慧计量业务 App 亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。任何智慧计量业务 App 平台用户如从事上述活动,一经发现,智慧计量业务 App 有权立即终止与该用户的服务协议。
+ c) 为服务用户的目的,智慧计量业务 App 可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,或者与智慧计量业务 App 合作伙伴共享信息以便他们向您发送有关其产品和服务的信息(后者需要您的事先同意)。
+ 在如下情况下,智慧计量业务 App 将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息:
+ a) 经您事先同意,向第三方披露;
+ b) 为提供您所要求的产品和服务,而必须和第三方分享您的个人信息;
+ c) 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;
+ d) 如您出现违反中国有关法律、法规或者智慧计量业务 App 服务协议或相关规则的情况,需要向第三方披露;
+ e) 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷;
+ f) 在智慧计量业务 App 平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出信息披露请求的,智慧计量业务 App 有权决定向该用户提供其交易对方的联络方式等必要信息,以促成交易的完成或纠纷的解决。
+ g) 其它智慧计量业务 App 根据法律、法规或者网站政策认为合适的披露。
+ 智慧计量业务 App 收集的有关您的信息和资料将保存在智慧计量业务 App 及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或智慧计量业务 App 收集信息和资料所在地的境外并在境外被访问、存储和展示。
+ a) 在您未拒绝接受cookies的情况下,智慧计量业务 App 会在您的计算机上设定或取用cookies,以便您能登录或使用依赖于cookies的智慧计量业务 App 平台服务或功能。智慧计量业务 App 使用cookies可为您提供更加周到的个性化服务,包括推广服务。
+ b) 您有权选择接受或拒绝接受cookies。您可以通过修改浏览器设置的方式拒绝接受cookies。但如果您选择拒绝接受cookies,则您可能无法登录或使用依赖于cookies的智慧计量业务 App 网络服务或功能。
+ c) 通过智慧计量业务 App 所设cookies所取得的有关信息,将适用本政策。
+ a) 智慧计量业务 App 帐号均有安全保护功能,请妥善保管您的用户名及密码信息。智慧计量业务 App 将通过对用户密码进行加密等安全措施确保您的信息不丢失,不被滥用和变造。尽管有前述安全措施,但同时也请您注意在信息网络上不存在“完善的安全措施”。
+ b) 在使用智慧计量业务 App 网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,尤其是智慧计量业务 App 用户名及密码发生泄露,请您立即联络智慧计量业务 App 客服,以便智慧计量业务 App 采取相应措施。
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 0932e98..5fdac9d 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -53,6 +53,14 @@
- @dimen/sp_16
+
+