Skip to content

Commit 6150364

Browse files
committed
Store react context in Firestack
1 parent 63155e1 commit 6150364

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

android/src/main/java/io/fullstack/firestack/FirestackModule.java

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.support.annotation.Nullable;
77

88
import com.facebook.react.bridge.Arguments;
9+
import com.facebook.react.bridge.LifecycleEventListener;
910
import com.facebook.react.bridge.ReactApplicationContext;
1011
import com.facebook.react.bridge.ReactContextBaseJavaModule;
1112
import com.facebook.react.bridge.ReactMethod;
@@ -29,9 +30,10 @@
2930
import com.google.firebase.auth.GetTokenResult;
3031
import com.google.firebase.auth.GoogleAuthProvider;
3132

32-
class FirestackModule extends ReactContextBaseJavaModule {
33+
class FirestackModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
3334
private static final String TAG = "FirestackModule";
3435
private Context context;
36+
private ReactContext mReactContext;
3537
private FirebaseAuth mAuth;
3638
private FirebaseApp app;
3739
private FirebaseUser user;
@@ -40,6 +42,8 @@ class FirestackModule extends ReactContextBaseJavaModule {
4042
public FirestackModule(ReactApplicationContext reactContext) {
4143
super(reactContext);
4244
this.context = reactContext;
45+
mReactContext = reactContext;
46+
4347
Log.d(TAG, "New FirestackModule instance");
4448
}
4549

@@ -52,7 +56,6 @@ public String getName() {
5256
public void configureWithOptions(ReadableMap params, @Nullable final Callback onComplete) {
5357
Log.i(TAG, "configureWithOptions");
5458

55-
ReactContext mCtx = getReactApplicationContext();
5659
FirebaseOptions.Builder builder = new FirebaseOptions.Builder();
5760

5861
if (params.hasKey("applicationId")) {
@@ -89,7 +92,7 @@ public void configureWithOptions(ReadableMap params, @Nullable final Callback on
8992
try {
9093
Log.i(TAG, "Configuring app");
9194
if (app == null) {
92-
app = FirebaseApp.initializeApp(mCtx, builder.build());
95+
app = FirebaseApp.initializeApp(mReactContext, builder.build());
9396
}
9497
Log.i(TAG, "Configured");
9598
System.out.println("Configured");
@@ -112,7 +115,6 @@ public void configureWithOptions(ReadableMap params, @Nullable final Callback on
112115
@ReactMethod
113116
public void listenForAuth() {
114117
mAuthListener = new FirebaseAuth.AuthStateListener() {
115-
ReactContext mCtx = getReactApplicationContext();
116118

117119
@Override
118120
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
@@ -126,10 +128,10 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
126128
msgMap.putBoolean("authenticated", true);
127129
msgMap.putMap("user", userMap);
128130

129-
sendEvent(mCtx, "listenForAuth", msgMap);
131+
sendEvent("listenForAuth", msgMap);
130132
} else {
131133
msgMap.putBoolean("authenticated", false);
132-
sendEvent(mCtx, "listenForAuth", msgMap);
134+
sendEvent("listenForAuth", msgMap);
133135
}
134136
}
135137
};
@@ -270,10 +272,9 @@ private WritableMap getUserMap() {
270272
/**
271273
* send a JS event
272274
**/
273-
private void sendEvent(ReactContext reactContext,
274-
String eventName,
275+
private void sendEvent(String eventName,
275276
WritableMap params) {
276-
reactContext
277+
mReactContext
277278
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
278279
.emit(eventName, params);
279280
}
@@ -297,4 +298,22 @@ public void userErrorCallback(Task<AuthResult> task, final Callback onFail) {
297298
onFail.invoke(error);
298299
}
299300

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+
}
300319
}

0 commit comments

Comments
 (0)