{"id":13540836,"url":"https://github.com/amirisback/frogo-notification","last_synced_at":"2025-04-24T02:10:10.743Z","repository":{"id":48851079,"uuid":"324478262","full_name":"amirisback/frogo-notification","owner":"amirisback","description":"Frogo Notification - Easy Way For Create Notification","archived":false,"fork":false,"pushed_at":"2022-03-28T17:05:35.000Z","size":26239,"stargazers_count":52,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-24T02:09:59.272Z","etag":null,"topics":["android","android-application","android-development","android-library","android-notification","android-notifications","kotlin","library","notification-service","notifications"],"latest_commit_sha":null,"homepage":"https://amirisback.github.io/frogo-notification/","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/amirisback.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://saweria.co/amirisback"}},"created_at":"2020-12-26T04:04:30.000Z","updated_at":"2024-11-17T15:05:40.000Z","dependencies_parsed_at":"2023-01-05T04:51:42.538Z","dependency_job_id":null,"html_url":"https://github.com/amirisback/frogo-notification","commit_stats":{"total_commits":72,"total_committers":1,"mean_commits":72.0,"dds":0.0,"last_synced_commit":"23b7ff4012c879818e5d2cfebf78298b4d23de9d"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirisback%2Ffrogo-notification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirisback%2Ffrogo-notification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirisback%2Ffrogo-notification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirisback%2Ffrogo-notification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amirisback","download_url":"https://codeload.github.com/amirisback/frogo-notification/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250546082,"owners_count":21448260,"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","android-application","android-development","android-library","android-notification","android-notifications","kotlin","library","notification-service","notifications"],"created_at":"2024-08-01T10:00:33.652Z","updated_at":"2025-04-24T02:10:10.724Z","avatar_url":"https://github.com/amirisback.png","language":"Kotlin","funding_links":["https://saweria.co/amirisback"],"categories":["Android Library"],"sub_categories":["Frogo Android Library"],"readme":"![ScreenShoot Apps](https://raw.githubusercontent.com/amirisback/amirisback/master/docs/image/deprecated.png?raw=true)\n## Alert\n- Please Move To [FrogoSDK](github.com/frogobox/frogo-sdk)\n- Not Developed Again\n\n## About This Project\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-frogo--notification-brightgreen.svg?style=flat-square)](https://android-arsenal.com/details/1/8318)\n[![JitPack](https://jitpack.io/v/amirisback/frogo-notification.svg?style=flat-square)](https://jitpack.io/#amirisback/frogo-notification)\n[![Android CI](https://github.com/amirisback/frogo-notification/actions/workflows/android-ci.yml/badge.svg)](https://github.com/amirisback/frogo-notification/actions/workflows/android-ci.yml)\n[![Scan with Detekt](https://github.com/amirisback/frogo-notification/actions/workflows/detekt-analysis.yml/badge.svg)](https://github.com/amirisback/frogo-notification/actions/workflows/detekt-analysis.yml)\n- Privacy Policy [Click Here](https://github.com/amirisback/frogo-notification/blob/master/PRIVACY-POLICY.md)\n- LICENSE [Click Here](https://github.com/amirisback/frogo-notification/blob/master/LICENSE)\n- SDK for your notification problem to make easier developing android apps\n- frogo-notification is under huge large development\n- Notification with singleton method\n- Simple and eazy to use\n- With many feature\n- Full documentation\n- Custom Layout Notification\n\n## Screenshoot Sample\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eSimple Notification\u003c/th\u003e\n        \u003cth\u003eStack Notification\u003c/th\u003e\n        \u003cth\u003eCustom Notification (1)\u003c/th\u003e\n        \u003cth\u003eCustom Notification (2)\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cimg width=\"200px\" height=\"360px\" src=\"docs/image/ss_simple_notif.gif\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg width=\"200px\" height=\"360px\" src=\"docs/image/ss_stack_notif.gif\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg width=\"200px\" height=\"360px\" src=\"docs/image/ss_custom_layout.gif\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg width=\"200px\" height=\"360px\" src=\"docs/image/ss_reply_notif.gif\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Version Release\nThis Is Latest Release\n\n    $version_release = 1.1.1\n\nWhat's New??\n\n    * Update Build Gradle Version *\n\n## Download this project\n\n### Step 1. Add the JitPack repository to your build file (build.gradle : Project)\n\n\n#### \u003cOption 1\u003e Groovy Gradle\n\n    // Add it in your root build.gradle at the end of repositories:\n\n    allprojects {\n        repositories {\n            ...\n            maven { url 'https://jitpack.io' }\n        }\n    }\n\n#### \u003cOption 2\u003e Kotlin DSL Gradle\n\n```kotlin\n// Add it in your root build.gradle.kts at the end of repositories:\n\nallprojects {\n    repositories {\n        ...\n        maven { url = uri(\"https://jitpack.io\") }\n    }\n}\n```\n\n### Step 2. Add the dependency (build.gradle : Module)\n\n#### \u003cOption 1\u003e Groovy Gradle\n\n    dependencies {\n        // library frogo-notification\n        implementation 'com.github.amirisback:frogo-notification:1.1.1'\n    }\n\n#### \u003cOption 2\u003e Kotlin DSL Gradle\n\n    dependencies {\n        // library frogo-notification\n        implementation(\"com.github.amirisback:frogo-notification:1.1.1\")\n    }\n\n### Step 3. Implement frogo-notification (Simple Notification)\n```kotlin\nFrogoNotification.Inject(this) // Intialize for Context\n    .setChannelId(CHANNEL_ID) // Intialize for Channel ID\n    .setChannelName(CHANNEL_NAME) // Initialize for Channel Name\n    .setContentIntent(pendingIntent) // Initialize for Content Intent\n    .setSmallIcon(R.drawable.ic_frogo_notif) // Initialize for Small Icon\n    .setLargeIcon(R.drawable.ic_frogo_notif) // Initialize for Large Icon\n    .setContentTitle(resources.getString(R.string.content_title)) // Initialize for Content Title\n    .setContentText(resources.getString(R.string.content_text)) // Initialize for Content Text\n    .setSubText(resources.getString(R.string.subtext)) // Initialize for Sub Text\n    .setupAutoCancel() // Initialize for Auto Cancel\n    .build() // Build the Frogo Notification\n    .launch(NOTIFICATION_ID) // Notify the Frogo Notification\n```\n\n## Feature frogo-notification\n\n### Simple Notification\n```kotlin\nFrogoNotification.Inject(this) // Intialize for Context\n    .setChannelId(CHANNEL_ID) // Intialize for Channel ID\n    .setChannelName(CHANNEL_NAME) // Initialize for Channel Name\n    .setContentIntent(pendingIntent) // Initialize for Content Intent\n    .setSmallIcon(R.drawable.ic_frogo_notif) // Initialize for Small Icon\n    .setLargeIcon(R.drawable.ic_frogo_notif) // Initialize for Large Icon\n    .setContentTitle(resources.getString(R.string.content_title)) // Initialize for Content Title\n    .setContentText(resources.getString(R.string.content_text)) // Initialize for Content Text\n    .setSubText(resources.getString(R.string.subtext)) // Initialize for Sub Text\n    .setupAutoCancel() // Initialize for Auto Cancel\n    .build() // Build the Frogo Notification\n    .launch(NOTIFICATION_ID) // Notify the Frogo Notification\n```\n\n### Custom Layout (NEW FEATURE)\n```kotlin\nval collapsed = object : FrogoNotifCustomContentViewListener {\n    override fun setupCustomView(): Int {\n        return R.layout.notification_collapsed\n    }\n\n    override fun setupComponent(context: Context, customView: RemoteViews) {\n        customView.apply{\n            setTextViewText(R.id.text_view_collapsed_1, \"Hello World!\")\n        }\n    }\n}\n\nval expanded = object : FrogoNotifCustomContentViewListener {\n    override fun setupCustomView(): Int {\n        return R.layout.notification_expanded\n    }\n\n    override fun setupComponent(context: Context, customView: RemoteViews) {\n        customView.apply {\n            setImageViewResource(R.id.image_view_expanded, R.drawable.ic_android)\n            setOnClickPendingIntent(R.id.image_view_expanded, clickPendingIntent)\n        }\n    }\n}\n\nFrogoNotification.Inject(this) // Intialize for Context\n    .setChannelId(FrogoApp.CHANNEL_ID) // Intialize for Channel ID\n    .setChannelName(FrogoApp.CHANNEL_NAME) // Initialize for Channel Name\n    .setSmallIcon(R.drawable.ic_android) // Initialize for Small Icon\n    .setCustomContentView(collapsed)\n    .setCustomBigContentView(expanded)\n    .build() // Build the Frogo Notification\n    .launch(FrogoApp.NOTIFICATION_ID) // Notify the Frogo Notification\n```\n\n### With Action Replay\n```kotlin\nFrogoNotification.Inject(this)\n    .setChannelId(CHANNEL_ID)\n    .setChannelName(CHANNEL_NAME as String)\n    .setSmallIcon(R.drawable.ic_frogo_notif)\n    .setContentTitle(getString(R.string.notif_title))\n    .setContentText(getString(R.string.notif_content))\n    .setupShowWhen()\n    .setupActionRemoteInput(object : FrogoNotifActionRemoteInputListener {\n        override fun setRemoteInputResultKey(): String {\n            return KEY_REPLY\n        }\n\n        override fun setRemoteInputLabel(): String {\n            return getString(R.string.notif_action_reply)\n        }\n\n        override fun setActionIcon(): Int {\n            return R.drawable.ic_frogo_send\n        }\n\n        override fun setActionTitle(): String {\n            return getString(R.string.notif_action_reply)\n        }\n\n        override fun setActionIntent(): PendingIntent? {\n            return getReplyPendingIntent()\n        }\n\n        override fun setAllowGeneratedReplies(): Boolean {\n            return true\n        }\n    })\n    .build()\n    .launch(mNotificationId)\n```\n\n### With Inbox Style (Stack)\n```kotlin\nval frogoNotification = FrogoNotification.Inject(this)\n    .setChannelId(CHANNEL_ID)\n    .setChannelName(CHANNEL_NAME)\n    .setSmallIcon(R.drawable.ic_frogo_email)\n    .setGroup(GROUP_KEY_EMAILS)\n    .setContentIntent(pendingIntent)\n    .setupAutoCancel()\n\n// Check if NotificationID is smaller than Max Notif\nif (idNotification \u003c MAX_NOTIFICATION) {\n\n    stackNotif[idNotification].message?.let {\n        frogoNotification\n            .setContentTitle(\"New Email from \" + stackNotif[idNotification].sender)\n            .setContentText(it)\n            .setLargeIcon(R.drawable.ic_frogo_notif)\n    }\n\n} else {\n\n    frogoNotification\n        .setContentTitle(\"$idNotification new emails\")\n        .setContentText(\"mail@frogobox.com\")\n        .setGroupSummary()\n        .setupInboxStyle(object : FrogoNotifInboxStyleListener {\n            override fun addLine1(): String {\n                return \"New Email from \" + stackNotif[idNotification].sender\n            }\n\n            override fun addLine2(): String {\n                return \"New Email from \" + stackNotif[idNotification - 1].sender\n            }\n\n            override fun setBigContentTitle(): String {\n                return \"$idNotification new emails\"\n            }\n\n            override fun setSummaryText(): String {\n                return \"mail@frogobox\"\n            }\n        })\n\n}\n\nfrogoNotification\n    .build()\n    .launch(idNotification)\n```\n\n### With Frogo Style\n```kotlin\nFrogoNotification.Inject(this) // Intialize for Context\n    .setSmallIcon(R.drawable.ic_frogo_notif) // Initialize for Small Icon\n    .setupWithFrogoStyle()\n    .build() // Build the Frogo Notification\n    .launch(NOTIFICATION_ID) // Notify the Frogo Notification\n```\n\n### For Documentation\n\n- Method with description [Click Here](https://github.com/amirisback/frogo-notification/blob/master/frogonotification/src/main/java/com/frogobox/frogonotification/IFrogoNotification.kt)\n- Simple Notification [Click Here](https://github.com/amirisback/frogo-notification/blob/master/app/src/main/java/com/frogobox/notification/simple/MainActivity.kt)\n- With Action Replay [Click Here](https://github.com/amirisback/frogo-notification/blob/master/app/src/main/java/com/frogobox/notification/custom/NotificationService.kt)\n- With Inbox Style (Stack) [Click Here](https://github.com/amirisback/frogo-notification/blob/master/app/src/main/java/com/frogobox/notification/stack/StackNotifActivity.kt)\n\n## Colaborator\nVery open to anyone, I'll write your name under this, please contribute by sending an email to me\n\n- Mail To faisalamircs@gmail.com\n- Subject : Github _ [Github-Username-Account] _ [Language] _ [Repository-Name]\n- Example : Github_amirisback_kotlin_admob-helper-implementation\n\nName Of Contribute\n- Muhammad Faisal Amir\n- Waiting List\n- Waiting List\n\nWaiting for your contribute\n\n## Attention !!!\n- Please enjoy and don't forget fork and give a star\n- Don't Forget Follow My Github Account\n\n![ScreenShoot Apps](docs/image/mad_score.png?raw=true)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirisback%2Ffrogo-notification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirisback%2Ffrogo-notification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirisback%2Ffrogo-notification/lists"}