6
6
import android .support .annotation .Nullable ;
7
7
8
8
import com .facebook .react .bridge .Arguments ;
9
+ import com .facebook .react .bridge .LifecycleEventListener ;
9
10
import com .facebook .react .bridge .ReactApplicationContext ;
10
11
import com .facebook .react .bridge .ReactContextBaseJavaModule ;
11
12
import com .facebook .react .bridge .ReactMethod ;
29
30
import com .google .firebase .auth .GetTokenResult ;
30
31
import com .google .firebase .auth .GoogleAuthProvider ;
31
32
32
- class FirestackModule extends ReactContextBaseJavaModule {
33
+ class FirestackModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
33
34
private static final String TAG = "FirestackModule" ;
34
35
private Context context ;
36
+ private ReactContext mReactContext ;
35
37
private FirebaseAuth mAuth ;
36
38
private FirebaseApp app ;
37
39
private FirebaseUser user ;
@@ -40,6 +42,8 @@ class FirestackModule extends ReactContextBaseJavaModule {
40
42
public FirestackModule (ReactApplicationContext reactContext ) {
41
43
super (reactContext );
42
44
this .context = reactContext ;
45
+ mReactContext = reactContext ;
46
+
43
47
Log .d (TAG , "New FirestackModule instance" );
44
48
}
45
49
@@ -52,7 +56,6 @@ public String getName() {
52
56
public void configureWithOptions (ReadableMap params , @ Nullable final Callback onComplete ) {
53
57
Log .i (TAG , "configureWithOptions" );
54
58
55
- ReactContext mCtx = getReactApplicationContext ();
56
59
FirebaseOptions .Builder builder = new FirebaseOptions .Builder ();
57
60
58
61
if (params .hasKey ("applicationId" )) {
@@ -89,7 +92,7 @@ public void configureWithOptions(ReadableMap params, @Nullable final Callback on
89
92
try {
90
93
Log .i (TAG , "Configuring app" );
91
94
if (app == null ) {
92
- app = FirebaseApp .initializeApp (mCtx , builder .build ());
95
+ app = FirebaseApp .initializeApp (mReactContext , builder .build ());
93
96
}
94
97
Log .i (TAG , "Configured" );
95
98
System .out .println ("Configured" );
@@ -112,7 +115,6 @@ public void configureWithOptions(ReadableMap params, @Nullable final Callback on
112
115
@ ReactMethod
113
116
public void listenForAuth () {
114
117
mAuthListener = new FirebaseAuth .AuthStateListener () {
115
- ReactContext mCtx = getReactApplicationContext ();
116
118
117
119
@ Override
118
120
public void onAuthStateChanged (@ NonNull FirebaseAuth firebaseAuth ) {
@@ -126,10 +128,10 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
126
128
msgMap .putBoolean ("authenticated" , true );
127
129
msgMap .putMap ("user" , userMap );
128
130
129
- sendEvent (mCtx , "listenForAuth" , msgMap );
131
+ sendEvent ("listenForAuth" , msgMap );
130
132
} else {
131
133
msgMap .putBoolean ("authenticated" , false );
132
- sendEvent (mCtx , "listenForAuth" , msgMap );
134
+ sendEvent ("listenForAuth" , msgMap );
133
135
}
134
136
}
135
137
};
@@ -270,10 +272,9 @@ private WritableMap getUserMap() {
270
272
/**
271
273
* send a JS event
272
274
**/
273
- private void sendEvent (ReactContext reactContext ,
274
- String eventName ,
275
+ private void sendEvent (String eventName ,
275
276
WritableMap params ) {
276
- reactContext
277
+ mReactContext
277
278
.getJSModule (DeviceEventManagerModule .RCTDeviceEventEmitter .class )
278
279
.emit (eventName , params );
279
280
}
@@ -297,4 +298,22 @@ public void userErrorCallback(Task<AuthResult> task, final Callback onFail) {
297
298
onFail .invoke (error );
298
299
}
299
300
301
+ @ Override
302
+ public void onHostResume () {
303
+ WritableMap params = Arguments .createMap ();
304
+ params .putBoolean ("isForground" , true );
305
+ sendEvent ("FirestackAppState" , params );
306
+ }
307
+
308
+ @ Override
309
+ public void onHostPause () {
310
+ WritableMap params = Arguments .createMap ();
311
+ params .putBoolean ("isForground" , false );
312
+ sendEvent ("FirestackAppState" , params );
313
+ }
314
+
315
+ @ Override
316
+ public void onHostDestroy () {
317
+
318
+ }
300
319
}
0 commit comments