Browse Source

1.修改密码后不再退出登录,而是直接提示

2.退出登录接口添加参数,
3.进入应用默认先从本地读取壁纸
20241218TB223FC(测试jar包)
wangwanlei 10 months ago
parent
commit
aac1d14881

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

14
 import androidx.activity.addCallback
14
 import androidx.activity.addCallback
15
 import androidx.work.PeriodicWorkRequest
15
 import androidx.work.PeriodicWorkRequest
16
 import androidx.work.WorkManager
16
 import androidx.work.WorkManager
17
+import com.kongzue.dialogx.DialogX
17
 import com.kongzue.dialogx.dialogs.CustomDialog
18
 import com.kongzue.dialogx.dialogs.CustomDialog
19
+import com.kongzue.dialogx.dialogs.WaitDialog
18
 import com.kongzue.dialogx.interfaces.OnBindView
20
 import com.kongzue.dialogx.interfaces.OnBindView
19
 import com.tbruyelle.rxpermissions2.RxPermissions
21
 import com.tbruyelle.rxpermissions2.RxPermissions
20
 import com.xhkjedu.manageapp.R
22
 import com.xhkjedu.manageapp.R
48
     private var regioncode = ""
50
     private var regioncode = ""
49
     //如果次数大于10则可以打开设置页面
51
     //如果次数大于10则可以打开设置页面
50
     private var showSettingNum=0
52
     private var showSettingNum=0
53
+
51
     override fun getBinding() = ActivityLoginBinding.inflate(layoutInflater)
54
     override fun getBinding() = ActivityLoginBinding.inflate(layoutInflater)
52
 
55
 
53
     override fun initData() {
56
     override fun initData() {
54
        viewModel.loginData.observe(this){
57
        viewModel.loginData.observe(this){
58
+           WaitDialog.dismiss()
55
            if (it.xhlyLoginSucess){
59
            if (it.xhlyLoginSucess){
56
                loginSucess(it)
60
                loginSucess(it)
57
            }else{
61
            }else{
206
         ManageApplication.getDeviceInfo()?.let {
210
         ManageApplication.getDeviceInfo()?.let {
207
             loginBean.sn=it
211
             loginBean.sn=it
208
         }
212
         }
213
+        WaitDialog.setMessage("正在登陆").show()
209
         viewModel.login(loginBean)
214
         viewModel.login(loginBean)
210
     }
215
     }
211
 
216
 

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

10
 import android.content.pm.PackageInfo
10
 import android.content.pm.PackageInfo
11
 import android.content.pm.PackageManager
11
 import android.content.pm.PackageManager
12
 import android.graphics.Color
12
 import android.graphics.Color
13
+import android.graphics.drawable.BitmapDrawable
13
 import android.graphics.drawable.Drawable
14
 import android.graphics.drawable.Drawable
14
 import android.os.Build
15
 import android.os.Build
15
 import android.provider.Settings
16
 import android.provider.Settings
20
 import android.widget.TextView
21
 import android.widget.TextView
21
 import android.widget.Toast
22
 import android.widget.Toast
22
 import androidx.activity.addCallback
23
 import androidx.activity.addCallback
24
+import androidx.lifecycle.lifecycleScope
23
 import androidx.lifecycle.viewModelScope
25
 import androidx.lifecycle.viewModelScope
24
 import androidx.recyclerview.widget.GridLayoutManager
26
 import androidx.recyclerview.widget.GridLayoutManager
25
 import androidx.work.PeriodicWorkRequest
27
 import androidx.work.PeriodicWorkRequest
69
 import com.xhly.manageapp.utils.PadInfoUtils
71
 import com.xhly.manageapp.utils.PadInfoUtils
70
 import com.xhly.manageapp.utils.StrategyUtils
72
 import com.xhly.manageapp.utils.StrategyUtils
71
 import com.xhly.manageapp.workmanager.TimingWorker
73
 import com.xhly.manageapp.workmanager.TimingWorker
74
+import kotlinx.coroutines.Dispatchers
72
 import kotlinx.coroutines.launch
75
 import kotlinx.coroutines.launch
76
+import kotlinx.coroutines.withContext
73
 import java.io.File
77
 import java.io.File
74
 import java.util.Calendar
78
 import java.util.Calendar
75
 import java.util.Timer
79
 import java.util.Timer
99
         } else {
103
         } else {
100
             userBean = json as UserBean
104
             userBean = json as UserBean
101
         }
105
         }
102
-        try {
103
-            val file = File(filesDir, "wallpaper.png")
104
-            if (file.exists()){
105
-                Glide.with(this).load(file).placeholder(R.drawable.main_bg)
106
-                    .error(R.drawable.main_bg)
107
-                    .into(object : CustomViewTarget<LinearLayout, Drawable>(mBinding.root) {
108
-                        override fun onLoadFailed(errorDrawable: Drawable?) {
109
-                            errorDrawable?.let { drawble ->
110
-                                mBinding.root.background = drawble
111
-                            }
112
-                        }
113
-
114
-                        override fun onResourceCleared(placeholder: Drawable?) {
115
-                            placeholder?.let { drawble ->
116
-                                mBinding.root.background = drawble
106
+        lifecycleScope.launch {
107
+            withContext(Dispatchers.IO){
108
+                val file = File(filesDir, "wallpaper.png")
109
+                if (file.exists()){
110
+                    try {
111
+                        val bitmap = ImageUtils().getBitmapFromFile(file.toString())
112
+                        withContext(Dispatchers.Main){
113
+                            try {
114
+                                mBinding.root.background=BitmapDrawable(resources,bitmap)
115
+                            }catch (e:Exception){
116
+                                LogShow("图片设置失败")
117
                             }
117
                             }
118
                         }
118
                         }
119
-
120
-                        override fun onResourceReady(
121
-                            resource: Drawable,
122
-                            transition: Transition<in Drawable>?
123
-                        ) {
124
-                            mBinding.root.background = resource
125
-                        }
126
-                    })
119
+                    }catch (e:Exception){
120
+                        LogShow("图片不存在")
121
+                    }
122
+                }
127
             }
123
             }
128
-        }catch (e:Exception){
129
-
130
         }
124
         }
131
         adapter = AppAdapter(this, dataList)
125
         adapter = AppAdapter(this, dataList)
132
         mBinding.rv.layoutManager = GridLayoutManager(this, 6, GridLayoutManager.VERTICAL, false)
126
         mBinding.rv.layoutManager = GridLayoutManager(this, 6, GridLayoutManager.VERTICAL, false)
216
             updateStrategyFlag=true
210
             updateStrategyFlag=true
217
             if (updateTimeFlag){
211
             if (updateTimeFlag){
218
                 showSucessToast()
212
                 showSucessToast()
219
-                updateStrategyFlag=false
220
             }
213
             }
221
         }
214
         }
