package com.adarshanayak.phonenumberfetcher;

import android.app.Activity;
import androidx.annotation.NonNull;

import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;

final class RNPhoneNumberFetcherModule extends ReactContextBaseJavaModule {

  private final PhoneNumberHelper mPhoneNumberHelper = new PhoneNumberHelper();

  RNPhoneNumberFetcherModule(@NonNull final ReactApplicationContext context) {
    super(context);
  }


  @Override
  @NonNull
  public String getName() {
    return "RNPhoneNumberFetcherModule";
  }


  @SuppressWarnings("unused")
  @ReactMethod
  public void requestPhoneNumber(final Promise promise) {
    final ReactApplicationContext context = getReactApplicationContext();
    final Activity activity = getCurrentActivity();
    final ActivityEventListener eventListener = mPhoneNumberHelper.getActivityEventListener();

    context.addActivityEventListener(eventListener);

    mPhoneNumberHelper.setListener(new PhoneNumberHelper.Listener() {
      @Override
      public void phoneNumberResultReceived() {
        context.removeActivityEventListener(eventListener);
      }
    });

    mPhoneNumberHelper.requestPhoneNumber(context, activity, promise);
  }



}
