@@ -24,7 +24,7 @@ class EasyPhoto(private val isCrop: Boolean) {
24
24
/* *
25
25
* 设置图片选择结果回调
26
26
*/
27
- private var uriCallback : ((outputUri : Uri ? ) -> Unit )? = null
27
+ private var callback : ((file : File ? ) -> Unit )? = null
28
28
29
29
/* *
30
30
* 拍照或剪切后图片的存放位置(参考file_provider_paths.xml中的路径)
@@ -45,8 +45,8 @@ class EasyPhoto(private val isCrop: Boolean) {
45
45
46
46
private val mainHandler by lazy { return @lazy Handler (Looper .getMainLooper()) }
47
47
48
- fun setCallback (callback : ((outputUri: Uri ? ) -> Unit )): EasyPhoto {
49
- this .uriCallback = callback
48
+ fun setCallback (callback : ((file: File ? ) -> Unit )): EasyPhoto {
49
+ this .callback = callback
50
50
return this
51
51
}
52
52
@@ -93,6 +93,7 @@ class EasyPhoto(private val isCrop: Boolean) {
93
93
94
94
val sourceUri = data.data
95
95
val projection = arrayOf(MediaStore .Images .Media .DATA )
96
+ @Suppress(" DEPRECATION" )
96
97
val cursor = activity.managedQuery(sourceUri, projection, null , null , null )
97
98
98
99
val columnIndex = cursor.getColumnIndexOrThrow(MediaStore .Images .Media .DATA )
@@ -103,7 +104,7 @@ class EasyPhoto(private val isCrop: Boolean) {
103
104
if (isCrop) {// 裁剪
104
105
zoomPhoto(inputFile, mImgPath? : File (generateImagePath(activity)), activity)
105
106
} else {// 不裁剪
106
- uriCallback ?.invoke(Uri .fromFile( inputFile) )
107
+ callback ?.invoke(inputFile)
107
108
}
108
109
}
109
110
@@ -145,8 +146,7 @@ class EasyPhoto(private val isCrop: Boolean) {
145
146
if (isCrop) {
146
147
zoomPhoto(takePhotoPath, mImgPath? : File (generateImagePath(activity)), activity)
147
148
} else {
148
- val outputUri = Uri .fromFile(takePhotoPath)
149
- uriCallback?.invoke(outputUri)
149
+ callback?.invoke(takePhotoPath)
150
150
}
151
151
}
152
152
}
@@ -184,9 +184,7 @@ class EasyPhoto(private val isCrop: Boolean) {
184
184
PhotoFragment .findOrCreate(activity).start(intent, PhotoFragment .REQ_ZOOM_PHOTO ) { requestCode: Int , data: Intent ? ->
185
185
if (requestCode == PhotoFragment .REQ_ZOOM_PHOTO ) {
186
186
data ? : return @start
187
-
188
- val outputUri = Uri .fromFile(outputFile)
189
- uriCallback?.invoke(outputUri)
187
+ callback?.invoke(outputFile)
190
188
}
191
189
}
192
190
}
@@ -217,7 +215,6 @@ class EasyPhoto(private val isCrop: Boolean) {
217
215
/* *
218
216
* 安卓7.0裁剪根据文件路径获取uri
219
217
*/
220
-
221
218
private fun getImageContentUri (context : Context , imageFile : File ? ): Uri ? {
222
219
val filePath = imageFile?.absolutePath
223
220
val cursor = context.contentResolver.query(
@@ -226,7 +223,7 @@ class EasyPhoto(private val isCrop: Boolean) {
226
223
MediaStore .Images .Media .DATA + " =? " ,
227
224
arrayOf(filePath), null )
228
225
229
- cursor.use { cursor ->
226
+ cursor.use { _ ->
230
227
return if (cursor != null && cursor.moveToFirst()) {
231
228
val id = cursor.getInt(cursor
232
229
.getColumnIndex(MediaStore .MediaColumns ._ID ))
@@ -248,57 +245,6 @@ class EasyPhoto(private val isCrop: Boolean) {
248
245
}
249
246
}
250
247
251
-
252
- companion object {
253
- fun uriToFile (uri : Uri ? , context : Context ): File ? {
254
- uri ? : return null
255
- var path: String? = null
256
- if (" file" == uri.scheme) {
257
- path = uri.encodedPath
258
- if (path != null ) {
259
- path = Uri .decode(path)
260
- val cr = context.contentResolver
261
- val buff = StringBuffer ()
262
- buff.append(" (" ).append(MediaStore .Images .ImageColumns .DATA ).append(" =" ).append(" '$path '" ).append(" )" )
263
- val cur = cr.query(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , arrayOf(MediaStore .Images .ImageColumns ._ID , MediaStore .Images .ImageColumns .DATA ), buff.toString(), null , null )
264
- var index = 0
265
- var dataIdx = 0
266
- cur!! .moveToFirst()
267
- while (! cur.isAfterLast) {
268
- index = cur.getColumnIndex(MediaStore .Images .ImageColumns ._ID )
269
- index = cur.getInt(index)
270
- dataIdx = cur.getColumnIndex(MediaStore .Images .ImageColumns .DATA )
271
- path = cur.getString(dataIdx)
272
- cur.moveToNext()
273
- }
274
- cur.close()
275
- if (index == 0 ) {
276
- } else {
277
- val u = Uri .parse(" content://media/external/images/media/$index " )
278
- println (" temp uri is :$u " )
279
- }
280
- }
281
- if (path != null ) {
282
- return File (path)
283
- }
284
- } else if (" content" == uri.scheme) {
285
- // 4.2.2以后
286
- val proj = arrayOf(MediaStore .Images .Media .DATA )
287
- val cursor = context.contentResolver.query(uri, proj, null , null , null )
288
- if (cursor!! .moveToFirst()) {
289
- val columnIndex = cursor.getColumnIndexOrThrow(MediaStore .Images .Media .DATA )
290
- path = cursor.getString(columnIndex)
291
- }
292
- cursor.close()
293
-
294
- return File (path!! )
295
- } else {
296
- // Log.i(TAG, "Uri Scheme:" + uri.getScheme());
297
- }
298
- return null
299
- }
300
- }
301
-
302
248
/* *
303
249
* 用于获取图片的Fragment
304
250
*/
0 commit comments