{"id":28963710,"url":"https://github.com/jakhapay/notification-reminder","last_synced_at":"2026-04-04T03:37:07.054Z","repository":{"id":300155251,"uuid":"1005351477","full_name":"jakhapay/notification-reminder","owner":"jakhapay","description":"Android library for scheduling local push notifications using WorkManager — supports images, custom data, and repeat logic with a flexible Builder pattern.","archived":false,"fork":false,"pushed_at":"2025-06-20T05:38:29.000Z","size":110,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T06:26:04.498Z","etag":null,"topics":["android","notifications","workmanager"],"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/jakhapay.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,"zenodo":null}},"created_at":"2025-06-20T05:13:30.000Z","updated_at":"2025-06-20T06:15:52.000Z","dependencies_parsed_at":"2025-06-20T06:37:13.447Z","dependency_job_id":null,"html_url":"https://github.com/jakhapay/notification-reminder","commit_stats":null,"previous_names":["jakhapay/notification-reminder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jakhapay/notification-reminder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakhapay%2Fnotification-reminder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakhapay%2Fnotification-reminder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakhapay%2Fnotification-reminder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakhapay%2Fnotification-reminder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakhapay","download_url":"https://codeload.github.com/jakhapay/notification-reminder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakhapay%2Fnotification-reminder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31387017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T01:22:39.193Z","status":"online","status_checked_at":"2026-04-04T02:00:07.569Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","notifications","workmanager"],"created_at":"2025-06-24T04:12:17.448Z","updated_at":"2026-04-04T03:37:07.039Z","avatar_url":"https://github.com/jakhapay.png","language":"Kotlin","readme":"# 🚀 Notification Reminder\n\nA lightweight, customizable **notification scheduling library** for Android using **WorkManager**.\n\nEasily schedule **one-time** or **repeating notifications**, support for **custom payloads**, **image URLs**, **channels**, and **click actions** — all with a clean **Builder pattern**.\n\n## 📦 Features\n\n- ✅ Schedule **one-time** or **periodic** notifications\n- 🕒 Use **delayed execution** with `TimeUnit`\n- 🖼️ Supports **large icons** and **big images** from URL (Coil/Glide)\n- 🔕 Customize notification: title, message, sound, visibility, category\n- 🔁 Reuse or cancel with **unique notification IDs**\n- 📥 Set **custom data payloads**\n- 🔧 Built using `WorkManager` (reliable, OS-friendly)\n- 💬 Click opens your app’s default launcher activity\n\n## 🛠️ Installation\n\n1. Add dependency to your `build.gradle`: (WIP, not implemented yet)\n\n```kotlin\nimplementation(\"uz.jakhasoft:push-reminder:1.0.0\")\n```\n\u003e Or if local module:\n\n```kotlin\nimplementation(project(\":push-reminder\"))\n```\n\n2. Minimum SDK: **23+**\n\n\n## 🚀 Usage\n\n### 🔧 Schedule a one-time notification:\n\n```kotlin\nReminderBuilder()\n    .setId(\"promo_offer\") // required\n    .setTitle(\"🎉 Special Offer!\")\n    .setMessage(\"Tap to unlock your gift 🎁\")\n    .setDelay(10, TimeUnit.MINUTES) // required\n    .setSmallIcon(R.drawable.ic_notification) // required\n    .setLargeIconUrl(\"https://example.com/icon.png\")\n    .setBigImageUrl(\"https://example.com/banner.png\")\n    .setCustomData(\"campaign_id\", \"summer2025\")\n    .build()\n\nReminderScheduler.schedule(context, builder)\n```\n\n### 🔁 Schedule a repeating notification:\n\n```kotlin\nReminderBuilder()\n    .setId(\"daily_reminder\")\n    .setTitle(\"Daily Tip\")\n    .setMessage(\"Come back for more!\")\n    .setDelay(5, TimeUnit.MINUTES)\n    .setRepeatInterval(1, TimeUnit.DAYS)\n    .setSmallIcon(R.drawable.ic_notification)\n    .build()\n\nReminderScheduler.schedule(context, builder)\n```\n\n## ❌ Cancel a Notification\n\n```kotlin\nReminderScheduler.cancel(context, \"daily_reminder\")\n```\n\n## 📤 Custom Data Handling\n\nYou can provide any number of key-value data using:\n\n```kotlin\nsetCustomData(\"key\", \"value\")\n```\n\nAll data will be included in the `Intent` when the notification is clicked.\n\n---\n\n## 📦 What Happens on Click?\n\nWhen the user taps the notification, the library opens your **default launcher activity** with the custom data passed via intent:\n\n```kotlin\nintent.getStringExtra(\"campaign_id\") // Access your custom data\n```\n\n---\n\n## 📸 Images \u0026 Icons\n\n* `setLargeIconUrl()` and `setBigImageUrl()` download images using **Coil** internally.\n* You can also extend this with Glide/Picasso easily.\n\n## 🧱 Built With\n\n* Kotlin\n* AndroidX WorkManager\n* Coil (for image loading)\n\n## 💡 License\n\n```\nMIT License\nCopyright (c) 2025 Jakhongir Mannonov\n```\n\n## 🤝 Contributions\n\nPRs and suggestions are welcome!\nCreate an issue or fork the repo to contribute.\n\n## 📬 Contact\n\nCreated by [Jakhongir Mannonov](https://github.com/mannonov) — feel free to reach out for improvements or questions.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakhapay%2Fnotification-reminder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakhapay%2Fnotification-reminder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakhapay%2Fnotification-reminder/lists"}