Browse Source

1.修改登录页面布局和登录接口。

2.修改登录校验接口。
3.添加第三方App登录后关联信息接口。
4.添加登录信息切换广播接收器。
5.修改应用拉起的时机。
2025_1_7x505f
wangwanlei 1 month ago
parent
commit
4d934fd28a

+ 8
- 0
app/src/main/AndroidManifest.xml View File

130
                 <action android:name="com.xhly.manageapp.loginout" />
130
                 <action android:name="com.xhly.manageapp.loginout" />
131
             </intent-filter>
131
             </intent-filter>
132
         </receiver>
132
         </receiver>
133
+        <receiver
134
+            android:name="com.xhly.manageapp.broadcastreceiver.XhlyLoginEditReceiver"
135
+            android:enabled="true"
136
+            android:exported="true">
137
+            <intent-filter>
138
+                <action android:name="com.xhly.manageapp.loginedit" />
139
+            </intent-filter>
140
+        </receiver>
133
         <receiver
141
         <receiver
134
             android:name="com.xhly.manageapp.broadcastreceiver.XhlyUpdeteStrategyReceiver"
142
             android:name="com.xhly.manageapp.broadcastreceiver.XhlyUpdeteStrategyReceiver"
135
             android:enabled="true"
143
             android:enabled="true"

+ 2
- 2
app/src/main/java/com/xhly/manageapp/bean/login/LoginBean.kt View File

2
 
2
 
3
 //用于登录
3
 //用于登录
