{"id":22559630,"url":"https://github.com/random-guys/pica.chu","last_synced_at":"2025-10-12T00:36:10.795Z","repository":{"id":98969654,"uuid":"202360842","full_name":"random-guys/pica.chu","owner":"random-guys","description":"Contacts Picker","archived":false,"fork":false,"pushed_at":"2025-03-06T11:37:07.000Z","size":232,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T09:38:12.867Z","etag":null,"topics":["library"],"latest_commit_sha":null,"homepage":null,"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/random-guys.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-14T13:53:43.000Z","updated_at":"2025-03-06T11:35:44.000Z","dependencies_parsed_at":"2025-04-10T09:38:14.492Z","dependency_job_id":"f0394f49-aee8-4e7a-92e9-1ff090a10fdf","html_url":"https://github.com/random-guys/pica.chu","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/random-guys/pica.chu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/random-guys%2Fpica.chu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/random-guys%2Fpica.chu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/random-guys%2Fpica.chu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/random-guys%2Fpica.chu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/random-guys","download_url":"https://codeload.github.com/random-guys/pica.chu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/random-guys%2Fpica.chu/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262697252,"owners_count":23349890,"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":["library"],"created_at":"2024-12-07T21:07:46.278Z","updated_at":"2025-10-12T00:36:10.721Z","avatar_url":"https://github.com/random-guys.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pica.chu\nThis is tiny contacts picker as a BottomSheetDialog picker for Android. \nWe built it because we wanted to combine phone contacts on a device with contacts loaded from a server.\nAlso some contact pickers were just misbehaving and we needed the experience to be consistent across devices.\n\nThis lib will be useful to anyone that's frustrated using the default contact pickers that ship with android devices.\nThis is due to the fact that each device rolls out their contact picker.\n\n## Demo\n\n![Picachu](https://media.giphy.com/media/WodomZmSBBMQQYSnxs/giphy.gif)\n\n## Installation\nAdd the dependency :\n\n```gradle\ndependencies {\n    implementation 'com.random-guys:pica:0.1.1'\n}\n```\n\n## Usage\n\nAdd these permissions to `AndroidManifest.xml`\n```xml\n    \u003cuses-permission android:name=\"android.permission.READ_CONTACTS\"/\u003e\n    \u003cuses-permission android:name=\"android.permission.WRITE_CONTACTS\"/\u003e\n```\n\nUsage in View (`Activity` or `Fragment`)\n```kt\nimport com.random_guys.pica.Chu\nimport com.random_guys.pica.Contact\nimport com.random_guys.pica.Pica\n\nclass MainActivity : AppCompatActivity(), Chu.ContactClickListener {\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        button.setOnClickListener {\n            val mMainContacts = ArrayList\u003cContact\u003e()\n\n            // load contacts from phonebook into an array\n            val pica = Pica(this)\n            pica.load { contacts -\u003e mMainContacts.addAll(contacts) }\n\n            // open contacts picker using contacts loaded from phonebook\n            val chooser = Chu(mMainContacts, this)\n            chooser.show(supportFragmentManager, \"\")\n        }\n    }\n\n    override fun onContactClickListener(contact: Contact) {\n        Toast.makeText(this, contact.name, Toast.LENGTH_LONG).show()\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandom-guys%2Fpica.chu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandom-guys%2Fpica.chu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandom-guys%2Fpica.chu/lists"}