소스 검색

1.注销登录之前先请求接口判断当前状态。

2.添加注销登录确认弹窗。
3.登录页面自动同步时间时取消提示语。
20241218TB223FC(测试jar包)
wangwanlei 11 달 전
부모
커밋
589e793459

+ 5
- 0
app/src/main/java/com/xhly/manageapp/bean/school/SchoolDeviceSetBean.kt 파일 보기

@@ -79,4 +79,9 @@ class SchoolDeviceSetBean {
79 79
      * 是否隐藏图库:1是0否
80 80
      */
81 81
     var gallery=0
82
+
83
+    /**
84
+     * 本地使用,获取是来自于退出登录还是来自于更新应用设置时的请求,等于1表示来自于退出登录
85
+     */
86
+    var fromNetWorkType=0
82 87
 }

+ 6
- 1
app/src/main/java/com/xhly/manageapp/ui/login/activity/LoginActivity.kt 파일 보기

@@ -55,6 +55,7 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
55 55
     private var showSettingNum=0
56 56
     private var waitDialog:WaitDialog?=null
57 57
     private var tipsDialog:CustomDialog?=null
58
+    private var syncTimeClickFlag=false
58 59
     override fun getBinding() = ActivityLoginBinding.inflate(layoutInflater)
59 60
 
60 61
     override fun initData() {
@@ -77,7 +78,10 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
77 78
         }
78 79
         viewModel.timeResultData.observe(this){
79 80
             ManageApplication.setSysTime(it)
80
-            Toast(getString(R.string.syncsucess))
81
+            if (syncTimeClickFlag){
82
+                Toast(getString(R.string.syncsucess))
83
+            }
84
+            syncTimeClickFlag=false
81 85
         }
82 86
         viewModel.controlResultData.observe(this){
83 87
             //为真则可以进入管理页面
@@ -141,6 +145,7 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
141 145
             startActivity(Intent(Settings.ACTION_WIFI_SETTINGS))
142 146
         }
143 147
         mBinding.synctimeLlayout.setOnClickListener {
148
+               syncTimeClickFlag=true
144 149
                viewModel.postSyncTime()
145 150
         }
146 151
         mBinding.logoIv.setOnClickListener {

+ 37
- 28
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt 파일 보기

@@ -22,6 +22,7 @@ import android.os.Build
22 22
 import android.provider.Settings
23 23
 import android.view.MotionEvent
24 24
 import android.view.View
25
+import android.view.View.OnClickListener
25 26
 import android.view.WindowManager
26 27
 import android.widget.Button
27 28
 import android.widget.EditText
@@ -419,6 +420,9 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
419 420
                     initSchoolSet(it)
420 421
                     mBinding.rv.visibility=View.VISIBLE
421 422
                     updateAppRv()
423
+                    if (it.fromNetWorkType==1){
424
+                        quitAccount(it)
425
+                    }
422 426
                 }
423 427
             }
424 428
         }
@@ -610,20 +614,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
610 614
             }
611 615
         }
612 616
         mBinding.loginoutLlayout.setOnClickListener {
613
-            val schoolDeviceSetBean = StrategyUtils.getSchoolDeviceSetBean(this@MainActivity)
614
-            //禁用注销则需要输入密码才能注销,不限制则直接注销登录
615
-            if (schoolDeviceSetBean != null && schoolDeviceSetBean.logout == 1) {
616
-                //禁用注销
617
-                showEditDialog()
618
-            } else {
619
-                try {
620
-                    val userBean = spUtils.getFromJson(
621
-                        Const.USERINFO, UserBean().javaClass
622
-                    ) as UserBean
623
-                    viewModel.loginOut(userBean.userid.toString(), "")
624
-                } catch (e: Exception) {
625
-
626
-                }
617
+            userBean?.let {
618
+                viewModel.getSchoolSetData(it.schoolid)
627 619
             }
628 620
         }
629 621
         mBinding.netsetLlayout.setOnClickListener {
@@ -665,6 +657,27 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
665 657
         }
666 658
     }
667 659
 
