{"id":19897481,"url":"https://github.com/ronnieotieno/ronnie-image-picker","last_synced_at":"2025-05-02T20:31:21.188Z","repository":{"id":44710398,"uuid":"382824489","full_name":"ronnieotieno/Ronnie-Image-Picker","owner":"ronnieotieno","description":"Image Picker library for Android","archived":false,"fork":false,"pushed_at":"2022-10-22T17:55:24.000Z","size":254,"stargazers_count":35,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T05:34:26.277Z","etag":null,"topics":["android","androidpermission","fileprovider","imagepicker"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ronnieotieno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-04T10:35:37.000Z","updated_at":"2024-11-09T21:31:50.000Z","dependencies_parsed_at":"2022-09-07T07:41:46.019Z","dependency_job_id":null,"html_url":"https://github.com/ronnieotieno/Ronnie-Image-Picker","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronnieotieno%2FRonnie-Image-Picker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronnieotieno%2FRonnie-Image-Picker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronnieotieno%2FRonnie-Image-Picker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronnieotieno%2FRonnie-Image-Picker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ronnieotieno","download_url":"https://codeload.github.com/ronnieotieno/Ronnie-Image-Picker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252104260,"owners_count":21695440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","androidpermission","fileprovider","imagepicker"],"created_at":"2024-11-12T18:45:05.368Z","updated_at":"2025-05-02T20:31:20.167Z","avatar_url":"https://github.com/ronnieotieno.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":" # Ronnie-Image-Picker\n\nAsks for Camera and storage permission and return uri of the images taken or picked from the gallery.\n\nMin Api Level: 16\n\nBuild System : [Gradle](https://gradle.org/)\n\n [![](https://jitpack.io/v/ronnieotieno/Ronnie-Image-Picker.svg)](https://jitpack.io/#ronnieotieno/Ronnie-Image-Picker)\n\n## Getting started\n\nYou don't need to declare the permissions in the manifests.\n\nAdd this in your root build.gradle or settings.gradle if in version Arctic Fox and above at the end of repositories:\n\n```groovy\nallprojects {\n    repositories {\n        ...\n       maven { url 'https://jitpack.io' }\n    }\n}\n```\nAdd this to dependencies:\n\n```groovy\ndependencies {\n\t     implementation 'com.github.ronnieotieno:Ronnie-Image-Picker:1.1.0' //Add latest version\n\t}\n```\nExample in code, Kotlin:\n\n```kotlin\n  lateinit var imagePicker : ImagePicker //You need to instantiate it in Oncreate\n  \n   override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n\n\t //activity or fragment\n\t imagePicker = ImagePicker(this)\n      \n      //Camera\n      openCameraBtn.setOnClickListener {\n          imagePicker.takeFromCamera { imageResult -\u003e\n              imageCallBack(\n                  imageResult\n              )\n          }\n      }\n      \n      //Gallery\n      openGalleryBtn.setOnClickListener {\n          imagePicker.pickFromStorage { imageResult -\u003e\n              imageCallBack(\n                  imageResult\n              )\n          }\n      }\n      \n      //Open Dialog with source selection\n      openSelectionButton.setOnClickListener {\n          imagePicker.selectSource { imageResult -\u003e\n              imageCallBack(\n                  imageResult\n              )\n          }\n      }\n  }\n\n  //CallBack for result\n  private fun imageCallBack(imageResult: ImageResult\u003cUri\u003e) {\n    when (imageResult) {\n        is ImageResult.Success -\u003e {\n            val uri = imageResult.value\n            imageView.setImageUri(uri)\n        }\n        is ImageResult.Failure -\u003e {\n            val errorString = imageResult.errorString\n            Toast.makeText(this@MainActivity, errorString, Toast.LENGTH_LONG).show()\n        }\n    }\n}\n```\nExample in code,Java:\n\n```java\n  public class MainActivity2 extends AppCompatActivity {\n\n    ImageView imageView;\n    ImagePicker imagePicker; //You need to instantiate it in Oncreate \n    \n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        //activity or fragment\n        imagePicker = new ImagePicker(this);\n\n        Button camera = findViewById(R.id.openCamera);\n        imageView = findViewById(R.id.imageView);\n        Button storage = findViewById(R.id.openStorage);\n        Button openSelection = findViewById(R.id.openSelection);\n\n\n        //Camera\n        camera.setOnClickListener(v -\u003e imagePicker.takeFromCamera(imageCallBack()));\n\n        //Gallery\n        storage.setOnClickListener(v -\u003e imagePicker.pickFromStorage(imageCallBack()));\n\n        //Open Dialog with source selection\n        openSelection.setOnClickListener(v -\u003e imagePicker.selectSource(imageCallBack()));\n\n\n    }\n\n    //CallBack for result\n    private Function1\u003cImageResult\u003c? extends Uri\u003e, Unit\u003e imageCallBack() {\n        return imageResult -\u003e {\n            if (imageResult instanceof ImageResult.Success) {\n                Uri uri = ((ImageResult.Success\u003cUri\u003e) imageResult).getValue();\n                imageView.setImageURI(uri);\n            } else {\n                String errorString = ((ImageResult.Failure) imageResult).getErrorString();\n                Toast.makeText(MainActivity2.this, errorString, Toast.LENGTH_LONG).show();\n            }\n            return null;\n        };\n    }\n}\n\n```\n## Demo\n\nVersion 1.0.0 introduced dialog selection\n\n\u003cimg src=\"demo/dialog.png\" width=400/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronnieotieno%2Fronnie-image-picker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fronnieotieno%2Fronnie-image-picker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronnieotieno%2Fronnie-image-picker/lists"}