4
 class LoginBean {
4
 class LoginBean {
5
-    var loginname = ""
6
-    var loginpwd = ""
5
+    /*var loginname = ""
6
+    var loginpwd = ""*/
7
     var sn = ""
7
     var sn = ""
8
     //设备名
8
     //设备名
9
     var device: String? = null
9
     var device: String? = null

+ 51
- 0
app/src/main/java/com/xhly/manageapp/bean/login/LoginStudentBean.kt View File

1
+package com.xhly.manageapp.bean.login
2
+
3
+/**
4
+ * userid	number
5
+ * 非必须
6
+ * 用户id
7
+ * mock: 1
8
+ *
9
+ * regionid	number
10
+ * 必须
11
+ * 区域id
12
+ * mock: 2
13
+ *
14
+ * classname	string
15
+ * 必须
16
+ * 班级名称
17
+ * mock: 班级1
18
+ *
19
+ * schoolname	string
20
+ * 必须
21
+ * 学校名称
22
+ * mock: 学校1
23
+ *
24
+ * username	string
25
+ * 必须
26
+ * 姓名
27
+ * mock: xxx
28
+ *
29
+ * userphone	string
30
+ * 必须
31
+ * studentno	string
32
+ * 必须
33
+ * cardid	string
34
+ * 必须
35
+ * usersex	number
36
+ * 必须
37
+ * 性别0保密1男2女
38
+ * mock: 1
39
+ */
40
+  //用于传递学生登录信息
41
+class LoginStudentBean {
42
+    var userid: Long = 0
43
+    var regionid: Long = 0
44
+    var classname: String? = null
45
+    var schoolname: String? = null
46
+    var username: String? = null
47
+    var userphone: String? = null
48
+    var studentno: String? = null
49
+    var cardid: String? = null
50
+    var usersex: Int = 0
51
+}

+ 39
- 0
app/src/main/java/com/xhly/manageapp/bean/user/McUserBean.kt View File

1
+package com.xhly.manageapp.bean.user
2
+
3
+//传递给管控的登录信息
4
+/**
5
+ * classname	string
6
+ * 必须
7
+ * 班级名称
8
+ * mock: 班级1
9
+ *
10
+ * schoolname	string
11
+ * 必须
12
+ * 学校名称
13
+ * mock: 学校1
14
+ *
15
+ * username	string
16
+ * 必须
17
+ * 姓名
18
+ * mock: xxx
19
+ *
20
+ * userphone	string
21
+ * 必须
22
+ * studentno	string
23
+ * 必须
24
+ * cardid	string
25
+ * 必须
26
+ * usersex	number
27
+ * 必须
28
+ * 性别0保密1男2女
29
+ * mock: 1
30
+ */
31
+class McUserBean {
32
+    var classname: String? = null
33
+    var schoolname: String? = null
34
+    var username: String? = null
35
+    var userphone: String? = null
36
+    var studentno: String? = null
37
+    var cardid: String? = null
38
+    var usersex: Int = 0
39
+}

+ 22
- 0
app/src/main/java/com/xhly/manageapp/broadcastreceiver/XhlyLoginEditReceiver.kt View File

1
+package com.xhly.manageapp.broadcastreceiver
2
+
3
+import android.content.BroadcastReceiver
4
+import android.content.Context
5
+import android.content.Intent
6
+import android.os.Bundle
7
+import android.util.Log
8
+import com.xhly.corelib.Const
9
+import com.xhly.corelib.eventbus.UIEvent
10
+
11
+class XhlyLoginEditReceiver : BroadcastReceiver() {
12
+    override fun onReceive(context: Context, intent: Intent) {
13
+        /*UIEvent(Const.ACCOUNTLOGINOUT).post()*/
14
+        //用来处理第三方登录信息
15
+        val stringExtra = intent.getStringExtra("loginEdit")
16
+        val bundle=Bundle()
17
+        if (stringExtra!=null){
18
+            bundle.putString("loginEdit",stringExtra)
19
+        }
20
+        UIEvent(Const.THIRDLOGINSUCCESS).setBundle(bundle).post()
21
+    }
22
+}

+ 2
- 1
app/src/main/java/com/xhly/manageapp/broadcastreceiver/XhlyLoginOutReceiver.kt View File

3
 import android.content.BroadcastReceiver
3
 import android.content.BroadcastReceiver
4
 import android.content.Context
4
 import android.content.Context
5
 import android.content.Intent
5
 import android.content.Intent
6
+import android.os.Bundle
6
 import android.util.Log
7
 import android.util.Log
7
 import com.xhly.corelib.Const
8
 import com.xhly.corelib.Const
8
 import com.xhly.corelib.eventbus.UIEvent
9
 import com.xhly.corelib.eventbus.UIEvent
9
 
10
 
10
 class XhlyLoginOutReceiver : BroadcastReceiver() {
11
 class XhlyLoginOutReceiver : BroadcastReceiver() {
11
     override fun onReceive(context: Context, intent: Intent) {
12
     override fun onReceive(context: Context, intent: Intent) {
12
-        UIEvent(Const.ACCOUNTLOGINOUT).post()
13
+        UIEvent(Const.LOGINOUTTOMAINACTIVITY).post()
13
     }
14
     }
14
 }
15
 }

+ 15
- 2
app/src/main/java/com/xhly/manageapp/network/UriAdress.kt View File

67
      */
67
      */
68
     const val ULOGIN_LOGIN = "/ulogin/login"
68
     const val ULOGIN_LOGIN = "/ulogin/login"
69
 
69
 
70
+    /**
71
+     * 登录校验接口
72
+     */
73
+    const val ULOGIN_CHECK_LOGIN = "/ulogin/check_login"
70
 
74
 
75
+    /**
76
+     * sn登录接口
77
+     */
78
+    const val ULOGIN_LOGIN_SN = "/ulogin/login_sn"
71
 
79
 
80
+    /**
81
+     * SN登录校验接口
82
+     */
83
+    const val ULOGIN_CHECK_LOGIN_SN = "/ulogin/check_rsn"
72
 
84
 
73
     /**
85
     /**
74
-     * 登录校验接口
86
+     * 更新登录用户信息
75
      */
87
      */
76
-    const val ULOGIN_CHECK_LOGIN = "/ulogin/check_login"
88
+    const val ULOGIN_EDIT = "/ulogin/edit"
89
+
77
 
90
 
78
     /**
91
     /**
79
      * 退出登录接口
92
      * 退出登录接口

+ 4
- 11
app/src/main/java/com/xhly/manageapp/ui/login/activity/LoginActivity.kt View File

232
     }
232
     }
233
 
233
 
234
     private fun login() {
234
     private fun login() {
235
-        val account = mBinding.accountEt.text.toString()
236
-        val code = mBinding.codeEt.text.toString()
235
+        val regioncodeStr = mBinding.accountEt.text.toString()
237
         LogShow("sn=="+ ManageApplication.getDeviceInfo())
236
         LogShow("sn=="+ ManageApplication.getDeviceInfo())
238
-        if (account.isNullOrBlank()) {
239
-            Toast(getString(R.string.accountnoempty))
240
-            return
241
-        }
242
-        if (code.isNullOrBlank()) {
243
-            Toast(getString(R.string.codenoempty))
237
+        if (regioncodeStr.isNullOrBlank()) {
238
+            Toast("区域码不能为空")
244
             return
239
             return
245
         }
240
         }
246
         val loginBean= LoginBean()
241
         val loginBean= LoginBean()
247
-        loginBean.loginname=account
248
-        loginBean.loginpwd=code
242
+        loginBean.regionCode=regioncodeStr
249
         loginBean.device= Build.BRAND
243
         loginBean.device= Build.BRAND
250
         loginBean.deviceModel=Build.MODEL
244
         loginBean.deviceModel=Build.MODEL
251
         loginBean.romVersion=Build.DISPLAY
245
         loginBean.romVersion=Build.DISPLAY
252
         ManageApplication.getDeviceInfo(1)?.let{mac->
246
         ManageApplication.getDeviceInfo(1)?.let{mac->
253
             loginBean.deviceMac=mac
247
             loginBean.deviceMac=mac
254
         }
248
         }
255
-        loginBean.regionCode=regioncode
256
         loginBean.clientVersion=SystemUtil.getAppVersionName(this,packageName)
249
         loginBean.clientVersion=SystemUtil.getAppVersionName(this,packageName)
257
         ManageApplication.getDeviceInfo()?.let {
250
         ManageApplication.getDeviceInfo()?.let {
258
             loginBean.sn=it
251
             loginBean.sn=it

+ 11
- 2
app/src/main/java/com/xhly/manageapp/ui/login/netservice/LoginService.kt View File

3
 import com.xhly.corelib.network.bean.ResponseData
3
 import com.xhly.corelib.network.bean.ResponseData
4
 import com.xhly.manageapp.bean.login.CheckLoginBean
4
 import com.xhly.manageapp.bean.login.CheckLoginBean
5
 import com.xhly.manageapp.bean.login.LoginBean
5
 import com.xhly.manageapp.bean.login.LoginBean
6
+import com.xhly.manageapp.bean.login.LoginStudentBean
6
 import com.xhly.manageapp.bean.scheme.AutoAppBean
7
 import com.xhly.manageapp.bean.scheme.AutoAppBean
7
 import com.xhly.manageapp.bean.user.UserBean
8
 import com.xhly.manageapp.bean.user.UserBean
8
 import com.xhly.manageapp.network.UriAdress
9
 import com.xhly.manageapp.network.UriAdress
14
     @GET("/status/info")
15
     @GET("/status/info")
15
     suspend fun getTest(): ResponseData<String>
16
     suspend fun getTest(): ResponseData<String>
16
 
17
 
17
-    @POST(UriAdress.ULOGIN_LOGIN)
18
+    @POST(UriAdress.ULOGIN_LOGIN_SN)
18
     suspend fun postLogin(@Body loginBean: LoginBean): ResponseData<UserBean>
19
     suspend fun postLogin(@Body loginBean: LoginBean): ResponseData<UserBean>
19
     /*
20
     /*
20
      登录校验
21
      登录校验
21
      */
22
      */
22
-    @POST(UriAdress.ULOGIN_CHECK_LOGIN)
23
+    @POST(UriAdress.ULOGIN_CHECK_LOGIN_SN)
23
     suspend fun postLoginCheck(@Body map:HashMap<String,Any>): ResponseData<CheckLoginBean>
24
     suspend fun postLoginCheck(@Body map:HashMap<String,Any>): ResponseData<CheckLoginBean>
24
 
25
 
26
+
27
+    /*
28
+     更新用户信息
29
+ */
30
+    @POST(UriAdress.ULOGIN_EDIT)
31
+    suspend fun postLoginEdit(@Body loginStudentBean: LoginStudentBean): ResponseData<UserBean>
32
+
25
     /**
33
     /**
26
      * 退出登录接口参数 userid	number 用户id
34
      * 退出登录接口参数 userid	number 用户id
27
      * loginpwd	string 密码
35
      * loginpwd	string 密码
29
     @POST(UriAdress.ULOGIN_LOGIN_OUT)
37
     @POST(UriAdress.ULOGIN_LOGIN_OUT)
30
     suspend fun postLoginOut(@Body map:HashMap<String,Any>): ResponseData<Any>
38
     suspend fun postLoginOut(@Body map:HashMap<String,Any>): ResponseData<Any>
31
 
39
 
40
+
32
     /**
41
     /**
33
      * 解除当前锁屏
42
      * 解除当前锁屏
34
      */
43
      */

+ 104
- 10
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt View File

19
 import android.graphics.drawable.Drawable
19
 import android.graphics.drawable.Drawable
20
 import android.net.ConnectivityManager
20
 import android.net.ConnectivityManager
21
 import android.os.Build
21
 import android.os.Build
22
+import android.os.Bundle
22
 import android.provider.Settings
23
 import android.provider.Settings
24
+import android.util.Log
23
 import android.util.TypedValue
25
 import android.util.TypedValue
24
 import android.view.KeyEvent
26
 import android.view.KeyEvent
25
 import android.view.MotionEvent
27
 import android.view.MotionEvent
74
 import com.xhly.manageapp.bean.log.LogPushBean
76
 import com.xhly.manageapp.bean.log.LogPushBean
75
 import com.xhly.manageapp.bean.log.LogdOperateBean
77
 import com.xhly.manageapp.bean.log.LogdOperateBean
76
 import com.xhly.manageapp.bean.log.UpdateBean
78
 import com.xhly.manageapp.bean.log.UpdateBean
79
+import com.xhly.manageapp.bean.login.LoginStudentBean
77
 import com.xhly.manageapp.bean.scheme.AutoAppBean
80
 import com.xhly.manageapp.bean.scheme.AutoAppBean
78
 import com.xhly.manageapp.bean.school.SchoolDeviceSetBean
81
 import com.xhly.manageapp.bean.school.SchoolDeviceSetBean
79
 import com.xhly.manageapp.bean.strategy.StrategyBean
82
 import com.xhly.manageapp.bean.strategy.StrategyBean
83
+import com.xhly.manageapp.bean.user.McUserBean
80
 import com.xhly.manageapp.bean.user.UserBean
84
 import com.xhly.manageapp.bean.user.UserBean
81
 import com.xhly.manageapp.broadcastreceiver.AppInstallReceiver
85
 import com.xhly.manageapp.broadcastreceiver.AppInstallReceiver
82
 import com.xhly.manageapp.broadcastreceiver.BLEStateReceiver
86
 import com.xhly.manageapp.broadcastreceiver.BLEStateReceiver
84
 import com.xhly.manageapp.broadcastreceiver.SDReceiver
88
 import com.xhly.manageapp.broadcastreceiver.SDReceiver
85
 import com.xhly.manageapp.broadcastreceiver.ScreenReceiver
89
 import com.xhly.manageapp.broadcastreceiver.ScreenReceiver
86
 import com.xhly.manageapp.broadcastreceiver.USBReceiver
90
 import com.xhly.manageapp.broadcastreceiver.USBReceiver
91
+import com.xhly.manageapp.broadcastreceiver.XhlyLoginEditReceiver
87
 import com.xhly.manageapp.broadcastreceiver.XhlyLoginOutReceiver
92
 import com.xhly.manageapp.broadcastreceiver.XhlyLoginOutReceiver
88
 import com.xhly.manageapp.broadcastreceiver.XhlyUpdeteStrategyReceiver
93
 import com.xhly.manageapp.broadcastreceiver.XhlyUpdeteStrategyReceiver
94
+import com.xhly.manageapp.contentprovider.ZSpProvider
89
 import com.xhly.manageapp.service.ManageAccessibilityService
95
 import com.xhly.manageapp.service.ManageAccessibilityService
90
 import com.xhly.manageapp.service.websocket.AppSocket
96
 import com.xhly.manageapp.service.websocket.AppSocket
91
 import com.xhly.manageapp.ui.ManageActivity
97
 import com.xhly.manageapp.ui.ManageActivity
120
     private var mUSBReceiver: USBReceiver? = null
126
     private var mUSBReceiver: USBReceiver? = null
121
     private var mLoginOutReceiver: XhlyLoginOutReceiver? = null
127
     private var mLoginOutReceiver: XhlyLoginOutReceiver? = null
122
     private var mXhlyUpdeteStrategyReceiver: XhlyUpdeteStrategyReceiver? = null
128
     private var mXhlyUpdeteStrategyReceiver: XhlyUpdeteStrategyReceiver? = null
129
+    private var mLoginEditReceiver: XhlyLoginEditReceiver? = null
123
     private var dataList: ArrayList<AppInfo> = arrayListOf()
130
     private var dataList: ArrayList<AppInfo> = arrayListOf()
124
     private var userBean: UserBean? = null
131
     private var userBean: UserBean? = null
125
     private var timer: Timer? = null
132
     private var timer: Timer? = null
186
     private var quitFlag=false
193
     private var quitFlag=false
187
     //处理连续点击电源键的操作
194
     //处理连续点击电源键的操作
188
     private var lastClickPowerTime=0L
195
     private var lastClickPowerTime=0L
196
+    //标记更新了user
197
+    private var updateUser=false
189
 
198
 
190
     override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
199
     override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
191
 
200
 
237
                 registerUSBReceiver()
246
                 registerUSBReceiver()
238
                 registerSDReceiver()
247
                 registerSDReceiver()
239
                 registerLoginOutReceiver()
248
                 registerLoginOutReceiver()
249
+                registerLoginEditReceiver()
240
                 registerXhlyUpdeteStrategyReceiver()
250
                 registerXhlyUpdeteStrategyReceiver()
241
                 adapter?.userBean=it
251
                 adapter?.userBean=it
242
             }
252
             }
