summaryrefslogtreecommitdiff
path: root/libs/ihealth-sdk/android/src/main/java/com/ihealth/ihealthlibrary/iHealthBaseModule.java
blob: 3b41d558212c8567eb37871a199ffa278ca2002c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.ihealth.ihealthlibrary;

import android.util.Log;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.modules.core.DeviceEventManagerModule;

/**
 * Created by Jeepend on 21/11/2016.
 * Base class for iHealth Modules, provide sendEvent method for you.
 */
@ReactModule(name = "iHealthBaseModule")
public abstract class iHealthBaseModule extends ReactContextBaseJavaModule {

    private final String TAG;
    private DeviceEventManagerModule.RCTDeviceEventEmitter mEmitter = null;
    public static final String ACTION_GET_ALL_CONNECTED_DEVICES = "action_get_all_connected_devices";

    public iHealthBaseModule(String tag, ReactApplicationContext reactContext) {
        super(reactContext);
        TAG = tag;
    }

    void sendEvent(String eventName, WritableMap data) {
        if (mEmitter == null) {
            mEmitter = getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class);
        }
        if (mEmitter != null) {
            mEmitter.emit(eventName, data);
        } else {
            Log.e(TAG, "mEmitter is null, can't send event.");
        }
    }

    public abstract void handleNotify(String mac, String deviceType, String action, String message);
}