1 package io.keybase.ossifrage.modules; 2 3 import android.content.Context; 4 import android.os.Build; 5 import android.telephony.TelephonyManager; 6 7 import androidx.annotation.NonNull; 8 9 import com.facebook.react.BuildConfig; 10 import com.facebook.react.bridge.Promise; 11 import com.facebook.react.bridge.ReactApplicationContext; 12 import com.facebook.react.bridge.ReactContextBaseJavaModule; 13 import com.facebook.react.bridge.ReactMethod; 14 import com.google.android.gms.tasks.OnCompleteListener; 15 import com.google.android.gms.tasks.Task; 16 import com.google.firebase.FirebaseApp; 17 import com.google.firebase.FirebaseOptions; 18 import com.google.firebase.iid.FirebaseInstanceId; 19 import com.google.firebase.iid.InstanceIdResult; 20 21 public class Utils extends ReactContextBaseJavaModule { 22 private static final String NAME = "Utils"; 23 Utils(final ReactApplicationContext reactContext)24 public Utils(final ReactApplicationContext reactContext) { super(reactContext); } 25 26 @Override getName()27 public String getName() { return NAME; } 28 29 @ReactMethod getRegistrationToken(Promise promise)30 public void getRegistrationToken(Promise promise) { 31 boolean firebaseInitialized = FirebaseApp.getApps(getReactApplicationContext()).size() == 1; 32 if (!firebaseInitialized) { 33 FirebaseApp.initializeApp(getReactApplicationContext(), 34 new FirebaseOptions.Builder() 35 .setApplicationId(BuildConfig.APPLICATION_ID) 36 .setGcmSenderId("9603251415").build() 37 ); 38 } 39 FirebaseInstanceId.getInstance().getInstanceId() 40 .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { 41 @Override 42 public void onComplete(@NonNull Task<InstanceIdResult> task) { 43 if (!task.isSuccessful()) { 44 NativeLogger.warn("getInstanceId failed", task.getException()); 45 promise.reject(task.getException()); 46 return; 47 } 48 49 50 // Get new Instance ID token 51 String token = task.getResult().getToken(); 52 NativeLogger.info("Got token: " + token); 53 promise.resolve(token); 54 } 55 }); 56 } 57 58 59 60 @ReactMethod getDefaultCountryCode(Promise promise)61 public void getDefaultCountryCode(Promise promise) { 62 try { 63 TelephonyManager tm = (TelephonyManager) this.getReactApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 64 String countryCode = tm.getNetworkCountryIso(); 65 promise.resolve(countryCode); 66 } catch (Exception e) { 67 promise.reject(e); 68 } 69 } 70 } 71