Преглед изворни кода

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

2.退出登录接口添加参数,
3.进入应用默认先从本地读取壁纸
20241218TB223FC(测试jar包)
wangwanlei пре 10 месеци
родитељ
комит
aac1d14881

+ 5
- 0
app/src/main/java/com/xhly/manageapp/ui/login/activity/LoginActivity.kt Прегледај датотеку

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

+ 22
- 28
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt Прегледај датотеку

@@ -10,6 +10,7 @@ import android.content.IntentFilter
10 10
 import android.content.pm.PackageInfo
11 11
 import android.content.pm.PackageManager
12 12
 import android.graphics.Color
13
+import android.graphics.drawable.BitmapDrawable
13 14
 import android.graphics.drawable.Drawable
14 15
 import android.os.Build
15 16
 import android.provider.Settings
@@ -20,6 +21,7 @@ import android.widget.LinearLayout
20 21
 import android.widget.TextView
21 22
 import android.widget.Toast
22 23
 import androidx.activity.addCallback
24
+import androidx.lifecycle.lifecycleScope
23 25
 import androidx.lifecycle.viewModelScope
24 26
 import androidx.recyclerview.widget.GridLayoutManager
25 27
 import androidx.work.PeriodicWorkRequest
@@ -69,7 +71,9 @@ import com.xhly.manageapp.utils.CustomAppUtils
69 71
 import com.xhly.manageapp.utils.PadInfoUtils
70 72
 import com.xhly.manageapp.utils.StrategyUtils
71 73
 import com.xhly.manageapp.workmanager.TimingWorker
74
+import kotlinx.coroutines.Dispatchers
72 75
 import kotlinx.coroutines.launch
76
+import kotlinx.coroutines.withContext
73 77
 import java.io.File
74 78
 import java.util.Calendar
75 79
 import java.util.Timer
@@ -99,34 +103,24 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
99 103
         } else {
100 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 125
         adapter = AppAdapter(this, dataList)
132 126
         mBinding.rv.layoutManager = GridLayoutManager(this, 6, GridLayoutManager.VERTICAL, false)
@@ -216,7 +210,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
216 210
             updateStrategyFlag=true
217 211
             if (updateTimeFlag){
218 212
                 showSucessToast()
219
-                updateStrategyFlag=false
220 213
             }
221 214
         }
222 215
         viewModel.appStrategyData.observe(this) {
@@ -225,7 +218,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
225 218
             updateTimeFlag=true
226 219
             if (updateStrategyFlag){
227 220
                 showSucessToast()
228
-                updateTimeFlag=false
229 221
             }
230 222
         }
231 223
         viewModel.padInfoData.observe(this) {
@@ -275,7 +267,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
275 267
                         ) {
276 268
                             mBinding.root.background = resource
277 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,6 +334,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
342 334
 
343 335
     private fun showSucessToast() {
344 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 Прегледај датотеку

@@ -5,6 +5,7 @@ import androidx.lifecycle.MutableLiveData
5 5
 import com.xhly.corelib.Const
6 6
 import com.xhly.corelib.eventbus.UIEvent
7 7
 import com.xhly.corelib.network.RetrofitService
8
+import com.xhly.manageapp.ManageApplication
8 9
 import com.xhly.manageapp.bean.app.AppModel
9 10
 import com.xhly.manageapp.bean.app.ListAppBean
10 11
 import com.xhly.manageapp.bean.log.UpdateBean
@@ -148,6 +149,9 @@ class MainViewModel : BaseViewModel() {
148 149
             val map = HashMap<String, Any>()
149 150
             map["userid"] = userid
150 151
             map["loginpwd"] = loginpwd
152
+            ManageApplication.getDeviceInfo()?.let {sn->
153
+                map["sn"]=sn
154
+            }
151 155
             val postLoginOut = loginService.postLoginOut(map)
152 156
             if (postLoginOut.code == 0) {
153 157
                 loginOut.value = true
@@ -220,7 +224,11 @@ class MainViewModel : BaseViewModel() {
220 224
             map["oldpwd"] = oldpwd
221 225
             val postEditPwd = loginService.postEditPwd(map)
222 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 Прегледај датотеку

@@ -1,11 +1,10 @@
1 1
 package com.xhly.corelib.utils
2 2
 
3
-import android.content.Context
4 3
 import android.graphics.Bitmap
4
+import android.graphics.BitmapFactory
5 5
 import android.graphics.Canvas
6 6
 import android.graphics.drawable.BitmapDrawable
7 7
 import android.graphics.drawable.Drawable
8
-import android.os.Environment
9 8
 import java.io.File
10 9
 import java.io.FileOutputStream
11 10
 import java.io.IOException
@@ -27,7 +26,7 @@ class ImageUtils {
27 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 30
         try {
32 31
             val stream = FileOutputStream(file)
33 32
             bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
@@ -39,4 +38,25 @@ class ImageUtils {
39 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…
Откажи
Сачувај