660
+    private fun quitAccount(schoolDeviceSetBean:SchoolDeviceSetBean?){
661
+       /* val schoolDeviceSetBean = StrategyUtils.getSchoolDeviceSetBean(this@MainActivity)*/
662
+        //禁用注销则需要输入密码才能注销,不限制则直接注销登录
663
+        if (schoolDeviceSetBean != null && schoolDeviceSetBean.logout == 1) {
664
+            //禁用注销
665
+            showEditDialog()
666
+        } else {
667
+            showTwoBtnDialog(getString(R.string.loginout),getString(R.string.loginouttips)
668
+            ) {
669
+                try {
670
+                    val userBean = spUtils.getFromJson(
671
+                        Const.USERINFO, UserBean().javaClass
672
+                    ) as UserBean
673
+                    viewModel.loginOut(userBean.userid.toString(), "")
674
+                } catch (e: Exception) {
675
+
676
+                }
677
+            }
678
+        }
679
+    }
680
+
668 681
     private fun showChangeCodeDialog() {
669 682
         CustomDialog.build()
670 683
             .setCustomView(object : OnBindView<CustomDialog>(R.layout.layout_changecode_dialog) {
@@ -1116,8 +1129,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1116 1129
 
1117 1130
             Const.CODE2001.toString() -> {
1118 1131
                 val message = uiEvent.message
1119
-                /*
1120
-                showNoticeDialog(message)*/
1121 1132
                 //检查权限
1122 1133
                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
1123 1134
                     if (!Settings.canDrawOverlays(this)) {
@@ -1645,25 +1656,23 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1645 1656
         }
1646 1657
     }
1647 1658
 
1648
-    private fun showNoticeDialog(msg: String) {
1659
+    private fun showTwoBtnDialog(title:String,content:String,onClickListener: OnClickListener) {
1649 1660
         CustomDialog.build()
1650
-            .setCustomView(object : OnBindView<CustomDialog>(R.layout.layout_notice_dialog) {
1661
+            .setCustomView(object : OnBindView<CustomDialog>(R.layout.layout_twobtn_dialog) {
1651 1662
                 override fun onBind(dialog: CustomDialog, v: View) {
1652
-                    val closeBtn = v.findViewById<Button>(R.id.dialog_close_btn)
1663
+                    val closeBtn = v.findViewById<TextView>(R.id.dialog_cancel_tv)
1664
+                    val enterBtn = v.findViewById<TextView>(R.id.dialog_enter_tv)
1653 1665
                     val titleTv = v.findViewById<TextView>(R.id.dialog_title_tv)
1654 1666
                     val contentTv = v.findViewById<TextView>(R.id.dialog_content_tv)
1655
-                    try {
1656
-                        val msgBean = GsonUtils.parseJsonWithGson(
1657
-                            msg, SocketMsgBean().javaClass
1658
-                        ) as SocketMsgBean
1659
-                        titleTv.text = msgBean.title
1660
-                        contentTv.text = msgBean.content
1661
-                    } catch (e: Exception) {
1662
-                        LogShow("解析失败" + e.toString())
1663
-                    }
1667
+                    titleTv.text=title
1668
+                    contentTv.text=content
1664 1669
                     closeBtn.setOnClickListener {
1665 1670
                         dialog.dismiss()
1666 1671
                     }
1672
+                    enterBtn.setOnClickListener {
1673
+                      dialog.dismiss()
1674
+                      onClickListener.onClick(it)
1675
+                    }
1667 1676
                 }
1668 1677
             }).setCancelable(false).setMaskColor(Color.parseColor("#66000000"))
1669 1678
             .setAlign(CustomDialog.ALIGN.CENTER).show()

+ 18
- 0
app/src/main/java/com/xhly/manageapp/ui/main/viewmodel/MainViewModel.kt 파일 보기

@@ -235,6 +235,24 @@ class MainViewModel : BaseViewModel() {
235 235
         }
236 236
     }
237 237
 
238
+    fun getSchoolSetData(schoolid: Long,fromeNetWorkType:Int=1){
239
+        launchUI {
240
+            val map = HashMap<String, Any>()
241
+            map["schoolid"] = schoolid
242
+            val result = strategyService.postDevicesetDetail(map)
243
+            if (result.code == 0) {
244
+                if (result.obj!=null){
245
+                    result.obj.fromNetWorkType=fromeNetWorkType
246
+                    schoolSet.value = result.obj
247
+                }else{
248
+                    netMessage.value ="请求获得数据为空"
249
+                }
250
+            } else {
251
+                netMessage.value = result.msg
252
+            }
253
+        }
254
+    }
255
+
238 256
     /**
239 257
      * 获得壁纸
240 258
      */

+ 71
- 0
app/src/main/res/layout/layout_twobtn_dialog.xml 파일 보기

@@ -0,0 +1,71 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+    xmlns:app="http://schemas.android.com/apk/res-auto"
4
+    android:layout_width="353dp"
5
+    android:layout_height="185dp"
6
+    android:background="@drawable/shape_whiteradiu_bg"
7
+    android:gravity="center_horizontal"
8
+    android:orientation="vertical">
9
+
10
+    <TextView
11
+        android:id="@+id/dialog_title_tv"
12
+        android:layout_width="wrap_content"
13
+        android:layout_height="wrap_content"
14
+        android:layout_marginTop="22dp"
15
+        android:text="@string/regioncode"
16
+        android:textColor="#253A70"
17
+        android:textSize="18sp" />
18
+
19
+    <TextView
20
+        android:id="@+id/dialog_content_tv"
21
+        android:layout_width="wrap_content"
22
+        android:layout_height="wrap_content"
23
+        android:layout_marginLeft="15dp"
24
+        android:layout_marginTop="22dp"
25
+        android:layout_marginRight="15dp"
26
+        android:layout_marginBottom="15dp"
27
+        android:text="@string/regioncode"
28
+        android:textColor="#253A70"
29
+        android:textSize="16sp" />
30
+
31
+    <LinearLayout
32
+        android:layout_width="match_parent"
33
+        android:layout_height="wrap_content"
34
+        android:gravity="center_horizontal"
35
+        android:orientation="horizontal">
36
+
37
+        <TextView
38
+            android:id="@+id/dialog_cancel_tv"
39
+            android:layout_width="147dp"
40
+            android:layout_height="40dp"
41
+            android:background="@drawable/shape_tv_noselect_bg"
42
+            android:gravity="center"
43
+            android:text="@string/cancel"
44
+            android:textColor="#339DFF"
45
+            android:textSize="17sp" />
46
+
47
+        <FrameLayout
48
+            android:layout_width="147dp"
49
+            android:layout_height="40dp"
50
+            android:layout_marginLeft="17dp">
51
+
52
+            <com.makeramen.roundedimageview.RoundedImageView
53
+                android:layout_width="147dp"
54
+                android:layout_height="40dp"
55
+                android:gravity="center"
56
+                android:scaleType="centerCrop"
57
+                android:src="@drawable/icon_login"
58
+
59
+                app:riv_corner_radius="10dp" />
60
+
61
+            <TextView
62
+                android:id="@+id/dialog_enter_tv"
63
+                android:layout_width="147dp"
64
+                android:layout_height="40dp"
65
+                android:gravity="center"
66
+                android:text="@string/enter"
67
+                android:textColor="@color/white"
68
+                android:textSize="17sp" />
69
+        </FrameLayout>
70
+    </LinearLayout>
71
+</LinearLayout>

+ 1
- 0
app/src/main/res/values/strings.xml 파일 보기

@@ -37,6 +37,7 @@
37 37
     <string name="speedend">加速完成</string>
38 38
     <string name="clearend">清理缓存完成</string>
39 39
     <string name="loginout">注销</string>
40
+    <string name="loginouttips">是否注销登录?</string>
40 41
     <string name="appstore">星火应用商店</string>
41 42
     <string name="netset">网络设置</string>
42 43
     <string name="synctime">同步时间</string>

Loading…
취소
저장