Skip to content

Commit 03bbf06

Browse files
MahdiMahdi
Mahdi
authored and
Mahdi
committed
Return uri's with files
1 parent d0d068a commit 03bbf06

File tree

5 files changed

+15
-37
lines changed

5 files changed

+15
-37
lines changed

FilePicker/src/main/java/com/mahdiasd/filepicker/FilePickerFragment.kt

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import android.content.Intent
66
import android.content.pm.PackageManager
77
import android.content.res.Configuration
88
import android.database.Cursor
9-
import android.graphics.Bitmap
109
import android.net.Uri
1110
import android.os.Build
1211
import android.os.Bundle
@@ -33,7 +32,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
3332
import com.mahdiasd.filepicker.databinding.FilePickerFragmentBinding
3433
import kotlinx.coroutines.FlowPreview
3534
import java.io.File
36-
import java.io.FileOutputStream
3735

3836

3937
class FilePickerFragment : BottomSheetDialogFragment() {
@@ -51,6 +49,7 @@ class FilePickerFragment : BottomSheetDialogFragment() {
5149
private lateinit var config: FilePicker
5250
private var storageIsOpen = false
5351
private var cameraImagePath = ""
52+
5453
companion object {
5554
fun newInstance() = FilePickerFragment()
5655
}
@@ -69,6 +68,7 @@ class FilePickerFragment : BottomSheetDialogFragment() {
6968
else
7069
initSectionList()
7170

71+
7272
return binding.root
7373
}
7474

@@ -147,7 +147,7 @@ class FilePickerFragment : BottomSheetDialogFragment() {
147147
storageIsOpen = true
148148
val intent = Intent()
149149
.setType("*/*")
150-
.setAction(Intent.ACTION_OPEN_DOCUMENT)
150+
.setAction(Intent.ACTION_GET_CONTENT)
151151
.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, config.maxSelection > 1)
152152
storageLauncher.launch(intent)
153153

@@ -219,21 +219,6 @@ class FilePickerFragment : BottomSheetDialogFragment() {
219219
}
220220
}
221221

222-
private fun saveBitmapToStorage(bitmap: Bitmap?): File? {
223-
if (bitmap == null) return null
224-
val imagesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).path + File.separator + System.currentTimeMillis() + ".png"
225-
val file = File(imagesDir)
226-
return try {
227-
val fos = FileOutputStream(file)
228-
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos)
229-
fos.close()
230-
if (file.exists()) file
231-
else null
232-
} catch (e: Exception) {
233-
null
234-
}
235-
}
236-
237222

238223
@OptIn(FlowPreview::class)
239224
private var storageLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
@@ -506,7 +491,11 @@ class FilePickerFragment : BottomSheetDialogFragment() {
506491
}
507492

508493
fun btn(view: View?) {
509-
config.listener?.selectedFiles(selectedFiles)
494+
val uris: MutableList<Uri> = ArrayList()
495+
selectedFiles.forEach {
496+
getUriFromFile(it.file)?.let { it1 -> uris.add(it1) }
497+
}
498+
config.listener?.selectedFiles(selectedFiles, uris)
510499
selectedFiles.clear()
511500
dismiss()
512501
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.mahdiasd.filepicker
22

3+
import android.net.Uri
4+
35

46
interface FilePickerListener {
5-
fun selectedFiles(list: List<FileModel>?)
7+
fun selectedFiles(files: List<FileModel>?, uris: List<Uri>?)
68
}

app/src/main/java/com/mahdiasd/sample/MainActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mahdiasd.sample
22

33
import android.graphics.Color
4+
import android.net.Uri
45
import android.os.Bundle
56
import android.view.View
67
import android.widget.Toast
@@ -78,7 +79,8 @@ class MainActivity : AppCompatActivity() {
7879
.setDeActiveColor(Color.parseColor(deActiveColor))
7980
.setActiveColor(Color.parseColor(activeColor))
8081
.setListener(object : FilePickerListener {
81-
override fun selectedFiles(list: List<FileModel>?) {
82+
override fun selectedFiles(files: List<FileModel>?, uris: List<Uri>?) {
83+
val a = uris
8284
}
8385
})
8486
.show()

app/src/main/res/values-night/themes.xml

Lines changed: 0 additions & 16 deletions
This file was deleted.

app/src/main/res/values/themes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<item name="colorOnSecondary">@color/black</item>
1212
<!-- Status bar color. -->
1313
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
14+
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
1415
<!-- Customize your theme here. -->
1516
</style>
1617

0 commit comments

Comments
 (0)