MCPcopy Index your code
hub / github.com/emekalites/react-native-alarm-notification

github.com/emekalites/react-native-alarm-notification @v1.8.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.8.0 ↗ · + Follow
172 symbols 470 edges 25 files 3 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

React Native Alarm Notification

npm version npm downloads

Installing (React Native >= 0.60.0)

npm install react-native-alarm-notification --save

or

yarn add react-native-alarm-notification

If you are using react-native version 0.60 or higher you don't need to link react-native-alarm-notification. The package is automatically linked when building the app. All you need to do after installing package is:

For iOS pod installation:

npx pod-install

or

cd ios && pod install

For android, the package will be linked automatically on build.

IMPORTANT

If your app crashes on Android, it could probably mean auto linking didn't work. You will need to make the following changes:

android/app/src/main/java/\<AppName>/MainApplication.java

  • add import com.emekalites.react.alarm.notification.ANPackage; on the imports section
  • add packages.add(new ANPackage()); in List<ReactPackage> getPackages();

android/app/build.gradle

add implementation project(':react-native-alarm-notification') in the dependencies block

android/settings.gradle

add:

include ':react-native-alarm-notification'
project(':react-native-alarm-notification').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-alarm-notification/android')

Installing (React Native <= 0.59.x)

npm install react-native-alarm-notification --save

or

yarn add react-native-alarm-notification

Use react-native link to add the library to your project:

react-native link react-native-alarm-notification

iOS manual Installation

> In your AppDelegate.h

Add at the top of the file:

#import <UserNotifications/UNUserNotificationCenter.h>

Then, add the 'UNUserNotificationCenterDelegate' to protocols:

- @interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>
+ @interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate, UNUserNotificationCenterDelegate>

> In your AppDelegate.m

Add at the top of the file:

#import <RnAlarmNotification.h>
#import <UserNotifications/UNUserNotificationCenter.h>

Then, add the following lines:

- (void)userNotificationCenter:(UNUserNotificationCenter *)center
       willPresentNotification:(UNNotification *)notification withCompletionHandler: (void (^)(UNNotificationPresentationOptions options))completionHandler {
  [RnAlarmNotification didReceiveNotification:notification];
  completionHandler(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge);
}


- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
         withCompletionHandler:(void (^)(void))completionHandler  API_AVAILABLE(ios(10.0)){
    [RnAlarmNotification didReceiveNotificationResponse:response];
    completionHandler();
}

And then in your AppDelegate implementation, add the following:

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...

  // Define UNUserNotificationCenter
  UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
  center.delegate = self;

  return YES;
}

To play sound in the background, make sure to add the following to the Info.plist file.

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>

Android manual Installation

> In your AndroidManifest.xml

    .....
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <application ....>
        <receiver
            android:name="com.emekalites.react.alarm.notification.AlarmReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="ACTION_DISMISS" />
                <action android:name="ACTION_SNOOZE" />
            </intent-filter>
        </receiver>

        <receiver
            android:name="com.emekalites.react.alarm.notification.AlarmDismissReceiver"
            android:enabled="true"
            android:exported="true" />

        <receiver
            android:name="com.emekalites.react.alarm.notification.AlarmBootReceiver"
            android:directBootAware="true"
            android:enabled="false"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
     .....

Alarm Notification Data