674
             }
684
             }
675
         }
685
         }
676
 
686
 
687
+        viewModel.mainLoginData.observe(this){userBean->
688
+            if (!updateUser){
689
+                return@observe
690
+            }
691
+            updateUser=false
692
+            if (userBean.xhlyLoginSucess){
693
+                this.userBean=userBean
694
+                val data = LogdOperateBean()
695
+                ManageApplication.getDeviceInfo()?.let {
696
+                    data.sn = it
697
+                }
698
+                data.doEvent = EventLog.ACCOUNTLOGINEVENT
699
+                data.comm=EventLog.ACCOUNTLOGINEVENTSTRING
700
+                viewModel.eventLog(data)
701
+                Const.USERID=userBean.userid
702
+                Const.USERNAME=userBean.username.toString()
703
+                Const.SCHOOLID=userBean.schoolid
704
+                Const.CLASSID=userBean.classid
705
+                spUtils.saveJson(Const.USERINFO,userBean)
706
+                val parseClassToJson = GsonUtils.parseClassToJson(userBean)
707
+                ZSpProvider.save(this,Const.USERINFO,parseClassToJson)
708
+                AppSocket.onDestroy()
709
+                AppSocket.startSocket(ManageApplication.instance)
710
+            }else{
711
+                userBean.xhlyLoginMessage?.let {
712
+                    Toast(it)
713
+                }
714
+            }
715
+        }
716
+
677
         lifecycleScope.launch {
717
         lifecycleScope.launch {
678
             isCreatFlag = true
718
             isCreatFlag = true
679
             isDestroyFlag=false
719
             isDestroyFlag=false
954
         super.onResume()
994
         super.onResume()
955
         userBean?.let {
995
         userBean?.let {
956
             StrategyUtils.initMainResume()
996
             StrategyUtils.initMainResume()
997
+            val name = StringBuffer()
998
+            if (!it.schoolName.isNullOrBlank()) {
999
+                name.append(it.schoolName)
1000
+            }
1001
+            if (!it.classname.isNullOrBlank()) {
1002
+                name.append(it.classname)
1003
+            }
1004
+            mBinding.userschoolTv.text = name.toString()
1005
+            mBinding.usernameTv.text = it.username
957
         }
1006
         }
958
         isResumeFlag = true
1007
         isResumeFlag = true
959
         Const.startAppStoreFlag = false
1008
         Const.startAppStoreFlag = false
1039
             Const.USERID = it.userid
1088
             Const.USERID = it.userid
1040
             Const.USERNAME = it.username.toString()
1089
             Const.USERNAME = it.username.toString()
1041
             viewModel.postDevicesetDetail(it.schoolid)
1090
             viewModel.postDevicesetDetail(it.schoolid)
1042
-            val name = StringBuffer()
1043
-            if (!it.schoolName.isNullOrBlank()) {
1044
-                name.append(it.schoolName)
1045
-            }
1046
-            if (!it.classname.isNullOrBlank()) {
1047
-                name.append(it.classname)
1048
-            }
1049
-            mBinding.userschoolTv.text = name.toString()
1050
         }
1091
         }
