streamCallbackData property

Stream<TruecallerSdkCallback>? streamCallbackData

Once you call getProfile, you can listen to this stream to determine the result of the action taken by the user. TruecallerSdkCallbackResult.success means the result is successful and you can now fetch the user's profile from TruecallerSdkCallback.profile TruecallerSdkCallbackResult.failure means the result is failure and you can now fetch the result of failure from TruecallerSdkCallback.error TruecallerSdkCallbackResult.verification will be returned only when using TruecallerSdkScope.SDK_OPTION_WITH_OTP which indicates to verify the user manually, so this is not applicable for flutter_truecaller_sdk 0.0.1

Implementation

static Stream<TruecallerSdkCallback>? get streamCallbackData {
  if (_callbackStream == null) {
    _callbackStream = _eventChannel
        .receiveBroadcastStream()
        .map<TruecallerSdkCallback>((value) {
      TruecallerSdkCallback callback = new TruecallerSdkCallback();
      var resultHashMap = HashMap<String, String>.from(value);
      switch (resultHashMap["result"].enumValue()) {
        case TruecallerSdkCallbackResult.success:
          callback.result = TruecallerSdkCallbackResult.success;
          _insertProfile(callback, resultHashMap["data"]!);
          break;
        case TruecallerSdkCallbackResult.failure:
          callback.result = TruecallerSdkCallbackResult.failure;
          _insertError(callback, resultHashMap["data"]);
          break;
        case TruecallerSdkCallbackResult.verification:
          callback.result = TruecallerSdkCallbackResult.verification;
          _insertError(callback, resultHashMap["data"]);
          break;
        case TruecallerSdkCallbackResult.missedCallInitiated:
          callback.result = TruecallerSdkCallbackResult.missedCallInitiated;
          callback.ttl = resultHashMap["data"];
          break;
        case TruecallerSdkCallbackResult.missedCallReceived:
          callback.result = TruecallerSdkCallbackResult.missedCallReceived;
          break;
        case TruecallerSdkCallbackResult.otpInitiated:
          callback.result = TruecallerSdkCallbackResult.otpInitiated;
          callback.ttl = resultHashMap["data"];
          break;
        case TruecallerSdkCallbackResult.otpReceived:
          callback.result = TruecallerSdkCallbackResult.otpReceived;
          callback.otp = resultHashMap["data"];
          break;
        case TruecallerSdkCallbackResult.verifiedBefore:
          callback.result = TruecallerSdkCallbackResult.verifiedBefore;
          _insertProfile(callback, resultHashMap["data"]!);
          break;
        case TruecallerSdkCallbackResult.verificationComplete:
          callback.result = TruecallerSdkCallbackResult.verificationComplete;
          callback.accessToken = resultHashMap["data"];
          break;
        case TruecallerSdkCallbackResult.exception:
          callback.result = TruecallerSdkCallbackResult.exception;
          Map exceptionMap = jsonDecode(resultHashMap["data"]!);
          TruecallerException exception = TruecallerException.fromJson(
              exceptionMap as Map<String, dynamic>);
          callback.exception = exception;
          break;
        default:
          throw PlatformException(
              code: "1010",
              message: "${resultHashMap["result"]} is not a valid result");
      }
      return callback;
    });
  }
  return _callbackStream;
}