Skip to content

the-best-is-best/MediaPicker

Repository files navigation

Media Picker


License API Profile Maven Central

A TCompose Request Permissions library for both Jetpack Compose for android, to request permissions in a simple way

Download

Maven Central Media Picker is available on mavenCentral().

implementation("io.github.the-best-is-best:media-picker:1.0.2")

Note:

  • No permissions are requested by the library itself. You need to request the permissions before using the library.
  • You can use the [Compose Request Permissions] Maven Central

How to use

Select One Image Or Video Or Audio

  val imagePicker = TMediaPicker.PickSingleMedia().apply {
        Init(MimeType.Image.All, onMediaPicked = { uri  ->
            Log.d("MediaPicker", "Image URI: $uri")

            path = uri.path ?: ""
        })
    }

    ...
     ElevatedButton(onClick = {
          imagePicker.pickMedia()
     }) {
          Text("Pick Image")
     }
     ...

Select Multi Image Or Video Or Audio

  val imagePicker = TMediaPicker.PickMultiMedia().apply {
        Init(MimeType.Image.All, onMediaPicked = { uriList  ->
            Log.d("MediaPicker", "Image URI: $uriList")

            path = uriList.map { it.path ?: "" }
        })
    }

    ...
     ElevatedButton(onClick = {
          imagePicker.pickMedia()
     }) {
          Text("Pick Image")
     }
     ...

Vestion 1.0.2

can use simple ui for pick media

  • for pick single media
FilePickerUI(
    onMediaPicked = {
        Log.d("MediaPicker", "Image URI: $it")
        value = "Image Picked"
    },
    mimeType = MimeType.Image.All,
    shape = MaterialTheme.shapes.small,
    value = value,
    placeholder = {
        Text("Select Image")
    },
)
  • for pick multi media
  MultiFilePickerUI(
    onMediaPicked = {
        Log.d("MediaPicker", "Image URI: $it")
        value = "${it.count()} Image Picked"
    },
    mimeType = MimeType.Image.All,
    shape = MaterialTheme.shapes.small,
    value = value,
    placeholder = {
        Text("Select Image")
    },
)

MimeType is a sealed class that contains the following types:

  • Image
  • Video
  • Audio
  • Files
  • All
  • Custom

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages