Skip to content

Commit aad22c4

Browse files
chrisbobbegnprice
authored andcommitted
android [nfc]: Add ReactExtensions.kt
From MainActivity.kt and from notifications/NotifyReact.kt. We'll move some more of this kind of React-extending code here soon.
1 parent f6d1bc4 commit aad22c4

File tree

3 files changed

+30
-27
lines changed

3 files changed

+30
-27
lines changed

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

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,11 @@ import android.os.Bundle
66
import android.webkit.WebView
77
import com.facebook.react.ReactActivity
88
import com.facebook.react.ReactActivityDelegate
9-
import com.facebook.react.ReactApplication
109
import com.facebook.react.ReactRootView
11-
import com.facebook.react.bridge.ReactContext
1210
import com.zulipmobile.notifications.*
1311
import com.zulipmobile.sharing.handleSend
1412
import expo.modules.ReactActivityDelegateWrapper
1513

16-
// A convenience shortcut.
17-
fun ReactApplication.tryGetReactContext(): ReactContext? =
18-
this.reactNativeHost.tryGetReactInstanceManager()?.currentReactContext
19-
20-
/**
21-
* Like `.application`, but with a more specific type.
22-
*
23-
* This expresses the invariant that a ReactActivity's application
24-
* should always be a ReactApplication.
25-
*/
26-
val ReactActivity.reactApplication: ReactApplication
27-
get() = application as ReactApplication
28-
2914
open class MainActivity : ReactActivity() {
3015
/**
3116
* Returns the name of the main component registered from JavaScript.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.zulipmobile
2+
3+
import com.facebook.react.ReactActivity
4+
import com.facebook.react.ReactApplication
5+
import com.facebook.react.ReactInstanceManager
6+
import com.facebook.react.ReactNativeHost
7+
import com.facebook.react.bridge.ReactContext
8+
9+
/**
10+
* Like getReactInstanceManager, but just return what exists; avoid trying to create.
11+
*
12+
* When there isn't already an instance manager, if we call
13+
* getReactInstanceManager it'll try to create one... which asserts we're
14+
* on the UI thread, which isn't true if e.g. we got here from a Service.
15+
*/
16+
fun ReactNativeHost.tryGetReactInstanceManager(): ReactInstanceManager? =
17+
if (this.hasInstance()) this.reactInstanceManager else null
18+
19+
// A convenience shortcut.
20+
fun ReactApplication.tryGetReactContext(): ReactContext? =
21+
this.reactNativeHost.tryGetReactInstanceManager()?.currentReactContext
22+
23+
/**
24+
* Like `.application`, but with a more specific type.
25+
*
26+
* This expresses the invariant that a ReactActivity's application
27+
* should always be a ReactApplication.
28+
*/
29+
val ReactActivity.reactApplication: ReactApplication
30+
get() = application as ReactApplication

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ package com.zulipmobile.notifications
44

55
import android.os.Bundle
66
import android.util.Log
7-
import com.facebook.react.ReactInstanceManager
8-
import com.facebook.react.ReactNativeHost
97
import com.facebook.react.bridge.Arguments
108
import com.facebook.react.bridge.ReactContext
119
import com.facebook.react.common.LifecycleState
@@ -18,16 +16,6 @@ import com.facebook.react.modules.core.DeviceEventManagerModule
1816
* TODO: Replace this with a fresh implementation based on RN upstream docs.
1917
*/
2018

21-
/**
22-
* Like getReactInstanceManager, but just return what exists; avoid trying to create.
23-
*
24-
* When there isn't already an instance manager, if we call
25-
* getReactInstanceManager it'll try to create one... which asserts we're
26-
* on the UI thread, which isn't true if e.g. we got here from a Service.
27-
*/
28-
fun ReactNativeHost.tryGetReactInstanceManager(): ReactInstanceManager? =
29-
if (this.hasInstance()) this.reactInstanceManager else null
30-
3119
/**
3220
* A distillation of ReactContext.getLifecycleState() and related information.
3321
*

0 commit comments

Comments
 (0)