Written in kotlin with Android architecture components, sher-gil
aims to be a reliable library resource for media picking.
- Multiple media selection (currently only images)
- Custom MIME types
- Handles runtime permissions
- Returns media selection as
List<Uri>
- Custom theme
Add the dependency to your project build.gradle
file
repositories {
mavenCentral()
}
dependencies {
implementation 'com.kinnerapriyap:sher-gil:$latest_version'
}
Sher-gil may be started from either an Activity or a Fragment.
Shergil.create(this)
.mimeTypes(MimeType.IMAGES)
.showDisallowedMimeTypes(false)
.numOfColumns(2)
.theme(R.style.Shergil)
.allowPreview(true)
.maxSelectable(Integer.MAX_VALUE)
.allowCamera(true)
.showDeviceCamera(false)
.showCameraFirst(false)
.orientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
.withRequestCode(REQUEST_SHERGIL)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_SHERGIL) {
val mediaUris: List<Uri> = Shergil.getMediaUris(data)
}
}
If you're on API level > R
, you can use registerForActivityResult(ActivityResultContract, ActivityResultCallback)
with the appropriate ActivityResultContract and handle the result in the callback.
Min SDK: sher-gil supports a minimum SDK of 21.
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
buildScript {
...
dependencies {
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0"
}
}
Ref: Java 8 support
If you have any feedback or a suggestion for a better implementation, please don't hesitate to open an issue or a pull request. For major changes, please open an issue first to discuss what you would like to change.
Amrita Sher-Gil, a pre-eminent Hungarian-Indian early modernist painter who became known as the 'Indian Frida Kahlo'.
The Matisse library