{"id":13639772,"url":"https://github.com/SkyD666/Rays-Android","last_synced_at":"2025-04-20T01:32:32.722Z","repository":{"id":154528466,"uuid":"623516072","full_name":"SkyD666/Rays-Android","owner":"SkyD666","description":"🥰 A tool to record, search and manage stickers on your phone. ⭐️ Star to support our work! 一个在本地记录、查找、管理表情包的工具。基于 MVI 架构，使用 Jetpack Compose 编写，完全采用 Material You 风格。⭐️ 点个 Star 以支持此项工作！","archived":false,"fork":false,"pushed_at":"2023-12-19T15:44:49.000Z","size":6396,"stargazers_count":86,"open_issues_count":3,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-19T16:51:56.008Z","etag":null,"topics":["android","compose","datastore","genshin","genshin-impact","hilt","jetpack","kotlin","material-you","md3","mvi-architecture","navigation","room","sticker","webdav"],"latest_commit_sha":null,"homepage":"https://t.me/SkyD666Chat","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SkyD666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://afdian.net/a/SkyD666","https://www.buymeacoffee.com/SkyD666"]}},"created_at":"2023-04-04T14:23:30.000Z","updated_at":"2023-12-21T16:35:30.644Z","dependencies_parsed_at":"2023-06-29T14:15:30.808Z","dependency_job_id":"df446a4b-f51f-461b-bff2-52fb565bf4fe","html_url":"https://github.com/SkyD666/Rays-Android","commit_stats":null,"previous_names":[],"tags_count":11,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyD666%2FRays-Android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyD666%2FRays-Android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyD666%2FRays-Android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyD666%2FRays-Android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SkyD666","download_url":"https://codeload.github.com/SkyD666/Rays-Android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249838128,"owners_count":21332561,"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","compose","datastore","genshin","genshin-impact","hilt","jetpack","kotlin","material-you","md3","mvi-architecture","navigation","room","sticker","webdav"],"created_at":"2024-08-02T01:01:04.633Z","updated_at":"2025-04-20T01:32:32.705Z","avatar_url":"https://github.com/SkyD666.png","language":"Kotlin","funding_links":["https://afdian.net/a/SkyD666","https://www.buymeacoffee.com/SkyD666"],"categories":["Kotlin","🔐 Security \u0026 Privacy"],"sub_categories":["🔧 Uncategorized Tools"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cdiv\u003e\n        \u003cimg src=\"image/Rays.svg\" style=\"height: 210px\"/\u003e\n    \u003c/div\u003e\n    \u003ch1\u003e🥰 Rays (Android)\u003c/h1\u003e\n    \u003cp\u003e\n        \u003ca href=\"https://github.com/SkyD666/Rays-Android/actions\" style=\"text-decoration:none\"\u003e\n            \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/SkyD666/Rays-Android/pre_release.yml?branch=master\u0026style=for-the-badge\" alt=\"GitHub Workflow Status\"  /\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/SkyD666/Rays-Android/releases/latest\" style=\"text-decoration:none\"\u003e\n            \u003cimg src=\"https://img.shields.io/github/v/release/SkyD666/Rays-Android?display_name=release\u0026style=for-the-badge\" alt=\"GitHub release (latest by date)\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/SkyD666/Rays-Android/releases/latest\" style=\"text-decoration:none\" \u003e\n            \u003cimg src=\"https://img.shields.io/github/downloads/SkyD666/Rays-Android/total?style=for-the-badge\" alt=\"GitHub all downloads\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://www.android.com/versions/nougat-7-0\" style=\"text-decoration:none\" \u003e\n            \u003cimg src=\"https://img.shields.io/badge/Android 7.0+-brightgreen?style=for-the-badge\u0026logo=android\u0026logoColor=white\" alt=\"Support platform\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/SkyD666/Rays-Android/blob/master/LICENSE\" style=\"text-decoration:none\" \u003e\n            \u003cimg src=\"https://img.shields.io/github/license/SkyD666/Rays-Android?style=for-the-badge\" alt=\"GitHub license\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://t.me/SkyD666Chat\" style=\"text-decoration:none\" \u003e\n            \u003cimg src=\"https://img.shields.io/badge/Telegram-2CA5E0?logo=telegram\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Telegram\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://discord.gg/pEWEjeJTa3\" style=\"text-decoration:none\" \u003e\n            \u003cimg src=\"https://img.shields.io/discord/982522006819991622?color=5865F2\u0026label=Discord\u0026logo=discord\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Discord\"/\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        \u003cb\u003eRays (Record All Your Stickers)\u003c/b\u003e, A tool to \u003cb\u003erecord, search and manage stickers\u003c/b\u003e on your phone.\n    \u003c/p\u003e\n    \u003cp\u003e\n        🥰 Are you still struggling with \u003cb\u003etoo many stickers on your phone\u003c/b\u003e and having trouble finding the ones you want? This tool will help you \u003cb\u003emanage your stickers\u003c/b\u003e! 😋\n    \u003c/p\u003e\n    \u003cp\u003e\n        Rays utilizes the \u003cb\u003e\u003ca href=\"https://developer.android.com/topic/architecture#recommended-app-arch\"\u003eMVI\u003c/a\u003e\u003c/b\u003e architecture and fully adopts the \u003cb\u003e\u003ca href=\"https://m3.material.io/\"\u003eMaterial You\u003c/a\u003e\u003c/b\u003e design style. All pages are developed using \u003cb\u003e \u003ca href=\"https://developer.android.com/jetpack/compose\"\u003eJetpack Compose\u003c/a\u003e\u003c/b\u003e.\n    \u003c/p\u003e\n    \u003cp\u003e\n        \u003cb\u003e\u003ca href=\"https://hosted.weblate.org/engage/rays/\"\u003eHelp us translate\u003c/a\u003e\u003c/b\u003e\n    \u003c/p\u003e\n\u003c/div\u003e\n\n## 💡 Features\n\n1. Support **tagging** for stickers\n2. Support setting **search domains** (set the **fields of the database tables** to be searched)\n3. Support searching using **regular expressions**\n4. Support **recognizing text** in stickers\n5. Support **recommending sticker tags** using **AI** (support change models)\n6. Support **searching similar stickers**\n7. Support **syncing data using WebDAV and files**\n8. Support **AI image style transfer**\n9. Support importing some stickers through the **system \"Share\" page**\n10. Support **Monet theming and customizing theme colors**, support **theme color following the sticker's main color**\n11. Support **dark color mode**\n12. ......\n\n## 🤩 Screenshots\n\n![ic_home_screen](image/en/ic_home_screen.jpg) ![ic_home_screen_search](image/en/ic_home_screen_search.jpg)\n![ic_add_screen_add](image/en/ic_add_screen_add.jpg) ![ic_share](image/en/ic_share.jpg)\n![ic_appearance_screen](image/en/ic_appearance_screen.jpg) ![ic_import_export_screen](image/en/ic_import_export_screen.jpg)\n![ic_mini_tool_screen](image/en/ic_mini_tool_screen.jpg) ![ic_style_transfer_screen](image/en/ic_style_transfer_screen.jpg)\n![ic_search_config_screen](image/en/ic_search_config_screen.jpg) ![ic_more_screen](image/en/ic_more_screen.jpg)\n![ic_settings_screen](image/en/ic_settings_screen.jpg) ![ic_classification_screen](image/en/ic_classification_screen.jpg)\n![ic_auto_share_screen](image/en/ic_auto_share_screen.jpg) ![ic_about_screen](image/en/ic_about_screen.jpg)\n\n## 🔍 Search examples\n\n\u003ctable\u003e\n\u003cthead\u003e\n  \u003ctr\u003e\n    \u003cth\u003eIntent\u003c/th\u003e\n    \u003cth\u003eText input in the search bar when using regular expression\u003c/th\u003e\n    \u003cth\u003eText input in the search bar when regular expression is not used\u003c/th\u003e\n  \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSearch for content with the keyword \"Genshin\"\u003c/td\u003e\n    \u003ctd\u003e.*Genshin.*\u003c/td\u003e\n    \u003ctd\u003eGenshin\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSearch only for the word \"Genshin\"\u003c/td\u003e\n    \u003ctd\u003eGenshin or ^Genshin$\u003c/td\u003e\n    \u003ctd\u003e⚠️Impossible\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSearch for content with the keywords \"crazy\" or \"Genshin\"\u003c/td\u003e\n    \u003ctd\u003e.*crazy.*|.*Genshin.*\u003c/td\u003e\n    \u003ctd\u003e⚠️Impossible\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSearch only for the word \"crazy\" or only for the word \"Genshin\"\u003c/td\u003e\n    \u003ctd\u003ecrazy|Genshin or ^crazy$|^Genshin$\u003c/td\u003e\n    \u003ctd\u003e⚠️Impossible\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSearch for content with the keywords \"crazy\" and \"Genshin\"\u003c/td\u003e\n    \u003ctd\u003e.*crazy.*   .*Genshin.*\u003c/td\u003e\n    \u003ctd\u003ecrazy   Genshin\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSearch for content with the keywords (\"crazy\" and with \"Genshin\") or \"ikun\"\u003c/td\u003e\n    \u003ctd\u003e.*crazy.*|.*ikun.*   .*Genshin.*|.*ikun.*\u003c/td\u003e\n    \u003ctd\u003e⚠️Impossible\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eNote: \u003cb\u003eand\u003c/b\u003e logic is represented by \u003cb\u003espace, tab, line break\u003c/b\u003e, multiple of the above characters together are considered as one, extra spaces before and after the input box text will be ignored. The \u003cb\u003e\"content\"\u003c/b\u003e in the form refers to the selected search domain (the results of multiple search domains are combined).\u003c/p\u003e\n\n## 🌏 Translation\n\nIf you are interested, please help us **translate**, thank you.\n\n\u003ca href=\"https://hosted.weblate.org/engage/rays/\"\u003e\n\u003cimg src=\"https://hosted.weblate.org/widget/rays/string-xml/multi-auto.svg\" alt=\"translate\" /\u003e\n\u003c/a\u003e\n\n## 🛠 Primary technology stack\n\n- Jetpack **Compose**\n- **MVI** Architecture\n- Kotlin ﻿**Coroutines and Flow**\n- **Material You**\n- **ViewModel**\n- **Hilt**\n- **DataStore**\n- **LiteRT**\n- **ML Kit** (Machine Learning)\n- **Room**\n- **Paging**\n- **AIDL**\n- Splash Screen\n- Navigation\n- Coil\n- Lottie\n- Profile Installer\n\n## 🤖 Machine learning\n\n- Sticker classification: https://github.com/SkyD666/StickerClassification\n\n## ✨ Other works\n\n\u003ctable\u003e\n\u003cthead\u003e\n  \u003ctr\u003e\n    \u003cth\u003eWork\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n    \u003cth\u003eLink\u003c/th\u003e\n  \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"image/PodAura.svg\" style=\"height: 100px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003ePodAura\u003c/b\u003e, an \u003cb\u003eall-in-one Podcast tool\u003c/b\u003e for \u003cb\u003eRSS subscription and updates\u003c/b\u003e, \u003cb\u003emedia downloads\u003c/b\u003e and \u003cb\u003eplayback\u003c/b\u003e.\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/SkyD666/PodAura\"\u003ehttps://github.com/SkyD666/PodAura\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"image/Raca.svg\" style=\"height: 100px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eRaca (Record All Classic Articles)\u003c/b\u003e, a tool to \u003cb\u003erecord and search abstract passages and mini-essays\u003c/b\u003e in the comments section locally. 🤗 Are you still having trouble remembering the content of your mini-essay and facing the embarrassing situation of forgetting the front, middle and back? Using this tool will help you \u003cb\u003erecord the mini-essays\u003c/b\u003e you come across and never worry about forgetting them again! 😋\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/SkyD666/Raca-Android\"\u003ehttps://github.com/SkyD666/Raca-Android\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"image/NightScreen.svg\" style=\"height: 100px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cb\u003eNightScreen\u003c/b\u003e, when you \u003cb\u003euse your phone at night\u003c/b\u003e 🌙, Night Screen can help you \u003cb\u003ereduce the brightness\u003c/b\u003e of the screen and \u003cb\u003ereduce the damage to your eyes\u003c/b\u003e.\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/SkyD666/NightScreen\"\u003ehttps://github.com/SkyD666/NightScreen\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\n## 📃 License\n\nThis software code is available under the following **license**\n\n[**GNU General Public License v3.0**](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkyD666%2FRays-Android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSkyD666%2FRays-Android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkyD666%2FRays-Android/lists"}