Skip to content

Commit be4da1e

Browse files
chrisbobbegnprice
authored andcommitted
android [nfc]: Move generic event-emitting function out of notifications/
Using Kotlin's handy "extension function" feature: https://kotlinlang.org/docs/extensions.html#extension-functions
1 parent aad22c4 commit be4da1e

File tree

4 files changed

+13
-11
lines changed

4 files changed

+13
-11
lines changed

android/app/src/main/java/com/zulipmobile/ReactExtensions.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ import com.facebook.react.ReactApplication
55
import com.facebook.react.ReactInstanceManager
66
import com.facebook.react.ReactNativeHost
77
import com.facebook.react.bridge.ReactContext
8+
import com.facebook.react.modules.core.DeviceEventManagerModule
9+
10+
// A convenience shortcut.
11+
fun ReactContext.emitEvent(eventName: String, data: Any?) {
12+
getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
13+
.emit(eventName, data)
14+
}
815

916
/**
1017
* Like getReactInstanceManager, but just return what exists; avoid trying to create.

android/app/src/main/java/com/zulipmobile/notifications/NotificationsModule.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.core.app.NotificationManagerCompat
88
import com.facebook.react.bridge.*
99
import com.google.android.gms.common.ConnectionResult
1010
import com.google.android.gms.common.GoogleApiAvailability
11+
import com.zulipmobile.emitEvent
1112
import java.lang.Exception
1213

1314
internal class NotificationsModule(reactContext: ReactApplicationContext) :
@@ -81,7 +82,7 @@ internal class NotificationsModule(reactContext: ReactApplicationContext) :
8182
return
8283
}
8384
Log.i(TAG, "Got token; emitting event")
84-
emit(reactContext, "remoteNotificationsRegistered", token)
85+
reactContext.emitEvent("remoteNotificationsRegistered", token)
8586
}
8687
}
8788
}

android/app/src/main/java/com/zulipmobile/notifications/NotifyReact.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import android.util.Log
77
import com.facebook.react.bridge.Arguments
88
import com.facebook.react.bridge.ReactContext
99
import com.facebook.react.common.LifecycleState
10-
import com.facebook.react.modules.core.DeviceEventManagerModule
10+
import com.zulipmobile.emitEvent
1111

1212
/**
1313
* Methods for telling React about a notification.
@@ -76,12 +76,6 @@ internal fun notifyReact(reactContext: ReactContext?, data: Bundle) {
7676
ReactAppStatus.BACKGROUND, ReactAppStatus.FOREGROUND ->
7777
// JS is running and has already reached foreground. It won't check
7878
// initialNotification again, but it will see a notificationOpened event.
79-
emit(reactContext, "notificationOpened", Arguments.fromBundle(data))
79+
reactContext.emitEvent("notificationOpened", Arguments.fromBundle(data))
8080
}
8181
}
82-
83-
fun emit(reactContext: ReactContext, eventName: String, data: Any?) {
84-
reactContext
85-
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
86-
.emit(eventName, data)
87-
}

android/app/src/main/java/com/zulipmobile/sharing/SharingHelper.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import com.facebook.react.bridge.WritableMap
1313
import com.zulipmobile.ZLog
1414
import com.zulipmobile.notifications.ReactAppStatus
1515
import com.zulipmobile.notifications.appStatus
16-
import com.zulipmobile.notifications.emit
16+
import com.zulipmobile.emitEvent
1717

1818
@JvmField
1919
val TAG = "ShareToZulip"
@@ -43,7 +43,7 @@ internal fun handleSend(
4343
ReactAppStatus.BACKGROUND, ReactAppStatus.FOREGROUND ->
4444
// JS is running and has already reached foreground. It won't check
4545
// initialSharedData again, but it will see a shareReceived event.
46-
emit(reactContext, "shareReceived", params)
46+
reactContext.emitEvent("shareReceived", params)
4747
}
4848
}
4949

0 commit comments

Comments
 (0)