Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 53.3.0 #92

Merged
merged 1 commit into from
Aug 20, 2024
Merged
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
Release 53.0.0
  • Loading branch information
vimalvenugopalananyline committed Aug 20, 2024
commit e66bb9bdb04333c00aafdad7a80cd2bbb20b13bf
2 changes: 1 addition & 1 deletion example/config.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.anyline.examples.cordova" version="53.0.0" ios-CFBundleVersion="1"
<widget id="com.anyline.examples.cordova" version="53.3.0" ios-CFBundleVersion="1"
xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Anyline Cordova Example</name>
Expand Down
2 changes: 1 addition & 1 deletion example/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "anyline-cordova-example",
"version": "53.0.0",
"version": "53.3.0",
"description": "Cordova plugin for implementing Anyline",
"main": "index.js",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion plugin/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "io-anyline-cordova",
"version": "53.0.0",
"version": "53.3.0",
"description": "The cordova plugin for the Anyline SDK",
"cordova": {
"id": "io-anyline-cordova",
Expand Down
4 changes: 2 additions & 2 deletions plugin/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android" id="io-anyline-cordova" version="53.0.0">
xmlns:android="http://schemas.android.com/apk/res/android" id="io-anyline-cordova" version="53.3.0">

<name>AnylineSDK</name>

Expand Down Expand Up @@ -50,7 +50,7 @@
<source url="https://cdn.cocoapods.org/"/>
</config>
<pods use-frameworks="true">
<pod name="Anyline" type="podspec" spec="53.0.0" />
<pod name="Anyline" type="podspec" spec="53.3.0" />
</pods>
</podspec>

Expand Down
2 changes: 1 addition & 1 deletion plugin/src/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {
}

dependencies {
implementation 'io.anyline:anylinesdk:53.0.0'
implementation 'io.anyline:anylinesdk:53.3.0'
implementation("com.google.android.material:material:1.4.0-rc01")
}

Expand Down
6 changes: 6 additions & 0 deletions plugin/src/android/io/anyline/cordova/AnylinePlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class AnylinePlugin extends CordovaPlugin implements ResultReporter.OnRes

public static final String EXTRA_LICENSE_KEY = "EXTRA_LICENSE_KEY";
public static final String EXTRA_CONFIG_JSON = "EXTRA_CONFIG_JSON";
public static final String EXTRA_SCANVIEW_INITIALIZATION_PARAMETERS = "EXTRA_SCANVIEW_INITIALIZATION_PARAMETERS";
public static final String EXTRA_OCR_CONFIG_JSON = "EXTRA_OCR_CONFIG_JSON";
public static final String EXTRA_ERROR_MESSAGE = "EXTRA_ERROR_MESSAGE";
public static final String EXTRA_SCAN_NATIVE_BARCODE = "EXTRA_SCAN_NATIVE_BARCOE";
Expand Down Expand Up @@ -150,6 +151,11 @@ private void scan(Class<?> activityToStart, int requestCode, JSONArray data) {

try {
intent.putExtra(EXTRA_CONFIG_JSON, data.getJSONObject(0).toString());
String scanViewInitParams = null;
if (data.length() > 1) {
scanViewInitParams = data.getJSONObject(1).toString();
}
intent.putExtra(EXTRA_SCANVIEW_INITIALIZATION_PARAMETERS, scanViewInitParams);
cordova.startActivityForResult(this, intent, requestCode);
} catch (JSONException e) {
onError(getString("error_invalid_json_data"));
Expand Down
15 changes: 14 additions & 1 deletion plugin/src/android/io/anyline/cordova/ScanActivity.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.anyline.cordova;

import static io.anyline.cordova.AnylinePlugin.EXTRA_CONFIG_JSON;
import static io.anyline.cordova.AnylinePlugin.EXTRA_SCANVIEW_INITIALIZATION_PARAMETERS;
import static io.anyline.cordova.AnylinePlugin.EXTRA_ERROR_MESSAGE;
import static io.anyline.cordova.AnylinePlugin.RESULT_ERROR;
import static io.anyline2.sdk.extension.ScanViewInitializationParametersExtensionKt.getScanViewInitializationParametersFromJsonObject;

import android.content.Intent;
import android.content.pm.ActivityInfo;
Expand All @@ -20,6 +22,7 @@
import org.json.JSONException;
import org.json.JSONObject;

import io.anyline.plugin.config.ScanViewInitializationParameters;
import io.anyline2.ScanResult;
import io.anyline2.view.ScanView;
import io.anyline2.viewplugin.ViewPluginBase;
Expand Down Expand Up @@ -56,7 +59,17 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
applyDefaultOrientation(configJSON);
setupChangeOrientationButton(configJSON);

scanView.init(configJSON);
String initializationParametersString = getIntent().getStringExtra(EXTRA_SCANVIEW_INITIALIZATION_PARAMETERS);
if (initializationParametersString != null) {
ScanViewInitializationParameters scanViewInitializationParameters =
getScanViewInitializationParametersFromJsonObject(
this,
new JSONObject(initializationParametersString));
scanView.init(configJSON, scanViewInitializationParameters);
}
else {
scanView.init(configJSON);
}

ViewPluginBase viewPluginBase = scanView.getScanViewPlugin();

Expand Down
1 change: 1 addition & 0 deletions plugin/src/ios/ALNFCScanViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ NS_ASSUME_NONNULL_BEGIN

- (instancetype _Nullable)initWithConfiguration:(NSDictionary *)anylineConfig
cordovaConfiguration:(ALCordovaUIConfiguration *)cordovaConf
initializationParamsStr:(NSString *)initializationParamsStr
callback:(ALPluginCallback)callback;

@end
Expand Down
16 changes: 14 additions & 2 deletions plugin/src/ios/ALNFCScanViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,23 @@ @interface ALNFCScanViewController () <ALNFCDetectorDelegate, ALScanPluginDelega

@property (nonatomic, strong) NSError *scanViewError;

@property (nonatomic, nullable) NSString *initializationParamsStr;


@end


@implementation ALNFCScanViewController

- (instancetype)initWithConfiguration:(NSDictionary *)anylineConfig
cordovaConfiguration:(ALCordovaUIConfiguration *)cordovaConf
cordovaConfiguration:(ALCordovaUIConfiguration *)cordovaConf
initializationParamsStr:(NSString *)initializationParamsStr
callback:(ALPluginCallback)callback {
if (self = [super init]) {
_callback = callback;
_config = anylineConfig;
_uiConfig = cordovaConf;
_initializationParamsStr = initializationParamsStr;

self.quality = 90;
}
Expand All @@ -61,6 +66,11 @@ - (void)viewDidLoad {
} else {
error = [ALPluginHelper errorWithMessage:@"iOS 13.0 or newer is required to scan with MRZ / NFC."];
}

ALScanViewInitializationParameters *initializationParams = nil;
if(_initializationParamsStr){
initializationParams= [ALScanViewInitializationParameters withJSONString:_initializationParamsStr error:&error];
}

if ([self showErrorAlertIfNeeded:error]) {
self.scanViewError = error;
Expand All @@ -72,7 +82,9 @@ - (void)viewDidLoad {
self.resultDict = [[NSMutableDictionary alloc] init];
self.detectedBarcodes = [NSMutableArray array];

self.scanView = [ALScanViewFactory withJSONDictionary:self.config delegate:self error:&error];
self.scanView = [ALScanViewFactory withJSONDictionary:self.config
initializationParams:initializationParams
delegate:self error:&error];
self.scanView.delegate = self;

[self configureMRZPlugin];
Expand Down
1 change: 1 addition & 0 deletions plugin/src/ios/ALPluginHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface ALPluginHelper : NSObject

+ (ALPluginScanViewController *)startScan:(NSDictionary *)config
initializationParamsStr:(NSString * _Nullable)initializationParamsStr
finished:(ALPluginCallback)callback;

// UI Elements
Expand Down
3 changes: 3 additions & 0 deletions plugin/src/ios/ALPluginHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ @implementation ALPluginHelper
// MARK: - Start Anyline

+ (ALPluginScanViewController *)startScan:(NSDictionary *)config
initializationParamsStr:(NSString * _Nullable)initializationParamsStr
finished:(ALPluginCallback)callback {

NSDictionary *optionsDict = [config objectForKey:@"options"];
Expand All @@ -26,6 +27,7 @@ + (ALPluginScanViewController *)startScan:(NSDictionary *)config
dispatch_async(dispatch_get_main_queue(), ^{
ALNFCScanViewController *nfcScanViewController = [[ALNFCScanViewController alloc] initWithConfiguration:config
cordovaConfiguration:jsonUIConf
initializationParamsStr:initializationParamsStr
callback:callback];
[weakSelf presentViewController:nfcScanViewController];
});
Expand All @@ -39,6 +41,7 @@ + (ALPluginScanViewController *)startScan:(NSDictionary *)config
ALPluginScanViewController *pluginScanViewController;
pluginScanViewController = [[ALPluginScanViewController alloc] initWithConfiguration:config
cordovaConfiguration:jsonUIConf
initializationParamsStr:initializationParamsStr
callback:callback];
[weakSelf presentViewController:pluginScanViewController];
});
Expand Down
1 change: 1 addition & 0 deletions plugin/src/ios/ALPluginScanViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ typedef void (^ALPluginCallback)(NSDictionary * _Nullable callbackObj, NSError *

- (instancetype)initWithConfiguration:(NSDictionary *)anylineConfig
cordovaConfiguration:(ALCordovaUIConfiguration *)cordovaConf
initializationParamsStr:(NSString *)initializationParamsStr
callback:(ALPluginCallback)callback;

@end
Expand Down
20 changes: 20 additions & 0 deletions plugin/src/ios/ALPluginScanViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,23 @@ @interface ALPluginScanViewController () <ALScanPluginDelegate, ALViewPluginComp

@property (nonatomic, strong) NSError *scanViewError;

@property (nonatomic, nullable) NSString *initializationParamsStr;

@end


@implementation ALPluginScanViewController

- (instancetype)initWithConfiguration:(NSDictionary *)configDict
cordovaConfiguration:(ALCordovaUIConfiguration *)cordovaConf
initializationParamsStr:(NSString *)initializationParamsStr
callback:(ALPluginCallback)callback {
self = [super init];
if(self) {
_callback = callback;
_configDict = configDict;
_cordovaConfig = cordovaConf;
_initializationParamsStr = initializationParamsStr;
_quality = 100;
}
return self;
Expand All @@ -51,7 +55,17 @@ - (void)viewDidLoad {
self.view.backgroundColor = [UIColor blackColor];

NSError *error = nil;
ALScanViewInitializationParameters *initializationParams = nil;
if(![self isStringEmpty:_initializationParamsStr]){
initializationParams = [ALScanViewInitializationParameters withJSONString: _initializationParamsStr error:&error];
}

if ([self showErrorAlertIfNeeded:error]) {
self.scanViewError = error;
return;
}
self.scanView = [ALScanViewFactory withJSONDictionary:self.configDict
initializationParams:initializationParams
delegate:self
error:&error];

Expand Down Expand Up @@ -419,5 +433,11 @@ -(void)dismissOnError:(NSError *)error{
}];
}

-(BOOL)isStringEmpty:(NSString *)str {
if(str == nil || [str isKindOfClass:[NSNull class]] || str.length==0) {
return YES;
}
return NO;
}

@end
17 changes: 16 additions & 1 deletion plugin/src/ios/AnylineSDKPlugin.m
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ @interface AnylineSDKPlugin()

@property (nonatomic, strong) NSString *wrapperPluginVersion;

@property (nonatomic, copy) NSString *initializationParamsStr;

@end


Expand All @@ -24,6 +26,7 @@ - (void)scan:(CDVInvokedUrlCommand *)command {
__weak __block __typeof(self) weakSelf = self;
[self.commandDelegate runInBackground:^{
[ALPluginHelper startScan:weakSelf.anylineConfig
initializationParamsStr:weakSelf.initializationParamsStr
finished:^(NSDictionary * _Nullable callbackObj, NSError * _Nullable error) {
CDVPluginResult *pluginResult;
if (error) {
Expand Down Expand Up @@ -138,12 +141,24 @@ - (void)initAnylineSDK:(CDVInvokedUrlCommand *)command {
- (void)processArgumentsForCommand:(CDVInvokedUrlCommand *)command {
self.callbackId = command.callbackId;
self.anylineConfig = [command.arguments objectAtIndex:0];

if (command.arguments.count > 1) {
self.initializationParamsStr = [self stringForDictionary:[command.arguments objectAtIndex:1]];
} else {
self.initializationParamsStr = nil;
}
NSDictionary *UIOptions = self.anylineConfig[@"options"];
if (![UIOptions isKindOfClass:NSDictionary.class]) {
UIOptions = @{};
}
self.cordovaUIConf = [[ALCordovaUIConfiguration alloc] initWithDictionary:UIOptions];
}

// MARK: - Utility Method

- (NSString *)stringForDictionary:(NSDictionary *)dict {
NSError * err;
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&err];
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

@end