1051
         netStrategyDataFlag=true
1092
         netStrategyDataFlag=true
1052
         viewModel.postWallpaperPad()
1093
         viewModel.postWallpaperPad()
1326
         LogShow("锁定了吧" + mainLockFlag + "|||" + autoAppFlag)
1367
         LogShow("锁定了吧" + mainLockFlag + "|||" + autoAppFlag)
1327
         //自动退出时优先退出而不是拉起app
1368
         //自动退出时优先退出而不是拉起app
1328
         if (autoAppFlag&&!loginoutFlag) {
1369
         if (autoAppFlag&&!loginoutFlag) {
1329
-            //因为对于学生端app退出登录的处理,所以类型为5(这时认为执行的时机是学生主动退出了登录,所以不拉起)时不执行拉起
1330
-            if (type!=5&&type!=4){
1370
+            /*//因为对于学生端app退出登录的处理,所以类型为5(这时认为执行的时机是学生主动退出了登录,所以不拉起)时不执行拉起
1371
+            if (type!=5){
1331
                 userBean?.let {
1372
                 userBean?.let {
1332
                     netAutoAppFlag=true
1373
                     netAutoAppFlag=true
1333
                     viewModel.postAutoAppDetail(it.regionid)
1374
                     viewModel.postAutoAppDetail(it.regionid)
1334
                 }
1375
                 }
1376
+            }*/
1377
+            //没有单点登录所以不再判断
1378
+            userBean?.let {
1379
+                netAutoAppFlag=true
1380
+                viewModel.postAutoAppDetail(it.regionid)
1335
             }
1381
             }
1336
         }
1382
         }
