From 442e37c2ae14b2fab73afd4f3ef928cc47f1af30 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Fri, 26 Dec 2025 08:08:06 +0000
Subject: [PATCH] 输入框行数问题修复
---
libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt | 94 ++++++++++++++++++++++++++++-------------------
1 files changed, 56 insertions(+), 38 deletions(-)
diff --git a/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt b/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt
index f8a1e09..a9fa4f0 100644
--- a/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt
+++ b/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt
@@ -3,14 +3,16 @@
import android.content.Intent
import android.net.Uri
import android.os.Build
-import android.provider.MediaStore
import android.util.Log
+import androidx.compose.ui.text.input.KeyboardType
import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModel
import com.google.gson.Gson
import com.runt.open.mvi.base.BaseActivity
import com.runt.open.mvi.base.LayoutView
+import com.runt.open.mvi.data.InputMessageState
import com.runt.open.mvi.data.LoadingState
+import com.runt.open.mvi.data.Message
import com.runt.open.mvi.data.MessageState
import com.runt.open.mvi.data.PopupMessage
import com.runt.open.mvi.retrofit.AndroidScheduler
@@ -27,7 +29,6 @@
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import java.io.File
-import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStream
@@ -47,9 +48,9 @@
val isLoading = _isLoading.asStateFlow()
val messageSetDismiss = {
- _messageState.value = _messageState.value.copy(isVisible = false);
+ _messageState.value = MessageState(isVisible = false)
}
- private val _messageState = MutableStateFlow(MessageState(isVisible = false, setDismiss = { }))
+ private val _messageState = MutableStateFlow(Message(isVisible = false, setDismiss = { }))
val messageState = _messageState.asStateFlow()
private val _popupState = MutableStateFlow(PopupMessage(isVisible = false,"",""))
@@ -58,6 +59,26 @@
open fun onCreate(activity : BaseActivity<LayoutView<BaseViewModel> , BaseViewModel>) {
mActivity = activity
TAG = javaClass.simpleName;
+ }
+
+ open fun onPause(){
+
+ }
+
+ open fun onResume(){
+
+ }
+
+ open fun onStart(){
+
+ }
+
+ open fun onStop(){
+
+ }
+
+ open fun onDestroy(){
+
}
fun getActivity(): BaseActivity<LayoutView<BaseViewModel> , BaseViewModel> {
@@ -71,20 +92,44 @@
fun hideLoading() {
_isLoading.value = _isLoading.value.copy(isVisible = false);
}
-
- fun showDialog(
- title : String = "" , message : String = "" , confirmText : String = "确定" , cancelText : String = "" ,
+ fun showInputDialog(
+ title : String = "" , message : String = "" , hint : String = "",regex : String = "",
+ confirmText:String = "确定", cancelText:String = "取消",
+ maxLines:Int = 0, minLength:Int = 0, maxLength:Int = 0,
+ inputType : KeyboardType = KeyboardType.Text ,
touchOutside : Boolean = true , //空白和系统返回 是否关闭
showClose : Boolean = false , //显示关闭图标(默认不显示)
- confirmDissmiss : Boolean = true , //点击确定是否关闭
- cancelDissmiss : Boolean = true , //点击取消是否关闭
+ confirmDismiss : Boolean = true , //点击确定是否关闭
+ cancelDismiss : Boolean = true , //点击取消是否关闭
+ onDismissRequest : () -> Unit = {} ,
+ onCancelRequest : () -> Unit = {} ,
+ onConfirmRequest : (String) -> Unit = {} ,
+ ){
+ _messageState.value = InputMessageState(title = title, message = message, hint = hint, regex = regex,
+ maxLines = maxLines, minLength = minLength, maxLength = maxLength, inputType = inputType,
+ touchOutside = touchOutside, showClose = showClose, confirmText = confirmText,
+ cancelText = cancelText, confirmDismiss = confirmDismiss, cancelDismiss = cancelDismiss, onCancelRequest = onCancelRequest, onDismissRequest = onDismissRequest,
+ onConfirmRequest = onConfirmRequest, setDismiss = messageSetDismiss);
+ }
+
+ fun showDialog(
+ title : String = "" , message : String = "" ,
+ confirmText : String = "确定" , cancelText : String = "" ,
+ touchOutside : Boolean = true , //空白和系统返回 是否关闭
+ showClose : Boolean = false , //显示关闭图标(默认不显示)
+ confirmDismiss : Boolean = true , //点击确定是否关闭
+ cancelDismiss : Boolean = true , //点击取消是否关闭
onDismissRequest : () -> Unit = {} ,
onCancelRequest : () -> Unit = {} ,
onConfirmRequest : () -> Unit = {} ,
){
- _messageState.value = MessageState(title = title, message = message, touchOutside = touchOutside, showClose = showClose, confirmText = confirmText,
- cancelText = cancelText, confirmDissmiss = confirmDissmiss, cancelDissmiss = cancelDissmiss, onCancelRequest = onCancelRequest, onDismissRequest = onDismissRequest,
+ _messageState.value = MessageState(title = title, message = message, touchOutside = touchOutside, showClose = showClose, confirmText = confirmText,
+ cancelText = cancelText, confirmDismiss = confirmDismiss, cancelDismiss = cancelDismiss, onCancelRequest = onCancelRequest, onDismissRequest = onDismissRequest,
onConfirmRequest = onConfirmRequest, setDismiss = messageSetDismiss);
+ }
+
+ fun dismissDialog(){
+ messageSetDismiss.invoke();
}
fun showPopupWindow(title : String,message : String){
@@ -260,32 +305,5 @@
val json = if (obj is String) obj else Gson().toJson(obj)
val requestBody = json.toString().toRequestBody(mediaType)
return requestBody;
- }
-
- fun getFilePathFromUri(uri:Uri):String?{
- var filePath = "";
- var filePathColumn = arrayOf(MediaStore.Video.Media.DATA)
- var cursor = mActivity!!.contentResolver.query(uri!!,filePathColumn,null,null,null)
- cursor?.let {
- it.moveToFirst()
- var index = it.getColumnIndex(filePathColumn[0])
- if(index > -1 && index < it.columnCount){
- filePath = it.getString(index)
- }
- it.close();
- }
- var file = File(filePath);
- Log.i(TAG,"文件是否存在=${file.exists()} file=${filePath} ")
- if(file.exists()){
- try {
- var inputStream = FileInputStream(file)
- inputStream.close();
- return filePath;
- }catch (e:Exception){
- return null;
- }
- }else{
- return null;
- }
}
}
\ No newline at end of file
--
Gitblit v1.9.1