{"id":19235571,"url":"https://github.com/renyuneyun/colorsniffer","last_synced_at":"2025-04-21T05:32:06.881Z","repository":{"id":71716068,"uuid":"237812641","full_name":"renyuneyun/ColorSniffer","owner":"renyuneyun","description":"Color pallette generation companion app for Last Launcher","archived":false,"fork":false,"pushed_at":"2020-08-16T11:28:26.000Z","size":753,"stargazers_count":5,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-01T10:04:06.796Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/renyuneyun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2020-02-02T18:00:57.000Z","updated_at":"2023-10-05T10:01:01.000Z","dependencies_parsed_at":"2023-05-16T08:45:24.418Z","dependency_job_id":null,"html_url":"https://github.com/renyuneyun/ColorSniffer","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renyuneyun%2FColorSniffer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renyuneyun%2FColorSniffer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renyuneyun%2FColorSniffer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renyuneyun%2FColorSniffer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/renyuneyun","download_url":"https://codeload.github.com/renyuneyun/ColorSniffer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250002270,"owners_count":21359083,"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":[],"created_at":"2024-11-09T16:17:21.978Z","updated_at":"2025-04-21T05:32:06.435Z","avatar_url":"https://github.com/renyuneyun.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ColorSniffer\n\n------\n\nGet and export color codings for your apps.\n\nThis app is intended to be used as a companion app for [Last Launcher](https://github.com/SubhamTyagi/Last-Launcher), as a easy method to obtain custom while regular coloring of apps.\n\n[Download from the release page.](https://github.com/renyuneyun/ColorSniffer/releases)\n\n## Usage\n\nDepending on your opinion, there are two approaches. Please also read the *Data format* section for details of how the data are stored/presented.\n\n### To clipboard\n\nYou can copy/export the color scheme from the app to the clipboard, and paste/import it anywhere suitable.\n\n### By Intent (`startActivityForResult()`)\n\nOn an app which requires the color scheme, you can do a `startActivityForResult()` call to the `ryey.colorsniffer.FormActivity`, and listen to its result (through `onActivityResult()`). The color scheme will be passed with the `Intent`.\n\n## Output data format\n\nThe exact plan to store the data differs by the method, but there are something in common:\n\n- The `launcherId` is in the form of `appId/activityId`:\n   - `appId` is the application id, extracted from `ActivityInfo.packageName`\n   - `activityId` is the (fully-quantified) activity name, extracted from `ActivityInfo.name`\n- The `packageName` is the `ActivityInfo.packageName` value\n- The `color` is an `Integer` and corresponds to the value returned from `ColorDrawable.color`\n   - It is in the form of `AARRGGBB` (bitwise)\n\nNote the data formats may change, based on the discussion between the author of Last Launcher and me (watch the issues).\n\n### Clipboard\n\nIt uses [TSV](https://en.wikipedia.org/wiki/Tab-separated_values). The header of the table is (not included in the exported data):\n\n```\nlauncherId\t#HexColor\n```\n\n- The `launcherId` is defined above\n- The `#HexColor` is the `String` hex representation of the `color` (returned from `ColorDrawable.color`) and formatted with `#%X`\n   - It starts with `#`\n   - It ought to be in CAPITAL\n   - It ought to have **8** (hex) digits\n\n### Intent\n\nThe information is stored in a `Bundle`, using the following method:\n\n- `\"color_bundle\"`: `Bundle` where in the `Bundle`:\n   - `launcherId`: `color`\n   - `\"default_color_for_apps\"`: `color` (`int`)\n\nThat means, the `Bundle` stores the colors of each app in a nested `Bundle` (with key `color_bundle`), using `packageName` as key and `color` as value; the `Bundle` also contains a key `default_color_for_apps` whose value is a color representing the default color (for all apps not in the list).\n\n## Potential future changes of data format\n\n### (Input) Accept the \"current\" color\n\nLast Launcher may add (using the same way as ColorSniffer outputs) an extra `Bundle` in the `Intent` to specify the current app colors.\n\nThis is to be done after ColorSniffer has the ability to \"ignore\" apps.\n\n### (Output) `Intent`-based passing\n\nFor the `Intent`-based method, I'm hoping to change it to the following:\n\n- `\"color_bundle\"`: `Bundle` where in the `Bundle`:\n   - `launcherId`: `color`\n- `\"default_color_for_apps\"`: `color` (`int`)\n\n\n## TODO\n\n- [x] Wait for Last Launcher to support importing from clipboard (or similar, changing accordingly)\n- [x] Provide a better UX (to be called from Last Launcher), possibily through `startActivityForResult()` and return the data through `Intent`?\n- [ ] A more focused UI\n- [ ] Support coloring apps by groups (user-defined or imported / from clipboard)\n- [ ] Support a more intuitive workflow to set app colors (i.e. choose how and what to change in this app and then call Last Launcher to set colors)\n\n## License\n\nCopyright 2020 renyuneyun (Rui Zhao)\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenyuneyun%2Fcolorsniffer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenyuneyun%2Fcolorsniffer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenyuneyun%2Fcolorsniffer/lists"}