1337
     }
1383
     }
1673
             Const.STARTLOCATION -> {
1719
             Const.STARTLOCATION -> {
1674
                 getLocation()
1720
                 getLocation()
1675
             }
1721
             }
1722
+            Const.THIRDLOGINSUCCESS->{
1723
+                 loginEdit(uiEvent.bundle)
1724
+            }
1725
+            Const.LOGINOUTTOMAINACTIVITY->{
1726
+                loginoutFlag=true
1727
+            }
1728
+        }
1729
+    }
1730
+
1731
+    private fun loginEdit(bundle: Bundle?) {
1732
+        bundle?.let {
1733
+            val string = it.getString("loginEdit")
1734
+            if (string!=null){
1735
+                try {
1736
+                    val mcUserBean = GsonUtils.parseJsonWithGson(string, McUserBean::class.java)
1737
+                    val loginStudentBean=LoginStudentBean()
1738
+                    userBean?.let {
1739
+                        loginStudentBean.userid=it.userid
1740
+                        loginStudentBean.regionid=it.regionid
1741
+                    }
1742
+                    loginStudentBean.username=mcUserBean?.username
1743
+                    loginStudentBean.studentno=mcUserBean?.studentno
1744
+                    loginStudentBean.cardid=mcUserBean?.cardid
1745
+                    loginStudentBean.classname=mcUserBean?.classname
1746
+                    loginStudentBean.schoolname=mcUserBean?.schoolname
1747
+                    loginStudentBean.userphone=mcUserBean?.userphone
1748
+                    if (mcUserBean?.usersex==1){
1749
+                        loginStudentBean.usersex=1
1750
+                    }else{
1751
+                        loginStudentBean.usersex=0
1752
+                    }
1753
+                    updateUser=true
1754
+                    viewModel.editLogin(loginStudentBean)
1755
+                }catch (e:Exception){
1756
+                    Log.d("修改登录信息失败",e.toString())
1757
+                }
1758
+            }
1676
         }
1759
         }
