| libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt | ●●●●● patch | view | raw | blame | history | |
| libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt | ●●●●● patch | view | raw | blame | history | |
| libmvi/src/main/java/com/runt/open/mvi/utils/FileUtils.kt | ●●●●● patch | view | raw | blame | history |
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) 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; } } } libmvi/src/main/java/com/runt/open/mvi/utils/FileUtils.kt
New file @@ -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; } } } }