222
         viewModel.appStrategyData.observe(this) {
215
         viewModel.appStrategyData.observe(this) {
225
             updateTimeFlag=true
218
             updateTimeFlag=true
226
             if (updateStrategyFlag){
219
             if (updateStrategyFlag){
227
                 showSucessToast()
220
                 showSucessToast()
228
-                updateTimeFlag=false
229
             }
221
             }
230
         }
222
         }
231
         viewModel.padInfoData.observe(this) {
223
         viewModel.padInfoData.observe(this) {
275
                         ) {
267
                         ) {
276
                             mBinding.root.background = resource
268
                             mBinding.root.background = resource
277
                             val imageUtil=ImageUtils()
269
                             val imageUtil=ImageUtils()
278
-                            imageUtil.saveBitmapToFile(this@MainActivity,imageUtil.drawableToBitmap(resource), File(filesDir,"wallpaper.png"))
270
+                            imageUtil.saveBitmapToFile(imageUtil.drawableToBitmap(resource), File(filesDir,"wallpaper.png"))
279
                         }
271
                         }
280
                     })
272
                     })
281
             }
273
             }
342
 
334
 
343
     private fun showSucessToast() {
335
     private fun showSucessToast() {
344
         Toaster.show(R.string.updatetips)
336
         Toaster.show(R.string.updatetips)
337
+        updateStrategyFlag=false
338
+        updateTimeFlag=false
345
     }
339
     }
346
 
340
 
347
 
341
 

+ 9
- 1
app/src/main/java/com/xhly/manageapp/ui/main/viewmodel/MainViewModel.kt View File

5
 import com.xhly.corelib.Const
5
 import com.xhly.corelib.Const
6
 import com.xhly.corelib.eventbus.UIEvent
6
 import com.xhly.corelib.eventbus.UIEvent
7
 import com.xhly.corelib.network.RetrofitService
