package com.reactnativebiometricandia;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import io.andia.ResultOnboarding;
import io.andia.ResultValidation;
import io.andia.SelfieCallback;
import io.andia.SelfieValidator;


public class BiometricAndiaActivity extends AppCompatActivity implements SelfieCallback {


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = getIntent();
    String API_KEY = intent.getStringExtra("apiKey");
    String ACTION = intent.getStringExtra("action");
    String USER_ID = intent.getStringExtra("userId");
    if (ACTION.equals("onboarding")) {
      SelfieValidator validator = new SelfieValidator();
      validator.onboarding(API_KEY, BiometricAndiaActivity.this);
    } else if (ACTION.equals("validation")) {
      SelfieValidator validator = new SelfieValidator();
      validator.validation(API_KEY, USER_ID, BiometricAndiaActivity.this);
    }
  }


  @Override
  public void onBackPressed() {
    Intent returnIntent = new Intent();
    returnIntent.putExtra("message", "Cancelled");
    returnIntent.putExtra("action", "cancel");
    setResult(1, returnIntent);
    finish();
  }


  public void resultOnBoarding(ResultOnboarding result) {
    Log.e("ANDIA", result.getMessage());
    Toast toast = Toast.makeText(getApplicationContext(), result.getMessage(), Toast.LENGTH_LONG);
    toast.show();
    Intent returnIntent = new Intent();
    returnIntent.putExtra("action", "onboarding");
    if (result.getSuccess()) {
      returnIntent.putExtra("userId", result.getUserId());
    } else {
      Log.e("ANDIA", result.getMessage());
    }
    returnIntent.putExtra("success", result.getSuccess());
    returnIntent.putExtra("message", result.getMessage());
    setResult(1, returnIntent);
    finish();
  }

  public void resultValidation(ResultValidation result) {
    Log.d("ANDIA", result.getMessage());
    Toast toast = Toast.makeText(getApplicationContext(), result.getMessage(), Toast.LENGTH_LONG);
    toast.show();
    Intent returnIntent = new Intent();
    returnIntent.putExtra("action", "validation");
    returnIntent.putExtra("message", result.getMessage());
    returnIntent.putExtra("isMatch", result.getMatch());
    setResult(1, returnIntent);
    finish();
  }

  public void resultCancel() {
    Intent returnIntent = new Intent();
    returnIntent.putExtra("action", "cancel");
    returnIntent.putExtra("message", "Cancelled");
    setResult(1, returnIntent);
    finish();
  }

}
