| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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,"","")) |
| | |
| | | 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 = 1, 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){ |
| | | _popupState.value = PopupMessage(isVisible = true,title,message) |
| | | } |