From 89e35a1933ba40513a96572b27291c0aa65c918c Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Sat, 11 Oct 2025 10:21:42 +0000
Subject: [PATCH] 框架优化
---
libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt | 47 ++++++---------
libmvi/src/main/java/com/runt/open/mvi/utils/FileUtils.kt | 48 ++++++++++++++++
libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt | 35 +++++++++++
3 files changed, 101 insertions(+), 29 deletions(-)
diff --git a/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt b/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
index 066c538..5e1dfb0 100644
--- a/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
+++ b/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
@@ -40,6 +40,7 @@
import com.runt.open.mvi.R
import com.runt.open.mvi.base.model.BaseViewModel
import com.runt.open.mvi.base.model.ViewModelFactory
+import com.runt.open.mvi.utils.FileUtils
import com.runt.open.mvi.utils.PreferencesUtils
import java.io.File
import java.lang.reflect.ParameterizedType
@@ -101,6 +102,36 @@
initViews() //初始化UI
mViewModel!!.onCreate(this as BaseActivity<LayoutView<BaseViewModel> , BaseViewModel>)
loadData() //加载数据
+ }
+
+ override fun onPause() {
+ super.onPause()
+ mViewModel!!.onPause()
+ Log.i(TAG , "onPause: ")
+ }
+
+ override fun onResume() {
+ super.onResume()
+ mViewModel!!.onResume()
+ Log.i(TAG , "onResume: ")
+ }
+
+ override fun onStart() {
+ super.onStart()
+ mViewModel!!.onStart()
+ Log.i(TAG , "onStart: ")
+ }
+
+ override fun onStop() {
+ super.onStop()
+ mViewModel!!.onStop()
+ Log.i(TAG , "onStop: ")
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ mViewModel!!.onDestroy()
+ Log.i(TAG , "onDestroy: ")
}
abstract fun init()
@@ -178,7 +209,7 @@
val cR : ContentResolver = getContentResolver()
val mime = MimeTypeMap.getSingleton()
- var filePath = mViewModel!!.getFilePathFromUri(fileUriList.get(0)!!);
+ var filePath = FileUtils.getFilePathFromUri(fileUriList.get(0)!!);
//文件不存在或读写权限受限
if(filePath == null){
//android 11需要申请权限 //是否有所有问读写权限
@@ -194,7 +225,7 @@
}else{
var filePathes = ArrayList<String>()
for (i in 0 until fileUriList.size) {
- var filePath = mViewModel!!.getFilePathFromUri(fileUriList.get(i)!!);
+ var filePath = FileUtils.getFilePathFromUri(fileUriList.get(i)!!);
filePathes.add(filePath!!)
}
requestFileResult?.onChanged(filePathes)
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..7c8909b 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
@@ -60,6 +60,26 @@
TAG = javaClass.simpleName;
}
+ open fun onPause(){
+
+ }
+
+ open fun onResume(){
+
+ }
+
+ open fun onStart(){
+
+ }
+
+ open fun onStop(){
+
+ }
+
+ open fun onDestroy(){
+
+ }
+
fun getActivity(): BaseActivity<LayoutView<BaseViewModel> , BaseViewModel> {
return mActivity!!;
}
@@ -260,32 +280,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
diff --git a/libmvi/src/main/java/com/runt/open/mvi/utils/FileUtils.kt b/libmvi/src/main/java/com/runt/open/mvi/utils/FileUtils.kt
new file mode 100644
index 0000000..6922298
--- /dev/null
+++ b/libmvi/src/main/java/com/runt/open/mvi/utils/FileUtils.kt
@@ -0,0 +1,48 @@
+package com.runt.open.mvi.utils
+
+import android.net.Uri
+import android.provider.MediaStore
+import android.util.Log
+import com.runt.open.mvi.OpenApplication
+import java.io.File
+import java.io.FileInputStream
+
+/**
+ * @author Runt(qingingrunt2010@qq.com)
+ * @purpose
+ * @date 10/7/25
+ */
+class FileUtils {
+
+ companion object{
+ val TAG = "FileUtils";
+
+ fun getFilePathFromUri(uri: Uri):String?{
+ var filePath = "";
+ var filePathColumn = arrayOf(MediaStore.Video.Media.DATA)
+ var cursor = OpenApplication.getApplication()!!.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