Releases: AkshayAshokCode/MediaKit-android
Releases · AkshayAshokCode/MediaKit-android
v0.2.0
[0.2.0] — 2026-05-28
imagecropper
CropperOptions— configurable per-launch: aspect ratios, crop shape, rotate/flip buttons, output format, max/min output sizeAspectRatio—Free,Square,Ratio(w,h)with presetsFourThree,SixteenNine,ThreeTwo,FiveFour; chip row shown automatically when multiple ratios providedCropShape—Rectangle(default) andCircle(circular mask, transparent-corner output)OutputFormat—JPEG(quality),PNG,WebP(quality)- Rotate 90° CW/CCW and flip horizontal/vertical transform buttons (opt-in via
showRotateButtons,showFlipButtons) - Aspect ratio locking enforced during corner-drag resize in
CropTouchHandler - Crop rect bounds constraint fixed: MOVE offsets the whole rect; corner resize clamps each edge independently
- Redesigned
CropperActivityUI: dark top bar (cancel / title / confirm), aspect ratio chip row, bottom transform toolbar - Immersive mode: navigation bar hidden with
BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE; status bar retained for camera cutout safety - Display cutout and rounded-corner safe area handled via
fitsSystemWindowsand mandatory gesture insets - System gesture exclusion rect covers full
CropperView— crop drag no longer triggers back gesture CropperView.onSizeChangedre-fits image reactively when insets reshape the container- Published to Maven Central:
io.github.akshayashokcode:imagecropper:0.2.0
imagepicker
- Published to Maven Central:
io.github.akshayashokcode:imagepicker:0.2.0
v0.1.0 — Initial release
[0.1.0] — 2026-05-28
imagepicker
- Fluent builder API:
ImagePicker.with(context, caller).source().crop().onResult().onError().launch() - Gallery picking via
ActivityResultContracts.GetContent - Camera capture via
ActivityResultContracts.TakePicturewith automatic EXIF orientation correction MediaSource.Gallery,MediaSource.Camera,MediaSource.Both(Both falls back to Gallery)- Sealed
ImagePickerResult:Success,SuccessWithBitmap,Cancelled,Error - Sealed
ImagePickerException:PermissionDenied,AppNotFound,FileCreationFailed,InvalidUri,DecodingFailed,FileDeletionFailed,IntentFailed,Unknown - Automatic CAMERA permission request before camera launch
ImageCropProviderinterface — plug in any crop library or use built-inMediaKitCropProviderImagePickerFileProvider— isolated FileProvider subclass; authority{applicationId}.imagepicker.provider<queries>manifest entry for camera intent visibility on Android 11+- All
registerForActivityResultcalls happen at construction time (beforeonStart) - Published to Maven Central:
io.github.akshayashokcode:imagepicker:0.1.0
imagecropper
CropperView— custom View with matrix-based image fit, touch-drag/resize crop rectCropOverlayDrawer— dimmed overlay, border, rule-of-thirds grid, L-shaped corner handlesCropTouchHandler— detects MOVE / corner / edge areas; enforcesMIN_CROP_SIZECropperSavedState— full Parcelable save/restore of crop rect across rotationCropperActivity— standalone Activity: receives URI viaEXTRA_INPUT_URI, returns cropped JPEG URI viaEXTRA_OUTPUT_URIMediaKitCropProvider— implementsImageCropProvider; wiresCropperActivityinto the picker flowgetCroppedImage()— returns croppedBitmapfrom current rect, clamped to image bounds- Published to Maven Central:
io.github.akshayashokcode:imagecropper:0.1.0
sample-app
- Compose UI: empty state → gallery pick → crop → result display
- Error and exception feedback via Toast