Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 105 additions & 22 deletions NET/ScanbotSdkExample.iOS/Controller/MainViewController.DataDetectors.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public partial class MainViewController
private void ScanMrz()
{
var configuration = new SBSDKUI2MRZScannerScreenConfiguration();
SBSDKUI2MRZScannerViewController.PresentOn(this, configuration, (controller, result, error) =>
var vc = SBSDKUI2MRZScannerViewController.CreateWith(configuration, (controller, result, error) =>
{
if (error != null)
{
Expand All @@ -20,69 +20,121 @@ private void ScanMrz()
return;

ShowPopup(this, result.MrzDocument.ToFormattedString());
}, PerformMrzDismissFunc); // performDismiss

PresentViewController(vc, true, null);
}

private void PerformMrzDismissFunc(SBSDKUI2MRZScannerViewController controller, SBSDKUI2MRZScannerDismissHandler dismissVc)
{
// Dismiss on your own
controller.DismissViewController(true, completionHandler: () =>
{
// Inform the SDK, so it initiates the result/error callback.
dismissVc?.Invoke();
});
}

private void ExtractDocumentData()
{
var configuration = new SBSDKUI2DocumentDataExtractorScreenConfiguration();
configuration.TopBar.CancelButton.Text = "Done";
SBSDKUI2DocumentDataExtractorViewController.PresentOn(this, configuration, (controller, result, error) =>
var vc = SBSDKUI2DocumentDataExtractorViewController.CreateWith( configuration, (controller, result, error) =>
{
if (error != null)
{
Alert.ValidateAndShowError(error);
return;
}

// Display the results.
ShowPopup(this, result.Document?.ToFormattedString());
}, PerformDdeDismissFunc); // performDismiss

PresentViewController(vc, true, null);
}

private void PerformDdeDismissFunc(SBSDKUI2DocumentDataExtractorViewController controller, SBSDKUI2DocumentDataExtractorDismissHandler dismissVc)
{

// Dismiss on your own
controller.DismissViewController(true, completionHandler: () =>
{
// Inform the SDK, so it initiates the result/error callback.
dismissVc?.Invoke();
});
}

private void ScanCheck()
{
var configuration = new SBSDKUI2CheckScannerScreenConfiguration();
configuration.TopBar.CancelButton.Text = "Done";
SBSDKUI2CheckScannerViewController.PresentOn(this, configuration, (controller, result, error) =>
var vc = SBSDKUI2CheckScannerViewController.CreateWith(configuration, (controller, result, error) =>
{
if (error != null)
{
Alert.ValidateAndShowError(error);
return;
}

// Display the results.
ShowPopup(this, result.Check?.ToFormattedString());
}, PerformCheckDismissFunc); // performDismiss

PresentViewController(vc, true, null);
}

private void PerformCheckDismissFunc(SBSDKUI2CheckScannerViewController controller, SBSDKUI2CheckScannerDismissHandler dismissVc)
{

// Dismiss on your own
controller.DismissViewController(true, completionHandler: () =>
{
// Inform the SDK, so it initiates the result/error callback.
dismissVc?.Invoke();
});
}

private void ScanTextPattern()
{
var configuration = new SBSDKUI2TextPatternScannerScreenConfiguration();
configuration.TopBar.CancelButton.Text = "Done";
SBSDKUI2TextPatternScannerViewController.PresentOn(this, configuration, (controller, result, error) =>
configuration.ScannerConfiguration.Validator = new SBSDKCustomContentValidator("", new MyCallback());

var vc = SBSDKUI2TextPatternScannerViewController.CreateWith(configuration, (controller, result, error) =>
{
if (error != null)
{
Alert.ValidateAndShowError(error);
return;
}

if (string.IsNullOrWhiteSpace(result.RawText))
{
Alert.Show("Alert", "Something went wrong while scanning the text.");
return;
}
Alert.Show("Result", result.RawText);
}, PerformDismissFunc); // performDismiss

PresentViewController(vc, true, null);
}

private void PerformDismissFunc(SBSDKUI2TextPatternScannerViewController controller, SBSDKUI2TextPatternScannerDismissHandler dismissVc)
{
// Dismiss on your own
controller.DismissViewController(true, completionHandler: () =>
{
if (error != null)
{
Alert.ValidateAndShowError(error);
return;
}

if (string.IsNullOrWhiteSpace(result.RawText))
{
Alert.Show("Alert", "Something went wrong while scanning the text.");
return;
}
Alert.Show("Result", result.RawText);
// Inform the SDK, so it initiates the result/error callback.
dismissVc?.Invoke();
});
}

private void ScanVin()
{
var configuration = new SBSDKUI2VINScannerScreenConfiguration();
configuration.TopBar.CancelButton.Text = "Done";
SBSDKUI2VINScannerViewController.PresentOn(this, configuration, (controller, result, error) =>
var vc = SBSDKUI2VINScannerViewController.CreateWith(configuration, (controller, result, error) =>
{
if (error != null)
{
Expand All @@ -97,6 +149,18 @@ private void ScanVin()
}

Alert.Show("Result", result.TextResult.RawText);
}, PerformVinDismissFunc); // performDismiss

PresentViewController(vc, true, null);
}

private void PerformVinDismissFunc(SBSDKUI2VINScannerViewController controller, SBSDKUI2VINScannerDismissHandler dismissVc)
{
// Dismiss on your own
controller.DismissViewController(true, completionHandler: () =>
{
// Inform the SDK, so it initiates the result/error callback.
dismissVc?.Invoke();
});
}

Expand All @@ -105,18 +169,37 @@ private void ScanCreditCard()
var configuration = new SBSDKUI2CreditCardScannerScreenConfiguration();
configuration.TopBar.CancelButton.Text = "Done";

SBSDKUI2CreditCardScannerViewController.PresentOn(this, configuration, (controller, result, error) =>
var vc = SBSDKUI2CreditCardScannerViewController.CreateWith(configuration, (controller, result, error) =>
{
if (error != null)
{
Alert.ValidateAndShowError(error);
return;
}

if (result?.CreditCard == null)
return;

ShowPopup(this, result.CreditCard?.ToFormattedString());
}, PerformCreditCardDismissFunc); // performDismiss

PresentViewController(vc, true, null);
}

private void PerformCreditCardDismissFunc(SBSDKUI2CreditCardScannerViewController controller, SBSDKUI2CreditCardScannerDismissHandler dismissVc)
{
// Dismiss on your own
controller.DismissViewController(true, completionHandler: () =>
{
// Inform the SDK, so it initiates the result/error callback.
dismissVc?.Invoke();
});
}

// (1) Subclassing the wrapper crashes at construction:
public sealed class MyCallback : SBSDKContentValidationCallback
{
public override bool ValidateWithText(string text) => /* … */ true;
public override string CleanWithRawText(string rawText) => rawText;
}
}
2 changes: 1 addition & 1 deletion NET/ScanbotSdkExample.iOS/ScanbotSdkExample.iOS.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Scanbot.Xamarin.ImagePicker" Version="0.0.3-beta.1" />
<PackageReference Include="ScanbotSDK.NET" Version="9.0.1" />
<PackageReference Include="ScanbotSDK.NET" Version="9.0.2-beta.1" />
</ItemGroup>
</Project>