1677
     }
1760
     }
1678
 
1761
 
1762
+
1679
     //发送违规事件
1763
     //发送违规事件
1680
     private fun postEventLog(data: LogdOperateBean) {
1764
     private fun postEventLog(data: LogdOperateBean) {
1681
         try {
1765
         try {
2044
         registerReceiver(mLoginOutReceiver, filter)
2128
         registerReceiver(mLoginOutReceiver, filter)
2045
     }
2129
     }
2046
 
2130
 
2131
+    private fun registerLoginEditReceiver() {
2132
+        val filter = IntentFilter()
2133
+        mLoginEditReceiver = XhlyLoginEditReceiver()
2134
+        filter.addAction("com.xhly.manageapp.loginedit")
2135
+        registerReceiver(mLoginEditReceiver, filter)
2136
+    }
2137
+
2047
     private fun registerXhlyUpdeteStrategyReceiver() {
2138
     private fun registerXhlyUpdeteStrategyReceiver() {
2048
         val filter = IntentFilter()
2139
         val filter = IntentFilter()
2049
         mXhlyUpdeteStrategyReceiver = XhlyUpdeteStrategyReceiver()
2140
         mXhlyUpdeteStrategyReceiver = XhlyUpdeteStrategyReceiver()
2204
         mLoginOutReceiver?.let {
2295
         mLoginOutReceiver?.let {
2205
             unregisterReceiver(it)
2296
             unregisterReceiver(it)
2206
         }
2297
         }
2298
+        mLoginEditReceiver?.let {
2299
+            unregisterReceiver(it)
2300
+        }
2207
         LogShow("MainActivity被销毁")
2301
         LogShow("MainActivity被销毁")
2208
     }
2302
     }
2209
 
2303
 

+ 41
- 0
app/src/main/java/com/xhly/manageapp/viewmodel/BaseViewModel.kt View File

13
 import com.xhly.manageapp.bean.log.LogPushBean
13
 import com.xhly.manageapp.bean.log.LogPushBean
14
 import com.xhly.manageapp.bean.log.LogPushResultBean
14
 import com.xhly.manageapp.bean.log.LogPushResultBean
15
 import com.xhly.manageapp.bean.log.LogdOperateBean
15
 import com.xhly.manageapp.bean.log.LogdOperateBean
16
+import com.xhly.manageapp.bean.login.LoginStudentBean
16
 import com.xhly.manageapp.bean.scheme.AutoAppBean
17
 import com.xhly.manageapp.bean.scheme.AutoAppBean
18
+import com.xhly.manageapp.bean.user.UserBean
17
 import com.xhly.manageapp.network.log.LogService
19
 import com.xhly.manageapp.network.log.LogService
18
 import com.xhly.manageapp.ui.login.netservice.LoginService
20
 import com.xhly.manageapp.ui.login.netservice.LoginService
19
 import kotlinx.coroutines.flow.Flow
21
 import kotlinx.coroutines.flow.Flow
50
     private val autoAppResult = MutableStateFlow<AutoAppBean?>(null)
52
     private val autoAppResult = MutableStateFlow<AutoAppBean?>(null)
51
     val autoAppData: Flow<AutoAppBean?> = autoAppResult.asStateFlow()
53
     val autoAppData: Flow<AutoAppBean?> = autoAppResult.asStateFlow()
52
 
54
 
55
+
56
+    private val mainLoginResult=MutableLiveData<UserBean>()
57
+    val mainLoginData:LiveData<UserBean> =mainLoginResult
58
+    //标记修改登录信息失败,失败3次则不再继续
59
+    var editNum=0
60
+
61
+    //编辑登录信息
62
+    fun editLogin(loginStudentBean: LoginStudentBean){
63
+        launchUI {
64
+            try {
65
+                val postLogin = loginService.postLoginEdit(loginStudentBean)
66
+                if (postLogin.code==0){
67
+                    if (postLogin.obj!=null){
68
+                        mainLoginResult.value=postLogin.obj
69
+                    }
70
+                }else{
71
+                    editNum++
72
+                    if (editNum==3){
73
+                        val userBean=UserBean()
74
+                        userBean.xhlyLoginSucess=false
75
+                        if (postLogin.msg!=null){
76
+                            userBean.xhlyLoginMessage=postLogin.msg
77
+                        }
78
+                        mainLoginResult.value=userBean
79
+                    }else{
80
+                        editLogin(loginStudentBean)
81
+                    }
82
+                }
83
+            }catch (e:Exception){
84
+                val userBean=UserBean()
85
+                userBean.xhlyLoginSucess=false
86
+                mainLoginResult.value=userBean
87
+                LogShow(e.toString())
88
+            }
89
+        }
90
+
91
+    }
92
+
93
+
53
     /**
94
     /**
54
      * 解除当前锁屏
95
      * 解除当前锁屏
55
      */
96
      */

+ 3
- 2
app/src/main/java/com/xhly/manageapp/workmanager/TimingWorker.kt View File

80
             //校验登录
80
             //校验登录
81
             userBean?.let {
81
             userBean?.let {
82
                 val map = HashMap<String, Any>()
82
                 val map = HashMap<String, Any>()
83
-                map["userid"] = userBean.userid
84
-                map["loginpwd"] = userBean.loginpwd
83
+                map["regionCode"] = userBean.regionCode.toString()
84
+                map["sn"] = ManageApplication.getDeviceInfo()?:""
85
                 try {
85
                 try {
86
                     val postLoginCheck = loginService.postLoginCheck(map)
86
                     val postLoginCheck = loginService.postLoginCheck(map)
87
+                    LogShow("sn校验结果"+postLoginCheck.code+"|||"+postLoginCheck.obj.needLogin)
87
                     if (postLoginCheck.code == 0 && postLoginCheck.obj.needLogin) {
88
                     if (postLoginCheck.code == 0 && postLoginCheck.obj.needLogin) {
88
                         UIEvent(Const.ACCOUNTLOGINOUT).post()
89
                         UIEvent(Const.ACCOUNTLOGINOUT).post()
89
                     }
90
                     }

BIN
app/src/main/res/drawable/icon_code_sn.png View File


+ 4
- 41
app/src/main/res/layout/activity_login.xml View File

32
             android:id="@+id/login_sv"
32
             android:id="@+id/login_sv"
33
             android:layout_width="match_parent"
33
             android:layout_width="match_parent"
34
             android:layout_height="match_parent"
34
             android:layout_height="match_parent"
35
-            android:layout_marginTop="72dp">
35
+            android:layout_marginTop="147dp">
36
 
36
 
37
             <androidx.constraintlayout.widget.ConstraintLayout
37
             <androidx.constraintlayout.widget.ConstraintLayout
38
                 android:id="@+id/login_clayout"
38
                 android:id="@+id/login_clayout"
74
                     android:layout_width="22dp"
74
                     android:layout_width="22dp"
75
                     android:layout_height="22dp"
75
                     android:layout_height="22dp"
76
                     android:layout_marginRight="15dp"
76
                     android:layout_marginRight="15dp"
77
-                    android:src="@drawable/icon_zhanghao"
77
+                    android:src="@drawable/icon_code_sn"
78
                     app:layout_constraintBottom_toBottomOf="@id/account_et"
78
                     app:layout_constraintBottom_toBottomOf="@id/account_et"
79
                     app:layout_constraintRight_toLeftOf="@id/account_et"
79
                     app:layout_constraintRight_toLeftOf="@id/account_et"
80
                     app:layout_constraintTop_toTopOf="@id/account_et" />
80
                     app:layout_constraintTop_toTopOf="@id/account_et" />
86
                     android:layout_marginTop="82dp"
86
                     android:layout_marginTop="82dp"
87
                     android:background="@null"
87
                     android:background="@null"
88
                     android:gravity="center_vertical"
88
                     android:gravity="center_vertical"
89
-                    android:hint="@string/inputaccount"
89
+                    android:hint="@string/inputregioncode"
90
                     android:maxLength="20"
90
                     android:maxLength="20"
91
                     android:singleLine="true"
91
                     android:singleLine="true"
92
                     android:textColor="@color/black"
92
                     android:textColor="@color/black"
105
                     app:layout_constraintRight_toRightOf="parent"
105
                     app:layout_constraintRight_toRightOf="parent"
106
                     app:layout_constraintTop_toBottomOf="@id/account_et" />
106
                     app:layout_constraintTop_toBottomOf="@id/account_et" />
107
 
107
 
108
-                <ImageView
109
-                    android:layout_width="22dp"
110
-                    android:layout_height="22dp"
111
-                    android:layout_marginRight="15dp"
112
-                    android:src="@drawable/icon_mima"
113
-                    app:layout_constraintBottom_toBottomOf="@id/code_et"
114
-                    app:layout_constraintRight_toLeftOf="@id/code_et"
115
-                    app:layout_constraintTop_toTopOf="@id/code_et" />
116
-
117
-                <EditText
118
-                    android:id="@+id/code_et"
119
-                    android:layout_width="300dp"
120
-                    android:layout_height="wrap_content"
121
-                    android:layout_marginTop="165dp"
122
-                    android:background="@null"
123
-                    android:digits="@string/psw_style"
124
-                    android:gravity="center_vertical"
125
-                    android:hint="@string/inputcode"
126
-                    android:inputType="textPassword"
127
-                    android:maxLength="20"
128
-                    android:singleLine="true"
129
-                    android:textColor="@color/black"
130
-                    android:textColorHint="#FFB8C2D9"
131
-                    android:textSize="21sp"
132
-                    app:layout_constraintLeft_toLeftOf="parent"
133
-                    app:layout_constraintRight_toRightOf="parent"
134
-                    app:layout_constraintTop_toTopOf="parent" />
135
-
136
-                <ImageView
137
-                    android:layout_width="387dp"
138
-                    android:layout_height="1dp"
139
-                    android:layout_marginTop="12dp"
140
-                    android:src="#D0DBF4"
141
-                    app:layout_constraintLeft_toLeftOf="parent"
142
-                    app:layout_constraintRight_toRightOf="parent"
143
-                    app:layout_constraintTop_toBottomOf="@id/code_et" />
144
-
145
                 <FrameLayout
108
                 <FrameLayout
146
                     android:id="@+id/login_btn"
109
                     android:id="@+id/login_btn"
147
                     android:layout_width="387dp"
110
                     android:layout_width="387dp"
148
                     android:layout_height="49dp"
111
                     android:layout_height="49dp"
149
-                    android:layout_marginTop="279dp"
112
+                    android:layout_marginTop="167dp"
150
                     app:layout_constraintLeft_toLeftOf="parent"
113
                     app:layout_constraintLeft_toLeftOf="parent"
151
                     app:layout_constraintRight_toRightOf="parent"
114
                     app:layout_constraintRight_toRightOf="parent"
152
                     app:layout_constraintTop_toTopOf="parent">
115
                     app:layout_constraintTop_toTopOf="parent">

+ 8
- 0
corelib/src/main/java/com/xhly/corelib/Const.kt View File

141
      */
141
      */
142
     const val ACCOUNTLOGINOUT = "ACCOUNTLOGINOUT"
142
     const val ACCOUNTLOGINOUT = "ACCOUNTLOGINOUT"
143
 
143
 
144
+    /**
145
+     * 标记第三方主动退到管控页面
146
+     */
147
+    const val LOGINOUTTOMAINACTIVITY = "LOGINOUTTOMAINACTIVITY"
148
+
144
     /**
149
     /**
145
      * 标记直接退出,不调用接口
150
      * 标记直接退出,不调用接口
146
      */
151
      */
262
     //存储学校设置的设备设置
267
     //存储学校设置的设备设置
263
     const val SCHOOLSETDEVICE = "SCHOOLSETDEVICE"
268
     const val SCHOOLSETDEVICE = "SCHOOLSETDEVICE"
264
 
269
 
270
+    //标记第三方登录成功
271
+    const val THIRDLOGINSUCCESS = "THIRDLOGINSUCCESS"
272
+
265
     //记录设备策略名称
273
     //记录设备策略名称
266
     const val DEVICETYPE1 = "摄像头"
274
     const val DEVICETYPE1 = "摄像头"
267
     const val DEVICETYPE2 = "蓝牙"
275
     const val DEVICETYPE2 = "蓝牙"

Loading…
Cancel
Save