{"id":25575570,"url":"https://github.com/ziqq/flutter_badge_manager","last_synced_at":"2026-04-08T22:31:15.490Z","repository":{"id":278173708,"uuid":"934746889","full_name":"ziqq/flutter_badge_manager","owner":"ziqq","description":"Plugin to update the app badge on the launcher (both for Android, iOS and macOS)","archived":false,"fork":false,"pushed_at":"2026-03-19T11:40:09.000Z","size":1784,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-20T04:46:32.774Z","etag":null,"topics":["android","flutter","flutter-plugin","ios","macos"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/flutter_badge_manager","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ziqq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"custom":["https://www.buymeacoffee.com/ziqq","https://boosty.to/ziqq"]}},"created_at":"2025-02-18T10:41:58.000Z","updated_at":"2026-03-19T11:41:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"5767c6b0-e5e3-43d7-9457-cbcc29a10074","html_url":"https://github.com/ziqq/flutter_badge_manager","commit_stats":null,"previous_names":["ziqq/flutter_badge_manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ziqq/flutter_badge_manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziqq%2Fflutter_badge_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziqq%2Fflutter_badge_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziqq%2Fflutter_badge_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziqq%2Fflutter_badge_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziqq","download_url":"https://codeload.github.com/ziqq/flutter_badge_manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziqq%2Fflutter_badge_manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31577444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","flutter","flutter-plugin","ios","macos"],"created_at":"2025-02-21T02:38:00.865Z","updated_at":"2026-04-08T22:31:15.484Z","avatar_url":"https://github.com/ziqq.png","language":"Dart","funding_links":["https://www.buymeacoffee.com/ziqq","https://boosty.to/ziqq"],"categories":[],"sub_categories":[],"readme":"# flutter_badge_manager\n\n[![Pub](https://img.shields.io/pub/v/flutter_badge_manager.svg)](https://pub.dev/packages/flutter_badge_manager)\n[![codecov](https://codecov.io/gh/ziqq/flutter_badge_manager/graph/badge.svg?token=OBTQ07RQ8B)](https://codecov.io/gh/ziqq/flutter_badge_manager)\n\nPlugin to set / clear application badge numbers on iOS, macOS and supported Android launchers (OEM / third‑party). Stock Android (Pixel / AOSP) only shows a notification dot; numeric badges depend on the launcher.\n\n| Platform | Min Version | Notes |\n|----------|-------------|-------|\n| Android  | API 21+     | Numeric badge only on supported launchers; request POST_NOTIFICATIONS on API 33+. |\n| iOS      | 13.0+       | Uses applicationIconBadgeNumber; needs notification authorization. |\n| macOS    | 10.15+      | Uses dockTile.badgeLabel; needs notification authorization. |\n\n\u003cp align=\"center\"\u003e\n  \u003cimg\n    src=\"https://raw.githubusercontent.com/ziqq/flutter_badge_manager/refs/heads/main/.github/images/ios.png\"\n    style=\"margin:auto\" width=\"600\"\n    alt=\"iOS badge\"\n    height=\"228\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg\n    src=\"https://raw.githubusercontent.com/ziqq/flutter_badge_manager/refs/heads/main/.github/images/android.png\"\n    style=\"margin:auto\" width=\"600\"\n    alt=\"Android badge\"\n    height=\"322\"\u003e\n\u003c/p\u003e\n\n## Features\n\n- Unified API with automatic federated implementation selection.\n- Preferred instance style (`FlutterBadgeManager.instance.update(3)`).\n- `0.2.0` exposes only the instance API and federated Pigeon-backed platform implementations.\n- Fails fast if no federated implementation is registered for the current platform.\n- Simple support check: `isSupported()`.\n\n## Installation\n\nAdd to `pubspec.yaml` (only top-level plugin needed):\n```yaml\ndependencies:\n  flutter_badge_manager: ^\u003clatest\u003e\n```\n\nFederated platform packages (Android, iOS/macOS) are auto-included when you build your app.\n\n## iOS Setup\n\nRequest notification permission before setting a badge if you also show notifications.\n\nOptional (for remote notification background handling) add to `ios/Runner/Info.plist`:\n```xml\n\u003ckey\u003eUIBackgroundModes\u003c/key\u003e\n\u003carray\u003e\n  \u003cstring\u003eremote-notification\u003c/string\u003e\n\u003c/array\u003e\n```\n\n## macOS Setup\n\nOptional banner style in `macos/Runner/Info.plist`:\n```xml\n\u003ckey\u003eNSUserNotificationAlertStyle\u003c/key\u003e\n\u003cstring\u003ebanner\u003c/string\u003e\n```\n\n## Android Notes\n\nNo official numeric badge API. Supported via OEM/third‑party launchers (Samsung, Xiaomi, Huawei, Sony, etc.). Pixel shows only dots triggered by notifications.\n\nAndroid 13+ (API 33): request runtime notification permission before updating badge number.\n\nOptional launcher permissions (add only what you really need) in `AndroidManifest.xml`:\n```xml\n\u003c!-- Samsung --\u003e\n\u003cuses-permission android:name=\"com.sec.android.provider.badge.permission.READ\"/\u003e\n\u003cuses-permission android:name=\"com.sec.android.provider.badge.permission.WRITE\"/\u003e\n\u003c!-- Huawei --\u003e\n\u003cuses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\"/\u003e\n\u003cuses-permission android:name=\"com.huawei.android.launcher.permission.READ_SETTINGS\"/\u003e\n\u003cuses-permission android:name=\"com.huawei.android.launcher.permission.WRITE_SETTINGS\"/\u003e\n\u003c!-- Sony --\u003e\n\u003cuses-permission android:name=\"com.sonyericsson.home.permission.BROADCAST_BADGE\"/\u003e\n\u003cuses-permission android:name=\"com.sonymobile.home.permission.PROVIDER_INSERT_BADGE\"/\u003e\n\u003c!-- HTC / others --\u003e\n\u003cuses-permission android:name=\"com.anddoes.launcher.permission.UPDATE_COUNT\"/\u003e\n\u003cuses-permission android:name=\"com.majeur.launcher.permission.UPDATE_BADGE\"/\u003e\n```\n\n## Usage\n\nImport:\n```dart\nimport 'package:flutter_badge_manager/flutter_badge_manager.dart';\n```\n\nInstance style (recommended):\n```dart\nfinal badge = FlutterBadgeManager.instance;\nif (await badge.isSupported()) {\n  await badge.update(7);\n  await badge.remove();\n}\n```\n\nFor tests, bind a specific platform implementation with\n`FlutterBadgeManager.instanceFor(...)` instead of relying on the shared\nsingleton.\n\nFor migration details, see [MIGRATION.md](MIGRATION.md).\n\n## Permissions (recommended flow)\n\niOS/macOS:\n- Request notification authorization (badge) via `permission_handler` or native flow before first update.\n\nAndroid (API 33+):\n```dart\nimport 'package:permission_handler/permission_handler.dart';\n\nFuture\u003cvoid\u003e ensureNotificationPermission() async {\n  final status = await Permission.notification.status;\n  if (!status.isGranted) await Permission.notification.request();\n}\n```\n\n## Constraints\n\n- `count \u003e= 0`; negative values throw `ArgumentError`.\n- Unsupported launchers may ignore numeric changes.\n- Clearing badge = `remove()` (sets label to blank / 0 depending on platform).\n\n## Troubleshooting\n\n- Returns false on `isSupported()` on Pixel: expected (numeric not available).\n- Badge not visible on Android: launcher does not support numeric badges or permission not granted.\n- iOS badge not updating: check notification authorization and that app not restricted in settings.\n\n## Project Structure\n\n```\nflutter_badge_manager/                      # App-facing package (what users depend on)\nflutter_badge_manager_platform_interface/   # Platform interface (abstract contract)\nflutter_badge_manager_android/              # Android implementation\nflutter_badge_manager_foundation/           # iOS \u0026 macOS (Darwin) implementation\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for build commands and development workflow.\n\n## Contributing\n\nIssues / PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n\n## Funding\n\nIf you want to support the development of our library, there are several ways you can do it:\n\n- [Buy me a coffee](https://www.buymeacoffee.com/ziqq)\n- [Subscribe through Boosty](https://boosty.to/ziqq)\n\n\n## Coverage\n\n\u003cimg src=\"https://codecov.io/gh/ziqq/contactos/graphs/sunburst.svg?token=OBTQ07RQ8B\" width=\"375\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziqq%2Fflutter_badge_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziqq%2Fflutter_badge_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziqq%2Fflutter_badge_manager/lists"}