7
 import com.xhly.corelib.network.RetrofitService
8
+import com.xhly.manageapp.ManageApplication
8
 import com.xhly.manageapp.bean.app.AppModel
9
 import com.xhly.manageapp.bean.app.AppModel
9
 import com.xhly.manageapp.bean.app.ListAppBean
10
 import com.xhly.manageapp.bean.app.ListAppBean
10
 import com.xhly.manageapp.bean.log.UpdateBean
11
 import com.xhly.manageapp.bean.log.UpdateBean
148
             val map = HashMap<String, Any>()
149
             val map = HashMap<String, Any>()
149
             map["userid"] = userid
150
             map["userid"] = userid
150
             map["loginpwd"] = loginpwd
151
             map["loginpwd"] = loginpwd
152
+            ManageApplication.getDeviceInfo()?.let {sn->
153
+                map["sn"]=sn
154
+            }
151
             val postLoginOut = loginService.postLoginOut(map)
155
             val postLoginOut = loginService.postLoginOut(map)
152
             if (postLoginOut.code == 0) {
156
             if (postLoginOut.code == 0) {
153
                 loginOut.value = true
157
                 loginOut.value = true
220
             map["oldpwd"] = oldpwd
224
             map["oldpwd"] = oldpwd
221
             val postEditPwd = loginService.postEditPwd(map)
225
             val postEditPwd = loginService.postEditPwd(map)
222
             if (postEditPwd.code==0){
226
             if (postEditPwd.code==0){
223
-              UIEvent(Const.ACCOUNTLOGINOUT).post()
227
+                netMessage.value ="修改成功"
228
+            //修改完密码不退出登录
229
+            //UIEvent(Const.ACCOUNTLOGINOUT).post()
230
+            }else{
231
+                netMessage.value ="修改失败"
224
             }
232
             }
225
         }
233
         }
226
     }
234
     }

+ 23
- 3
corelib/src/main/java/com/xhly/corelib/utils/ImageUtils.kt View File

1
 package com.xhly.corelib.utils
1
 package com.xhly.corelib.utils
2
 
2
 
3
-import android.content.Context
4
 import android.graphics.Bitmap
3
 import android.graphics.Bitmap
4
+import android.graphics.BitmapFactory
5
 import android.graphics.Canvas
5
 import android.graphics.Canvas
6
 import android.graphics.drawable.BitmapDrawable
6
 import android.graphics.drawable.BitmapDrawable
7
 import android.graphics.drawable.Drawable
7
 import android.graphics.drawable.Drawable
8
-import android.os.Environment
9
 import java.io.File
8
 import java.io.File
10
 import java.io.FileOutputStream
9
 import java.io.FileOutputStream
11
 import java.io.IOException
10
 import java.io.IOException
27
         return bitmap
26
         return bitmap
28
     }
27
     }
29
 
28
 
30
-    fun saveBitmapToFile(context: Context, bitmap: Bitmap, file: File): Boolean {
29
+    fun saveBitmapToFile(bitmap: Bitmap, file: File): Boolean {
31
         try {
30
         try {
32
             val stream = FileOutputStream(file)
31
             val stream = FileOutputStream(file)
33
             bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
32
             bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
39
             return false
38
             return false
40
         }
39
         }
41
     }
40
     }
41
+
42
+    /**
43
+     * 从文件获取 bitmap ,并根据给定的显示宽高对 bitmap 进行缩放
44
+     *
45
+     * @param filePath 文件路径
46
+     * @param height   需要显示的高度
47
+     * @param width    需要显示的宽度
48
+     * @return 缩放后的 bitmap,若获取失败,返回 null
49
+     */
50
+    fun getBitmapFromFile(filePath: String): Bitmap? {
51
+        val options = BitmapFactory.Options()
52
+        options.inJustDecodeBounds = true
53
+        BitmapFactory.decodeFile(filePath, options)
54
+        val srcWidth = options.outWidth.toFloat()
55
+        val srcHeight = options.outHeight.toFloat()
56
+        if (srcWidth == -1f || srcHeight == -1f) return null
57
+        var inSampleSize = 1
58
+        options.inJustDecodeBounds = false
59
+        options.inSampleSize = inSampleSize
60
+        return BitmapFactory.decodeFile(filePath, options)
61
+    }
42
 }
62
 }

Loading…
Cancel
Save