Prop Description Default
auto_cancel Make this notification automatically dismissed when the user touches it. [boolean] true
channel (Android only) Required: - Specifies the channel the notification should be delivered on.. [string] "my_channel_id"
color (Android only) Required: Sets notification color. [color] "red"
data You can add any additional data that is important for the notification. data: { foo: "bar" }
fire_date Required: Set date for Alarm to get triggered. eg '04-03-2020 00:00:00'. Should be a date in the future . None
has_button Show snooze and dismiss buttons in notification. [boolean] false
large_icon (Android Only) Add a large icon to the notification content view. eg "ic_large_icon". PS: make sure to add the file in your mipmap folders [project_root]/android/app/src/main/res/mipmap* None
loop_sound Play sound continuously until you decide to stop it. [boolean] false
message Required: Add Notification message. "My Notification Message"
play_sound Play alarm notification sound. [boolean] true
schedule_type Required: Type of alarm schedule. "once" (to show alarm once) or "repeat" (to display alarm after set repeat_interval) "once"
repeat_interval Interval set to repeat alarm if schedule_type is "repeat". [minutely, hourly, daily, weekly] "hourly"
interval_value Set interval_value if repeat_interval is minutely and hourly. [number] 1
small_icon Required: Set the small icon resource, which will be used to represent the notification in the status bar. eg "ic_launcher". PS: make sure to add the file in your mipmap folders [project_root]/android/app/src/main/res/mipmap* "ic_launcher"
snooze_interval Interval set to show alarm after snooze button is tapped. [number] in minutes 1
sound_name Set audio file to play when alarm is triggered. example "sound_name.mp3". Add the file in your res/raw folder [project_root]/android/app/src/main/res/raw/ for android and in your ios folder [project_root]/ios/ for iOS. PS: After adding file in your iOS folder, open your application in xcode and drag your audio file into your project. None
sound_names Set multiple audio files to play when alarm is triggered, each file will be picked to play at random. Separate files with a comma (,) example "sound_name1.mp3,sound_name2.mp3". PS: make sure to add the files in your res/raw folder [project_root]/android/app/src/main/res/raw/ None
tag Add a tag id to notification. None
ticker Set the "ticker" text which is sent to accessibility services.. [String] None
title Required: Add a title to notification. `"My Notification Tit

Extension points exported contracts — how you extend this code

Setter (Interface)
(no doc) [1 implementers]
android/src/main/java/com/emekalites/react/alarm/notification/BundleJSONConverter.java

Core symbols most depended-on inside this repo

get
called by 17
android/src/main/java/com/emekalites/react/alarm/notification/AudioInterface.java
toString
called by 12
android/src/main/java/com/emekalites/react/alarm/notification/AlarmModel.java
getId
called by 11
android/src/main/java/com/emekalites/react/alarm/notification/AlarmModel.java
getAlarmDB
called by 8
android/src/main/java/com/emekalites/react/alarm/notification/AlarmUtil.java
getAlarm
called by 7
android/src/main/java/com/emekalites/react/alarm/notification/AlarmDatabase.java
getMonth
called by 6
android/src/main/java/com/emekalites/react/alarm/notification/AlarmModel.java
getAlarmId
called by 6
android/src/main/java/com/emekalites/react/alarm/notification/AlarmModel.java
stopAlarmSound
called by 6
android/src/main/java/com/emekalites/react/alarm/notification/AlarmUtil.java

Shape

Method 151
Class 16
Function 4
Interface 1

Languages

Java95%
TypeScript5%

Modules by API surface

android/src/main/java/com/emekalites/react/alarm/notification/AlarmModel.java68 symbols
android/src/main/java/com/emekalites/react/alarm/notification/AlarmUtil.java29 symbols
android/src/main/java/com/emekalites/react/alarm/notification/ANModule.java14 symbols
android/src/main/java/com/emekalites/react/alarm/notification/AlarmDatabase.java9 symbols
android/src/main/java/com/emekalites/react/alarm/notification/BundleJSONConverter.java8 symbols
android/src/main/java/com/emekalites/react/alarm/notification/AudioInterface.java8 symbols
example/android/app/src/main/java/com/rnan/example/MainApplication.java7 symbols
example/android/app/src/debug/java/com/rnan/example/ReactNativeFlipper.java5 symbols
example/App.js5 symbols
android/src/main/java/com/emekalites/react/alarm/notification/ANPackage.java5 symbols
scripts/examples_postinstall.js3 symbols
example/android/app/src/main/java/com/rnan/example/MainActivity.java3 symbols

For agents

$ claude mcp add react-native-alarm-notification \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page