From 557684927c83fc60e70300633dd5336f6c3bf402 Mon Sep 17 00:00:00 2001 From: Michael Chernikov Date: Fri, 29 Jul 2016 13:18:24 +0300 Subject: [PATCH] Added samles code --- .../project.pbxproj | 549 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/Mobile Barcode Demo.xcscheme | 91 +++ .../Mobile Barcode Demo/AboutCell.swift | 123 ++++ .../AboutViewController.swift | 43 ++ .../Mobile Barcode Demo/AppDelegate.swift | 47 ++ .../AppIcon.appiconset/Contents.json | 40 ++ .../AppIcon.appiconset/barcodeAppIcon-120.png | Bin 0 -> 13237 bytes .../AppIcon.appiconset/barcodeAppIcon-180.png | Bin 0 -> 19941 bytes .../BarcodeCaptureViewController.swift | 161 +++++ .../Mobile Barcode Demo/BarcodeInfoCell.swift | 26 + .../Mobile Barcode Demo/BarcodeTypes.swift | 91 +++ .../BarcodesSettingsViewController.swift | 63 ++ .../Base.lproj/LaunchScreen.storyboard | 43 ++ .../Base.lproj/Main.storyboard | 403 +++++++++++++ .../BaseSettingsViewController.swift | 62 ++ .../CommonViewController.swift | 26 + .../HomeViewController.swift | 102 ++++ Barcode Demo/Mobile Barcode Demo/Info.plist | 40 ++ .../LicenseAgreementCell.swift | 103 ++++ .../LicenseAgreementViewController.swift | 43 ++ .../PreviewBarcodeViewController.swift | 218 +++++++ .../Resources/Images/bluecircle.png | Bin 0 -> 2088 bytes .../Resources/Images/bluecircle@2x.png | Bin 0 -> 2147 bytes .../Resources/Images/camera@2x.png | Bin 0 -> 6740 bytes .../Resources/Images/camera_button_normal.png | Bin 0 -> 8245 bytes .../Resources/Images/close@2x.png | Bin 0 -> 4787 bytes .../Resources/Images/email.png | Bin 0 -> 3204 bytes .../Resources/Images/email@2x.png | Bin 0 -> 3329 bytes .../Resources/Images/gallery@2x.png | Bin 0 -> 7761 bytes .../Resources/Images/logo.png | Bin 0 -> 7600 bytes .../Resources/Images/settings_icon.png | Bin 0 -> 3652 bytes .../Resources/Images/settings_icon@2x.png | Bin 0 -> 3652 bytes .../Resources/Images/torch_off@2x.png | Bin 0 -> 6265 bytes .../Resources/Images/torchon@2x.png | Bin 0 -> 6498 bytes .../SDKStrings.bundle/Info.plist | Bin 0 -> 851 bytes .../de.lproj/SDKStrings.strings | Bin 0 -> 127696 bytes .../en.lproj/SDKStrings.strings | Bin 0 -> 43086 bytes .../es.lproj/SDKStrings.strings | Bin 0 -> 127948 bytes .../fr.lproj/SDKStrings.strings | Bin 0 -> 131530 bytes .../it.lproj/SDKStrings.strings | Bin 0 -> 103745 bytes .../pt.lproj/SDKStrings.strings | Bin 0 -> 131073 bytes .../Mobile Barcode Demo/Settings.swift | 107 ++++ .../SettingsTableViewController.swift | 81 +++ Barcode Demo/Mobile Barcode Demo/beep-29.wav | Bin 0 -> 47104 bytes Barcode Demo/Mobile Barcode Demo/eula.rtf | 26 + .../Mobile-Barcode-Demo-Bridging-Header.h | 20 + Barcode Demo/MobileBarcode.plist | 12 + .../project.pbxproj | 560 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/Mobile Capture Demo.xcscheme | 91 +++ .../Mobile Capture Demo/AboutCell.swift | 124 ++++ .../AboutViewController.swift | 43 ++ .../Mobile Capture Demo/AppDelegate.swift | 46 ++ .../AppIcon.appiconset/Contents.json | 40 ++ .../AppIcon.appiconset/captureAppIcon-120.png | Bin 0 -> 12888 bytes .../AppIcon.appiconset/captureAppIcon-180.png | Bin 0 -> 18853 bytes .../Base.lproj/LaunchScreen.storyboard | 49 ++ .../Base.lproj/Main.storyboard | 531 +++++++++++++++++ .../BaseSettingsViewController.swift | 62 ++ .../CameraSettingsViewController.swift | 187 ++++++ .../CaptureViewController.swift | 260 ++++++++ .../CommonViewController.swift | 27 + .../HomeViewController.swift | 94 +++ ...ProcessorSettingsTableViewController.swift | 151 +++++ Capture Demo/Mobile Capture Demo/Info.plist | 40 ++ .../LicenseAgreementCell.swift | 103 ++++ .../LicenseAgreementViewController.swift | 43 ++ .../Mobile Capture Demo/PhotoAlbum.swift | 74 +++ .../PreviewImageViewController.swift | 194 ++++++ .../Resources/Images/bluecircle.png | Bin 0 -> 2088 bytes .../Resources/Images/bluecircle@2x.png | Bin 0 -> 2147 bytes .../Resources/Images/camera@2x.png | Bin 0 -> 6740 bytes .../Resources/Images/camera_button_normal.png | Bin 0 -> 8245 bytes .../Resources/Images/close@2x.png | Bin 0 -> 4787 bytes .../Resources/Images/email.png | Bin 0 -> 3204 bytes .../Resources/Images/email@2x.png | Bin 0 -> 3329 bytes .../Resources/Images/gallery@2x.png | Bin 0 -> 7761 bytes .../Resources/Images/logo.png | Bin 0 -> 7600 bytes .../Resources/Images/settings_icon.png | Bin 0 -> 3652 bytes .../Resources/Images/settings_icon@2x.png | Bin 0 -> 3652 bytes .../Resources/Images/torch_off@2x.png | Bin 0 -> 6265 bytes .../Resources/Images/torchon@2x.png | Bin 0 -> 6498 bytes .../Resources/Images/useImage@2x.png | Bin 0 -> 5027 bytes .../Mobile Capture Demo/Settings.swift | 197 ++++++ .../SettingsTableViewController.swift | 73 +++ .../WaitingIndicator.swift | 63 ++ Capture Demo/Mobile Capture Demo/eula.rtf | 26 + .../Mobile-Capture-Demo-Bridging-Header.h | 19 + Capture Demo/MobileCapture.plist | 12 + kfxEVRS_License.h | 16 + versioninfo.properties | 10 + 92 files changed, 5669 insertions(+) create mode 100644 Barcode Demo/Mobile Barcode Demo.xcodeproj/project.pbxproj create mode 100644 Barcode Demo/Mobile Barcode Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Barcode Demo/Mobile Barcode Demo.xcodeproj/xcshareddata/xcschemes/Mobile Barcode Demo.xcscheme create mode 100644 Barcode Demo/Mobile Barcode Demo/AboutCell.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/AboutViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/AppDelegate.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/barcodeAppIcon-120.png create mode 100644 Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/barcodeAppIcon-180.png create mode 100644 Barcode Demo/Mobile Barcode Demo/BarcodeCaptureViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/BarcodeInfoCell.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/BarcodeTypes.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/BarcodesSettingsViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/Base.lproj/LaunchScreen.storyboard create mode 100644 Barcode Demo/Mobile Barcode Demo/Base.lproj/Main.storyboard create mode 100644 Barcode Demo/Mobile Barcode Demo/BaseSettingsViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/CommonViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/HomeViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/Info.plist create mode 100644 Barcode Demo/Mobile Barcode Demo/LicenseAgreementCell.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/LicenseAgreementViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/PreviewBarcodeViewController.swift create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/bluecircle.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/bluecircle@2x.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/camera@2x.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/camera_button_normal.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/close@2x.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/email.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/email@2x.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/gallery@2x.png create mode 100644 Barcode Demo/Mobile Barcode Demo/Resources/Images/logo.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/settings_icon.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/settings_icon@2x.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/torch_off@2x.png create mode 100755 Barcode Demo/Mobile Barcode Demo/Resources/Images/torchon@2x.png create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/Info.plist create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/de.lproj/SDKStrings.strings create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/en.lproj/SDKStrings.strings create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/es.lproj/SDKStrings.strings create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/fr.lproj/SDKStrings.strings create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/it.lproj/SDKStrings.strings create mode 100644 Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/pt.lproj/SDKStrings.strings create mode 100644 Barcode Demo/Mobile Barcode Demo/Settings.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/SettingsTableViewController.swift create mode 100644 Barcode Demo/Mobile Barcode Demo/beep-29.wav create mode 100644 Barcode Demo/Mobile Barcode Demo/eula.rtf create mode 100755 Barcode Demo/Mobile-Barcode-Demo-Bridging-Header.h create mode 100644 Barcode Demo/MobileBarcode.plist create mode 100644 Capture Demo/Mobile Capture Demo.xcodeproj/project.pbxproj create mode 100644 Capture Demo/Mobile Capture Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Capture Demo/Mobile Capture Demo.xcodeproj/xcshareddata/xcschemes/Mobile Capture Demo.xcscheme create mode 100644 Capture Demo/Mobile Capture Demo/AboutCell.swift create mode 100644 Capture Demo/Mobile Capture Demo/AboutViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/AppDelegate.swift create mode 100644 Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/captureAppIcon-120.png create mode 100644 Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/captureAppIcon-180.png create mode 100644 Capture Demo/Mobile Capture Demo/Base.lproj/LaunchScreen.storyboard create mode 100644 Capture Demo/Mobile Capture Demo/Base.lproj/Main.storyboard create mode 100644 Capture Demo/Mobile Capture Demo/BaseSettingsViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/CameraSettingsViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/CaptureViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/CommonViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/HomeViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/ImageProcessorSettingsTableViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/Info.plist create mode 100644 Capture Demo/Mobile Capture Demo/LicenseAgreementCell.swift create mode 100644 Capture Demo/Mobile Capture Demo/LicenseAgreementViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/PhotoAlbum.swift create mode 100644 Capture Demo/Mobile Capture Demo/PreviewImageViewController.swift create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/bluecircle.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/bluecircle@2x.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/camera@2x.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/camera_button_normal.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/close@2x.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/email.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/email@2x.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/gallery@2x.png create mode 100644 Capture Demo/Mobile Capture Demo/Resources/Images/logo.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/settings_icon.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/settings_icon@2x.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/torch_off@2x.png create mode 100755 Capture Demo/Mobile Capture Demo/Resources/Images/torchon@2x.png create mode 100644 Capture Demo/Mobile Capture Demo/Resources/Images/useImage@2x.png create mode 100644 Capture Demo/Mobile Capture Demo/Settings.swift create mode 100644 Capture Demo/Mobile Capture Demo/SettingsTableViewController.swift create mode 100644 Capture Demo/Mobile Capture Demo/WaitingIndicator.swift create mode 100644 Capture Demo/Mobile Capture Demo/eula.rtf create mode 100644 Capture Demo/Mobile-Capture-Demo-Bridging-Header.h create mode 100644 Capture Demo/MobileCapture.plist create mode 100644 kfxEVRS_License.h create mode 100644 versioninfo.properties diff --git a/Barcode Demo/Mobile Barcode Demo.xcodeproj/project.pbxproj b/Barcode Demo/Mobile Barcode Demo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..55e018c --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo.xcodeproj/project.pbxproj @@ -0,0 +1,549 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + B208E2641CEF3BEB0053F137 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B208E2631CEF3BEB0053F137 /* AppDelegate.swift */; }; + B208E2691CEF3BEB0053F137 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B208E2671CEF3BEB0053F137 /* Main.storyboard */; }; + B208E26B1CEF3BEB0053F137 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B208E26A1CEF3BEB0053F137 /* Assets.xcassets */; }; + B208E26E1CEF3BEB0053F137 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B208E26C1CEF3BEB0053F137 /* LaunchScreen.storyboard */; }; + B2092DB51D24F13200479F14 /* LicenseAgreementCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2092DB31D24F13200479F14 /* LicenseAgreementCell.swift */; }; + B2092DB61D24F13200479F14 /* LicenseAgreementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2092DB41D24F13200479F14 /* LicenseAgreementViewController.swift */; }; + B20B9DE61CF71062003E12AD /* BaseSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DE01CF71062003E12AD /* BaseSettingsViewController.swift */; }; + B20B9DE81CF71062003E12AD /* BarcodeCaptureViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DE21CF71062003E12AD /* BarcodeCaptureViewController.swift */; }; + B20B9DE91CF71062003E12AD /* CommonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DE31CF71062003E12AD /* CommonViewController.swift */; }; + B20B9DEA1CF71062003E12AD /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DE41CF71062003E12AD /* HomeViewController.swift */; }; + B20B9DED1CF7107D003E12AD /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DEC1CF7107D003E12AD /* Settings.swift */; }; + B20B9DEF1CF71102003E12AD /* SettingsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DEE1CF71102003E12AD /* SettingsTableViewController.swift */; }; + B20B9DF11CF83DED003E12AD /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DF01CF83DED003E12AD /* AboutViewController.swift */; }; + B20B9DF71CF870A3003E12AD /* BarcodeTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DF61CF870A3003E12AD /* BarcodeTypes.swift */; }; + B20B9DFB1CF87275003E12AD /* BarcodesSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B20B9DFA1CF87275003E12AD /* BarcodesSettingsViewController.swift */; }; + B27BD43F1D38B35C00943531 /* eula.rtf in Resources */ = {isa = PBXBuildFile; fileRef = B27BD43E1D38B35C00943531 /* eula.rtf */; }; + B280628F1D20FBE5009DD03D /* MobileSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B280628C1D20FBE5009DD03D /* MobileSDK.framework */; }; + B29531941D2A817100429143 /* BarcodeInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29531931D2A817100429143 /* BarcodeInfoCell.swift */; }; + B2CCCE391CFC286C00C1DB59 /* bluecircle.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE2C1CFC286C00C1DB59 /* bluecircle.png */; }; + B2CCCE3A1CFC286C00C1DB59 /* bluecircle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE2D1CFC286C00C1DB59 /* bluecircle@2x.png */; }; + B2CCCE3B1CFC286C00C1DB59 /* camera_button_normal.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE2E1CFC286C00C1DB59 /* camera_button_normal.png */; }; + B2CCCE3C1CFC286C00C1DB59 /* camera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE2F1CFC286C00C1DB59 /* camera@2x.png */; }; + B2CCCE3D1CFC286C00C1DB59 /* close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE301CFC286C00C1DB59 /* close@2x.png */; }; + B2CCCE3E1CFC286C00C1DB59 /* email.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE311CFC286C00C1DB59 /* email.png */; }; + B2CCCE3F1CFC286C00C1DB59 /* email@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE321CFC286C00C1DB59 /* email@2x.png */; }; + B2CCCE401CFC286C00C1DB59 /* gallery@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE331CFC286C00C1DB59 /* gallery@2x.png */; }; + B2CCCE411CFC286C00C1DB59 /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE341CFC286C00C1DB59 /* logo.png */; }; + B2CCCE421CFC286C00C1DB59 /* settings_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE351CFC286C00C1DB59 /* settings_icon.png */; }; + B2CCCE431CFC286C00C1DB59 /* settings_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE361CFC286C00C1DB59 /* settings_icon@2x.png */; }; + B2CCCE441CFC286C00C1DB59 /* torch_off@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE371CFC286C00C1DB59 /* torch_off@2x.png */; }; + B2CCCE451CFC286C00C1DB59 /* torchon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE381CFC286C00C1DB59 /* torchon@2x.png */; }; + B2CCCE491CFC4CD900C1DB59 /* beep-29.wav in Resources */ = {isa = PBXBuildFile; fileRef = B2CCCE481CFC4CD900C1DB59 /* beep-29.wav */; }; + B2D3BECC1CEF3E4F00C439C6 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEB71CEF3E4F00C439C6 /* AssetsLibrary.framework */; }; + B2D3BECD1CEF3E4F00C439C6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEB81CEF3E4F00C439C6 /* AudioToolbox.framework */; }; + B2D3BECE1CEF3E4F00C439C6 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEB91CEF3E4F00C439C6 /* MobileCoreServices.framework */; }; + B2D3BECF1CEF3E4F00C439C6 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEBA1CEF3E4F00C439C6 /* OpenGLES.framework */; }; + B2D3BED01CEF3E4F00C439C6 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEBB1CEF3E4F00C439C6 /* Security.framework */; }; + B2D3BED11CEF3E4F00C439C6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEBC1CEF3E4F00C439C6 /* UIKit.framework */; }; + B2D3BED21CEF3E4F00C439C6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEBD1CEF3E4F00C439C6 /* CoreGraphics.framework */; }; + B2D3BED31CEF3E4F00C439C6 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEBE1CEF3E4F00C439C6 /* CoreLocation.framework */; }; + B2D3BED41CEF3E4F00C439C6 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEBF1CEF3E4F00C439C6 /* CoreMedia.framework */; }; + B2D3BED51CEF3E4F00C439C6 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC01CEF3E4F00C439C6 /* CoreMotion.framework */; }; + B2D3BED61CEF3E4F00C439C6 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC11CEF3E4F00C439C6 /* CoreVideo.framework */; }; + B2D3BED71CEF3E4F00C439C6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC21CEF3E4F00C439C6 /* Foundation.framework */; }; + B2D3BED81CEF3E4F00C439C6 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC31CEF3E4F00C439C6 /* libc++.tbd */; }; + B2D3BED91CEF3E4F00C439C6 /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC41CEF3E4F00C439C6 /* libxml2.tbd */; }; + B2D3BEDA1CEF3E4F00C439C6 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC51CEF3E4F00C439C6 /* libz.tbd */; }; + B2D3BEDB1CEF3E4F00C439C6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC61CEF3E4F00C439C6 /* SystemConfiguration.framework */; }; + B2D3BEDC1CEF3E4F00C439C6 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC71CEF3E4F00C439C6 /* AVFoundation.framework */; }; + B2D3BEDD1CEF3E4F00C439C6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D3BEC81CEF3E4F00C439C6 /* QuartzCore.framework */; }; + B2D3BEED1CEF495D00C439C6 /* PreviewBarcodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2D3BEEC1CEF495D00C439C6 /* PreviewBarcodeViewController.swift */; }; + B2E5144B1D2148E800D17BAE /* AboutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E5144A1D2148E800D17BAE /* AboutCell.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + B208E2601CEF3BEB0053F137 /* Mobile Barcode Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mobile Barcode Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + B208E2631CEF3BEB0053F137 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + B208E2681CEF3BEB0053F137 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + B208E26A1CEF3BEB0053F137 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + B208E26D1CEF3BEB0053F137 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + B208E26F1CEF3BEB0053F137 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B2092DB31D24F13200479F14 /* LicenseAgreementCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LicenseAgreementCell.swift; sourceTree = ""; }; + B2092DB41D24F13200479F14 /* LicenseAgreementViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LicenseAgreementViewController.swift; sourceTree = ""; }; + B20B9DE01CF71062003E12AD /* BaseSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseSettingsViewController.swift; sourceTree = ""; }; + B20B9DE21CF71062003E12AD /* BarcodeCaptureViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarcodeCaptureViewController.swift; sourceTree = ""; }; + B20B9DE31CF71062003E12AD /* CommonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonViewController.swift; sourceTree = ""; }; + B20B9DE41CF71062003E12AD /* HomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = ""; }; + B20B9DEC1CF7107D003E12AD /* Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; + B20B9DEE1CF71102003E12AD /* SettingsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewController.swift; sourceTree = ""; }; + B20B9DF01CF83DED003E12AD /* AboutViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; + B20B9DF61CF870A3003E12AD /* BarcodeTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarcodeTypes.swift; sourceTree = ""; }; + B20B9DFA1CF87275003E12AD /* BarcodesSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarcodesSettingsViewController.swift; sourceTree = ""; }; + B27BD43E1D38B35C00943531 /* eula.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = eula.rtf; sourceTree = ""; }; + B280628C1D20FBE5009DD03D /* MobileSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileSDK.framework; path = ../../MobileSDK/MobileSDK.framework; sourceTree = ""; }; + B280628D1D20FBE5009DD03D /* SDKStrings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = SDKStrings.bundle; path = ../../MobileSDK/SDKStrings.bundle; sourceTree = ""; }; + B280628E1D20FBE5009DD03D /* uiimages.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = uiimages.bundle; path = ../../MobileSDK/uiimages.bundle; sourceTree = ""; }; + B29531931D2A817100429143 /* BarcodeInfoCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarcodeInfoCell.swift; sourceTree = ""; }; + B2CCCE2C1CFC286C00C1DB59 /* bluecircle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bluecircle.png; path = Resources/Images/bluecircle.png; sourceTree = ""; }; + B2CCCE2D1CFC286C00C1DB59 /* bluecircle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bluecircle@2x.png"; path = "Resources/Images/bluecircle@2x.png"; sourceTree = ""; }; + B2CCCE2E1CFC286C00C1DB59 /* camera_button_normal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = camera_button_normal.png; path = Resources/Images/camera_button_normal.png; sourceTree = ""; }; + B2CCCE2F1CFC286C00C1DB59 /* camera@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "camera@2x.png"; path = "Resources/Images/camera@2x.png"; sourceTree = ""; }; + B2CCCE301CFC286C00C1DB59 /* close@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "close@2x.png"; path = "Resources/Images/close@2x.png"; sourceTree = ""; }; + B2CCCE311CFC286C00C1DB59 /* email.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = email.png; path = Resources/Images/email.png; sourceTree = ""; }; + B2CCCE321CFC286C00C1DB59 /* email@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "email@2x.png"; path = "Resources/Images/email@2x.png"; sourceTree = ""; }; + B2CCCE331CFC286C00C1DB59 /* gallery@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "gallery@2x.png"; path = "Resources/Images/gallery@2x.png"; sourceTree = ""; }; + B2CCCE341CFC286C00C1DB59 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logo.png; path = Resources/Images/logo.png; sourceTree = ""; }; + B2CCCE351CFC286C00C1DB59 /* settings_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = settings_icon.png; path = Resources/Images/settings_icon.png; sourceTree = ""; }; + B2CCCE361CFC286C00C1DB59 /* settings_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "settings_icon@2x.png"; path = "Resources/Images/settings_icon@2x.png"; sourceTree = ""; }; + B2CCCE371CFC286C00C1DB59 /* torch_off@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "torch_off@2x.png"; path = "Resources/Images/torch_off@2x.png"; sourceTree = ""; }; + B2CCCE381CFC286C00C1DB59 /* torchon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "torchon@2x.png"; path = "Resources/Images/torchon@2x.png"; sourceTree = ""; }; + B2CCCE481CFC4CD900C1DB59 /* beep-29.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = "beep-29.wav"; sourceTree = ""; }; + B2D3BEB71CEF3E4F00C439C6 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; + B2D3BEB81CEF3E4F00C439C6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + B2D3BEB91CEF3E4F00C439C6 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + B2D3BEBA1CEF3E4F00C439C6 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + B2D3BEBB1CEF3E4F00C439C6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + B2D3BEBC1CEF3E4F00C439C6 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + B2D3BEBD1CEF3E4F00C439C6 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + B2D3BEBE1CEF3E4F00C439C6 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + B2D3BEBF1CEF3E4F00C439C6 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + B2D3BEC01CEF3E4F00C439C6 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + B2D3BEC11CEF3E4F00C439C6 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; + B2D3BEC21CEF3E4F00C439C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + B2D3BEC31CEF3E4F00C439C6 /* libc++.tbd */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + B2D3BEC41CEF3E4F00C439C6 /* libxml2.tbd */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = usr/lib/libxml2.tbd; sourceTree = SDKROOT; }; + B2D3BEC51CEF3E4F00C439C6 /* libz.tbd */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + B2D3BEC61CEF3E4F00C439C6 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + B2D3BEC71CEF3E4F00C439C6 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + B2D3BEC81CEF3E4F00C439C6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + B2D3BEE71CEF43DB00C439C6 /* Mobile-Barcode-Demo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Mobile-Barcode-Demo-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; + B2D3BEEC1CEF495D00C439C6 /* PreviewBarcodeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreviewBarcodeViewController.swift; sourceTree = ""; }; + B2E5144A1D2148E800D17BAE /* AboutCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutCell.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B208E25D1CEF3BEB0053F137 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B280628F1D20FBE5009DD03D /* MobileSDK.framework in Frameworks */, + B2D3BECE1CEF3E4F00C439C6 /* MobileCoreServices.framework in Frameworks */, + B2D3BED11CEF3E4F00C439C6 /* UIKit.framework in Frameworks */, + B2D3BED01CEF3E4F00C439C6 /* Security.framework in Frameworks */, + B2D3BED91CEF3E4F00C439C6 /* libxml2.tbd in Frameworks */, + B2D3BEDA1CEF3E4F00C439C6 /* libz.tbd in Frameworks */, + B2D3BED81CEF3E4F00C439C6 /* libc++.tbd in Frameworks */, + B2D3BEDB1CEF3E4F00C439C6 /* SystemConfiguration.framework in Frameworks */, + B2D3BED51CEF3E4F00C439C6 /* CoreMotion.framework in Frameworks */, + B2D3BEDD1CEF3E4F00C439C6 /* QuartzCore.framework in Frameworks */, + B2D3BED41CEF3E4F00C439C6 /* CoreMedia.framework in Frameworks */, + B2D3BED21CEF3E4F00C439C6 /* CoreGraphics.framework in Frameworks */, + B2D3BED31CEF3E4F00C439C6 /* CoreLocation.framework in Frameworks */, + B2D3BEDC1CEF3E4F00C439C6 /* AVFoundation.framework in Frameworks */, + B2D3BED71CEF3E4F00C439C6 /* Foundation.framework in Frameworks */, + B2D3BECC1CEF3E4F00C439C6 /* AssetsLibrary.framework in Frameworks */, + B2D3BECD1CEF3E4F00C439C6 /* AudioToolbox.framework in Frameworks */, + B2D3BED61CEF3E4F00C439C6 /* CoreVideo.framework in Frameworks */, + B2D3BECF1CEF3E4F00C439C6 /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + B208E2571CEF3BEB0053F137 = { + isa = PBXGroup; + children = ( + B208E2621CEF3BEB0053F137 /* Mobile Barcode Demo */, + B208E2611CEF3BEB0053F137 /* Products */, + B2D3BEB61CEF3E4200C439C6 /* Frameworks */, + B2D3BE9A1CEF3DFA00C439C6 /* Resources */, + ); + sourceTree = ""; + }; + B208E2611CEF3BEB0053F137 /* Products */ = { + isa = PBXGroup; + children = ( + B208E2601CEF3BEB0053F137 /* Mobile Barcode Demo.app */, + ); + name = Products; + sourceTree = ""; + }; + B208E2621CEF3BEB0053F137 /* Mobile Barcode Demo */ = { + isa = PBXGroup; + children = ( + B2D3BE861CEF3CF000C439C6 /* Controllers */, + B208E2631CEF3BEB0053F137 /* AppDelegate.swift */, + B20B9DF61CF870A3003E12AD /* BarcodeTypes.swift */, + B20B9DEC1CF7107D003E12AD /* Settings.swift */, + B2D3BEE71CEF43DB00C439C6 /* Mobile-Barcode-Demo-Bridging-Header.h */, + B208E2671CEF3BEB0053F137 /* Main.storyboard */, + B208E26A1CEF3BEB0053F137 /* Assets.xcassets */, + B208E26C1CEF3BEB0053F137 /* LaunchScreen.storyboard */, + B27BD43E1D38B35C00943531 /* eula.rtf */, + B208E26F1CEF3BEB0053F137 /* Info.plist */, + ); + path = "Mobile Barcode Demo"; + sourceTree = ""; + }; + B2D3BE861CEF3CF000C439C6 /* Controllers */ = { + isa = PBXGroup; + children = ( + B20B9DE01CF71062003E12AD /* BaseSettingsViewController.swift */, + B20B9DEE1CF71102003E12AD /* SettingsTableViewController.swift */, + B20B9DE21CF71062003E12AD /* BarcodeCaptureViewController.swift */, + B20B9DE31CF71062003E12AD /* CommonViewController.swift */, + B20B9DE41CF71062003E12AD /* HomeViewController.swift */, + B2D3BEEC1CEF495D00C439C6 /* PreviewBarcodeViewController.swift */, + B29531931D2A817100429143 /* BarcodeInfoCell.swift */, + B20B9DF01CF83DED003E12AD /* AboutViewController.swift */, + B2E5144A1D2148E800D17BAE /* AboutCell.swift */, + B20B9DFA1CF87275003E12AD /* BarcodesSettingsViewController.swift */, + B2092DB31D24F13200479F14 /* LicenseAgreementCell.swift */, + B2092DB41D24F13200479F14 /* LicenseAgreementViewController.swift */, + ); + name = Controllers; + sourceTree = ""; + }; + B2D3BE9A1CEF3DFA00C439C6 /* Resources */ = { + isa = PBXGroup; + children = ( + B2CCCE481CFC4CD900C1DB59 /* beep-29.wav */, + B2D3BE9B1CEF3E0300C439C6 /* Images */, + ); + name = Resources; + path = "Mobile Barcode Demo"; + sourceTree = ""; + }; + B2D3BE9B1CEF3E0300C439C6 /* Images */ = { + isa = PBXGroup; + children = ( + B2CCCE2C1CFC286C00C1DB59 /* bluecircle.png */, + B2CCCE2D1CFC286C00C1DB59 /* bluecircle@2x.png */, + B2CCCE2E1CFC286C00C1DB59 /* camera_button_normal.png */, + B2CCCE2F1CFC286C00C1DB59 /* camera@2x.png */, + B2CCCE301CFC286C00C1DB59 /* close@2x.png */, + B2CCCE311CFC286C00C1DB59 /* email.png */, + B2CCCE321CFC286C00C1DB59 /* email@2x.png */, + B2CCCE331CFC286C00C1DB59 /* gallery@2x.png */, + B2CCCE341CFC286C00C1DB59 /* logo.png */, + B2CCCE351CFC286C00C1DB59 /* settings_icon.png */, + B2CCCE361CFC286C00C1DB59 /* settings_icon@2x.png */, + B2CCCE371CFC286C00C1DB59 /* torch_off@2x.png */, + B2CCCE381CFC286C00C1DB59 /* torchon@2x.png */, + ); + name = Images; + sourceTree = ""; + }; + B2D3BEB61CEF3E4200C439C6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + B280628C1D20FBE5009DD03D /* MobileSDK.framework */, + B280628D1D20FBE5009DD03D /* SDKStrings.bundle */, + B280628E1D20FBE5009DD03D /* uiimages.bundle */, + B2D3BEB71CEF3E4F00C439C6 /* AssetsLibrary.framework */, + B2D3BEB81CEF3E4F00C439C6 /* AudioToolbox.framework */, + B2D3BEB91CEF3E4F00C439C6 /* MobileCoreServices.framework */, + B2D3BEBA1CEF3E4F00C439C6 /* OpenGLES.framework */, + B2D3BEBB1CEF3E4F00C439C6 /* Security.framework */, + B2D3BEBC1CEF3E4F00C439C6 /* UIKit.framework */, + B2D3BEBD1CEF3E4F00C439C6 /* CoreGraphics.framework */, + B2D3BEBE1CEF3E4F00C439C6 /* CoreLocation.framework */, + B2D3BEBF1CEF3E4F00C439C6 /* CoreMedia.framework */, + B2D3BEC01CEF3E4F00C439C6 /* CoreMotion.framework */, + B2D3BEC11CEF3E4F00C439C6 /* CoreVideo.framework */, + B2D3BEC21CEF3E4F00C439C6 /* Foundation.framework */, + B2D3BEC31CEF3E4F00C439C6 /* libc++.tbd */, + B2D3BEC41CEF3E4F00C439C6 /* libxml2.tbd */, + B2D3BEC51CEF3E4F00C439C6 /* libz.tbd */, + B2D3BEC61CEF3E4F00C439C6 /* SystemConfiguration.framework */, + B2D3BEC71CEF3E4F00C439C6 /* AVFoundation.framework */, + B2D3BEC81CEF3E4F00C439C6 /* QuartzCore.framework */, + ); + name = Frameworks; + path = "Mobile Barcode Demo"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + B208E25F1CEF3BEB0053F137 /* Mobile Barcode Demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = B208E2881CEF3BEB0053F137 /* Build configuration list for PBXNativeTarget "Mobile Barcode Demo" */; + buildPhases = ( + B208E25C1CEF3BEB0053F137 /* Sources */, + B208E25D1CEF3BEB0053F137 /* Frameworks */, + B208E25E1CEF3BEB0053F137 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Mobile Barcode Demo"; + productName = "Mobile Barcode Demo"; + productReference = B208E2601CEF3BEB0053F137 /* Mobile Barcode Demo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + B208E2581CEF3BEB0053F137 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0730; + ORGANIZATIONNAME = Atalasoft; + TargetAttributes = { + B208E25F1CEF3BEB0053F137 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = B9C7GRQCYQ; + }; + }; + }; + buildConfigurationList = B208E25B1CEF3BEB0053F137 /* Build configuration list for PBXProject "Mobile Barcode Demo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = B208E2571CEF3BEB0053F137; + productRefGroup = B208E2611CEF3BEB0053F137 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + B208E25F1CEF3BEB0053F137 /* Mobile Barcode Demo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + B208E25E1CEF3BEB0053F137 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B2CCCE431CFC286C00C1DB59 /* settings_icon@2x.png in Resources */, + B27BD43F1D38B35C00943531 /* eula.rtf in Resources */, + B2CCCE491CFC4CD900C1DB59 /* beep-29.wav in Resources */, + B2CCCE411CFC286C00C1DB59 /* logo.png in Resources */, + B2CCCE3D1CFC286C00C1DB59 /* close@2x.png in Resources */, + B2CCCE451CFC286C00C1DB59 /* torchon@2x.png in Resources */, + B208E26E1CEF3BEB0053F137 /* LaunchScreen.storyboard in Resources */, + B2CCCE3B1CFC286C00C1DB59 /* camera_button_normal.png in Resources */, + B2CCCE3F1CFC286C00C1DB59 /* email@2x.png in Resources */, + B2CCCE391CFC286C00C1DB59 /* bluecircle.png in Resources */, + B2CCCE441CFC286C00C1DB59 /* torch_off@2x.png in Resources */, + B2CCCE3C1CFC286C00C1DB59 /* camera@2x.png in Resources */, + B2CCCE3A1CFC286C00C1DB59 /* bluecircle@2x.png in Resources */, + B2CCCE401CFC286C00C1DB59 /* gallery@2x.png in Resources */, + B208E26B1CEF3BEB0053F137 /* Assets.xcassets in Resources */, + B2CCCE421CFC286C00C1DB59 /* settings_icon.png in Resources */, + B2CCCE3E1CFC286C00C1DB59 /* email.png in Resources */, + B208E2691CEF3BEB0053F137 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + B208E25C1CEF3BEB0053F137 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B2092DB51D24F13200479F14 /* LicenseAgreementCell.swift in Sources */, + B20B9DE61CF71062003E12AD /* BaseSettingsViewController.swift in Sources */, + B20B9DE81CF71062003E12AD /* BarcodeCaptureViewController.swift in Sources */, + B2092DB61D24F13200479F14 /* LicenseAgreementViewController.swift in Sources */, + B20B9DF11CF83DED003E12AD /* AboutViewController.swift in Sources */, + B20B9DFB1CF87275003E12AD /* BarcodesSettingsViewController.swift in Sources */, + B2D3BEED1CEF495D00C439C6 /* PreviewBarcodeViewController.swift in Sources */, + B20B9DEA1CF71062003E12AD /* HomeViewController.swift in Sources */, + B20B9DF71CF870A3003E12AD /* BarcodeTypes.swift in Sources */, + B20B9DEF1CF71102003E12AD /* SettingsTableViewController.swift in Sources */, + B20B9DED1CF7107D003E12AD /* Settings.swift in Sources */, + B29531941D2A817100429143 /* BarcodeInfoCell.swift in Sources */, + B20B9DE91CF71062003E12AD /* CommonViewController.swift in Sources */, + B208E2641CEF3BEB0053F137 /* AppDelegate.swift in Sources */, + B2E5144B1D2148E800D17BAE /* AboutCell.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + B208E2671CEF3BEB0053F137 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + B208E2681CEF3BEB0053F137 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + B208E26C1CEF3BEB0053F137 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + B208E26D1CEF3BEB0053F137 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + B208E2861CEF3BEB0053F137 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE = "5b8c5cfc-5eb4-46af-9919-a160838d9512"; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + B208E2871CEF3BEB0053F137 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + PROVISIONING_PROFILE = "5b8c5cfc-5eb4-46af-9919-a160838d9512"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B208E2891CEF3BEB0053F137 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/../MobileSDK", + "$(PROJECT_DIR)/../MobileSDK/uiimages.bundle", + ); + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../MobileSDK/MobileSDK.framework/Headers"; + INFOPLIST_FILE = "Mobile Barcode Demo/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.kofax.Mobile-Barcode-Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Mobile-Barcode-Demo-Bridging-Header.h"; + }; + name = Debug; + }; + B208E28A1CEF3BEB0053F137 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/../MobileSDK", + "$(PROJECT_DIR)/../MobileSDK/uiimages.bundle", + ); + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../MobileSDK/MobileSDK.framework/Headers"; + INFOPLIST_FILE = "Mobile Barcode Demo/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.kofax.Mobile-Barcode-Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Mobile-Barcode-Demo-Bridging-Header.h"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + B208E25B1CEF3BEB0053F137 /* Build configuration list for PBXProject "Mobile Barcode Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B208E2861CEF3BEB0053F137 /* Debug */, + B208E2871CEF3BEB0053F137 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B208E2881CEF3BEB0053F137 /* Build configuration list for PBXNativeTarget "Mobile Barcode Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B208E2891CEF3BEB0053F137 /* Debug */, + B208E28A1CEF3BEB0053F137 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = B208E2581CEF3BEB0053F137 /* Project object */; +} diff --git a/Barcode Demo/Mobile Barcode Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Barcode Demo/Mobile Barcode Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..518aab2 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Barcode Demo/Mobile Barcode Demo.xcodeproj/xcshareddata/xcschemes/Mobile Barcode Demo.xcscheme b/Barcode Demo/Mobile Barcode Demo.xcodeproj/xcshareddata/xcschemes/Mobile Barcode Demo.xcscheme new file mode 100644 index 0000000..3af9255 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo.xcodeproj/xcshareddata/xcschemes/Mobile Barcode Demo.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Barcode Demo/Mobile Barcode Demo/AboutCell.swift b/Barcode Demo/Mobile Barcode Demo/AboutCell.swift new file mode 100644 index 0000000..7422d91 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/AboutCell.swift @@ -0,0 +1,123 @@ +// +// AboutCell.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 23/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class AboutCell: UITableViewCell { + + @IBOutlet var versionLabel: UILabel! + @IBOutlet var appNameLabel: UILabel! + @IBOutlet var text1Label: UITextView! + @IBOutlet var text2Label: UITextView! + @IBOutlet var emailLabel: UITextView! + + var linkTapGestureRecognizer: UITapGestureRecognizer! + + func makeLink(text: NSMutableAttributedString, linkText: String, linkUrl: String) { + + let linkRange = (text.string as NSString).rangeOfString(linkText) + text.addAttribute(NSLinkAttributeName, value: linkUrl, range: linkRange) + } + + func setupAboutData() { + + if linkTapGestureRecognizer == nil { + linkTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleLinkTapGestureRecognizer)) + linkTapGestureRecognizer.cancelsTouchesInView = false + linkTapGestureRecognizer.delaysTouchesBegan = false + linkTapGestureRecognizer.delaysTouchesEnded = false + addGestureRecognizer(linkTapGestureRecognizer) + } + + let appVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"]; + if let ver = appVersion { + versionLabel.text = "Version \(ver)" + } + + appNameLabel.text = "Atalasoft MobileImage Barcode SDK app" + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.alignment = NSTextAlignment.Justified + + let text1 = NSMutableAttributedString(string: "This app is for app developers to see what they can build with the Atalasoft MobileImage barcode SDK for iOS/Xcode. The technology can recognize one or many barcodes on the screen. This app is not for consumers looking to check store prices.", attributes: [ + NSParagraphStyleAttributeName: paragraphStyle, + NSBaselineOffsetAttributeName: NSNumber(float: 0) + ]) + text1Label.attributedText = text1; + + let text2 = NSMutableAttributedString(string: "To build your own document capture, processing, or viewing app - visit Atalasoft and grab a 30-day evaluation copy for yourself. We'll provide the tools and the support you need to get started!", attributes: [ + NSParagraphStyleAttributeName: paragraphStyle, + NSBaselineOffsetAttributeName: NSNumber(float: 0) + ]) + + makeLink(text2, linkText: "Atalasoft", linkUrl: "http://hubs.ly/H03pzS80") + text2Label.attributedText = text2 + + + let email = NSMutableAttributedString(string: "sales@atalasoft.com") + let emailUrl = "sales@atalasoft.com" + + makeLink(email, linkText: emailUrl, linkUrl: "mailto:sales@atalasoft.com") + emailLabel.attributedText = email + } + + func handleLinkTapGestureRecognizer(tapRecognizer: UITapGestureRecognizer) { + + let view = tapRecognizer.view + let location = tapRecognizer.locationInView(view) + + var linkStr = "" + + if CGRectContainsPoint(text2Label.frame, location) { + linkStr = getLinkOnText(tapRecognizer.locationInView(text2Label), textView: text2Label) + } else if CGRectContainsPoint(emailLabel.frame, location) { + linkStr = getLinkOnText(tapRecognizer.locationInView(emailLabel), textView: emailLabel) + } + + if !linkStr.isEmpty { + let url: NSURL! = NSURL(string: linkStr) + UIApplication.sharedApplication().openURL(url) + } + } + + func getLinkOnText(location: CGPoint, textView: UITextView) -> String { + + var textPosition1 = textView.closestPositionToPoint(location) + var textPosition2:UITextPosition? + if let _ = textPosition1 { + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + if let _ = textPosition2 { + textPosition1 = textView.positionFromPosition(textPosition1!, offset: -1) + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + } else { + return "" + } + } + + let range = textView.textRangeFromPosition(textPosition1!, toPosition: textPosition2!) + let startOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.start) + let endOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.end) + let offsetRange = NSMakeRange(startOffset, endOffset - startOffset) + if offsetRange.location == NSNotFound || offsetRange.length == 0 { + return "" + } + + if NSMaxRange(offsetRange) > textView.attributedText.length { + return "" + } + + let attributedSubstring = textView.attributedText .attributedSubstringFromRange(offsetRange) + let link = attributedSubstring.attribute(NSLinkAttributeName, atIndex: 0, effectiveRange: nil) + + if let linkStr = link { + return linkStr as! String + } + + return "" + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/AboutViewController.swift b/Barcode Demo/Mobile Barcode Demo/AboutViewController.swift new file mode 100644 index 0000000..a436f16 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/AboutViewController.swift @@ -0,0 +1,43 @@ +// +// AboutViewController.swift +// Mobile Barcode Demo +// +// Created by Michael Chernikov on 27/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class AboutViewController: UITableViewController { + + static let cellIdentifier = "AboutCell" + + override func viewDidLoad() { + super.viewDidLoad() + + tableView.estimatedRowHeight = 100.0; + tableView.rowHeight = UITableViewAutomaticDimension; + + tableView.setNeedsLayout() + tableView.layoutIfNeeded() + } + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell: AboutCell! = tableView.dequeueReusableCellWithIdentifier(AboutViewController.cellIdentifier) as! AboutCell! + + cell.setupAboutData() + + cell.selectionStyle = .None + + return cell + } + +} diff --git a/Barcode Demo/Mobile Barcode Demo/AppDelegate.swift b/Barcode Demo/Mobile Barcode Demo/AppDelegate.swift new file mode 100644 index 0000000..b8e4e38 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/AppDelegate.swift @@ -0,0 +1,47 @@ +// +// AppDelegate.swift +// Mobile Barcode Demo +// +// Created by Michael Chernikov on 20/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + return true + } + + func applicationWillResignActive(application: UIApplication) { + } + + func applicationDidEnterBackground(application: UIApplication) { + } + + func applicationWillEnterForeground(application: UIApplication) { + } + + func applicationDidBecomeActive(application: UIApplication) { + Settings.validateLimitation() + if Settings.ExceedLimitation { + let alert = UIAlertController(title: "Error", message: "You have reached your monthly usage limit.", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default) { action -> Void in }) + + if let wnd = window { + wnd.rootViewController?.presentViewController(alert, animated: true, completion: nil) + } + } + } + + func applicationWillTerminate(application: UIApplication) { + } + + +} + diff --git a/Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..af8a99e --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,40 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "barcodeAppIcon-120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "barcodeAppIcon-180.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/barcodeAppIcon-120.png b/Barcode Demo/Mobile Barcode Demo/Assets.xcassets/AppIcon.appiconset/barcodeAppIcon-120.png new file mode 100644 index 0000000000000000000000000000000000000000..052a623813f33c9f253804374ce4e75e8b436bee GIT binary patch literal 13237 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 Bool { + return true; + } + + func initializeCaptureControl() { + + if barcodeControlInitialized == false { + + captureControlView.delegate = self; + captureControlView.guidingLine = kfxKUIGuidingLineLandscape + } + + var symbologies = [Int]() + for (index,value) in settings.barcodes.enumerate() { + if value { + symbologies.append(index); + } + } + + captureControlView.symbologies = symbologies as [AnyObject] + + captureControlView.readBarcode() + } + + @IBAction func OnCancelButtonPressed() { + self.navigationController?.popViewControllerAnimated(true) + } + + func barcodeCaptureControl(barcodeCaptureControl: kfxKUIBarCodeCaptureControl!, + barcodeFound result : kfxKEDBarcodeResult, image:kfxKEDImage) + { + let barcodeInfo = BarcodeInfo() + barcodeInfo.barcode = result + barcodeInfo.image = image + + if let player = barcodeDetectedPlayer { + let volume = AVAudioSession.sharedInstance().outputVolume + player.volume = volume + do { + try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient) + } catch {} + player.play() + } + + dispatch_async(dispatch_get_main_queue(), { + + Settings.updateLimitationCounter() + + self.performSegueWithIdentifier(BarcodeCaptureViewController.SeguePreviewImageViewController, sender: barcodeInfo) + }) + } + + @IBAction func OnTorchButtonPressed() { + if captureDevice.hasFlash && captureDevice.hasTorch { + do { + try captureDevice.lockForConfiguration() + captureDevice.torchMode = captureDevice.torchMode == .Off ? .On : .Off + captureDevice.unlockForConfiguration() + } catch { + print("Unable to turn on the torch") + } + + torchButton.setImage(captureDevice.torchMode == .On ? torchOnImage : torchOffImage, forState: .Normal) + } + } + + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + if (segue.identifier == BarcodeCaptureViewController.SeguePreviewImageViewController) + { + let previewViewController: PreviewBarcodeViewController = segue.destinationViewController as! PreviewBarcodeViewController + let barcodeInfo = sender as! BarcodeInfo + + previewViewController.barcodeInfo = barcodeInfo + } + } + + func imageCaptureControl(imageCaptureControl: kfxKUIImageCaptureControl!, pageDetected previewImage: UIImage!, pageCoordinates bound: kfxKEDBoundingTetragon!) { + OnCancelButtonPressed() + } + +} diff --git a/Barcode Demo/Mobile Barcode Demo/BarcodeInfoCell.swift b/Barcode Demo/Mobile Barcode Demo/BarcodeInfoCell.swift new file mode 100644 index 0000000..09467b1 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/BarcodeInfoCell.swift @@ -0,0 +1,26 @@ +// +// BarcodeInfoCell.swift +// Mobile Barcode Demo +// +// Created by Michael Chernikov on 04/07/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class BarcodeInfoCell: UITableViewCell { + @IBOutlet var barcodeInfoLabel : UILabel! + @IBOutlet var barcodeValue : UITextView! + + func setupBarcodeInfoCell(bcInfo: BarcodeInfo) { + barcodeInfoLabel.text = BarcodeTypes.BarcodeTypeToString(bcInfo.barcode.type) + + var value = bcInfo.barcode.value + if bcInfo.barcode.dataFormat == KEDBarcodeDataFormats.init(2) { + let data = NSData(base64EncodedString: bcInfo.barcode.value, options: NSDataBase64DecodingOptions(rawValue: 0)) + value = String(data: data!, encoding: NSUTF8StringEncoding)! + } + + barcodeValue.text = value + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/BarcodeTypes.swift b/Barcode Demo/Mobile Barcode Demo/BarcodeTypes.swift new file mode 100644 index 0000000..65b03f6 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/BarcodeTypes.swift @@ -0,0 +1,91 @@ +// +// BarcodeTypes.swift +// Mobile Barcode Demo +// +// Created by Michael Chernikov on 27/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import Foundation + +class BarcodeTypes { + + static let SymbologiesCount = 11 + + static let SymbologyCode39 = "Code39" + static let SymbologyPdf417 = "PDF417" + static let SymbologyQRCode = "QR Code" + static let SymbologyDataMatrix = "DataMatrix" + static let SymbologyCode128 = "Code128" + static let SymbologyCode25 = "Code25" + static let SymbologyEAN = "EAN" + static let SymbologyUPC = "UPC" + static let SymbologyCodabar = "Codabar" + static let SymbologyAztec = "Aztec" + static let SymbologyCode93 = "Code93" + static let SymbologyPostNet = "PostNet" + + static let SymbologyUnknown = "Unknown" + + static func BarcodeTypeToString(barcodeType : KEDBarcodeTypes) -> String { + var barcodeTypeStr = BarcodeTypes.SymbologyUnknown + + if barcodeType == BARCODE_QR { + barcodeTypeStr = BarcodeTypes.SymbologyQRCode + } else if barcodeType == BARCODE_EAN { + barcodeTypeStr = BarcodeTypes.SymbologyEAN + } else if barcodeType == BARCODE_PDF417 { + barcodeTypeStr = BarcodeTypes.SymbologyPdf417 + } else if barcodeType == BARCODE_CODE39 { + barcodeTypeStr = BarcodeTypes.SymbologyCode39 + } else if barcodeType == BARCODE_DATAMATRIX { + barcodeTypeStr = BarcodeTypes.SymbologyDataMatrix + } else if barcodeType == BARCODE_CODE128 { + barcodeTypeStr = BarcodeTypes.SymbologyCode128 + } else if barcodeType == BARCODE_CODE25 { + barcodeTypeStr = BarcodeTypes.SymbologyCode25 + } else if barcodeType == BARCODE_UPC { + barcodeTypeStr = BarcodeTypes.SymbologyUPC + } else if barcodeType == BARCODE_CODABAR { + barcodeTypeStr = BarcodeTypes.SymbologyCodabar + } else if barcodeType == BARCODE_AZTEC { + barcodeTypeStr = BarcodeTypes.SymbologyAztec + } else if barcodeType == BARCODE_CODE93 { + barcodeTypeStr = BarcodeTypes.SymbologyCode93 + } else if barcodeType == BARCODE_POSTNET { + barcodeTypeStr = BarcodeTypes.SymbologyPostNet + } + + return barcodeTypeStr + } + + static func BarcodeSymbologyToString(symbology: kfxKUISymbology) -> String { + var symbologyStr = BarcodeTypes.SymbologyUnknown + + if symbology == kfxKUISymbologyCode39 { + symbologyStr = BarcodeTypes.SymbologyCode39 + } else if symbology == kfxKUISymbologyPdf417 { + symbologyStr = BarcodeTypes.SymbologyPdf417 + } else if symbology == kfxKUISymbologyQR { + symbologyStr = BarcodeTypes.SymbologyQRCode + } else if symbology == kfxKUISymbologyDataMatrix { + symbologyStr = BarcodeTypes.SymbologyDataMatrix + } else if symbology == kfxKUISymbologyCode128 { + symbologyStr = BarcodeTypes.SymbologyCode128 + } else if symbology == kfxKUISymbologyCode25 { + symbologyStr = BarcodeTypes.SymbologyCode25 + } else if symbology == kfxKUISymbologyEAN { + symbologyStr = BarcodeTypes.SymbologyEAN + } else if symbology == kfxKUISymbologyUPC { + symbologyStr = BarcodeTypes.SymbologyUPC + } else if symbology == kfxKUISymbologyCodabar { + symbologyStr = BarcodeTypes.SymbologyCodabar + } else if symbology == kfxKUISymbologyAztec { + symbologyStr = BarcodeTypes.SymbologyAztec + } else if symbology == kfxKUISymbologyCode93{ + symbologyStr = BarcodeTypes.SymbologyCode93 + } + + return symbologyStr + } +} \ No newline at end of file diff --git a/Barcode Demo/Mobile Barcode Demo/BarcodesSettingsViewController.swift b/Barcode Demo/Mobile Barcode Demo/BarcodesSettingsViewController.swift new file mode 100644 index 0000000..76d85ba --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/BarcodesSettingsViewController.swift @@ -0,0 +1,63 @@ +// +// BarcodesSettingsViewController.swift +// Mobile Barcode Demo +// +// Created by Michael Chernikov on 27/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class BarcodesSettingsViewController: BaseSettingsViewController { + + var switches : [UISwitch?]! + + override func viewDidLoad() { + super.viewDidLoad() + + switches = [UISwitch?](count: BarcodeTypes.SymbologiesCount, repeatedValue: nil) + } + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1; + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return BarcodeTypes.SymbologiesCount + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(SettingsTableViewController.cellIdentifier) + + if cell == nil { + cell = UITableViewCell(style: .Default, reuseIdentifier: SettingsTableViewController.cellIdentifier) + } + + assert(indexPath.section == 0) + + cell.textLabel?.font = UIFont(name:CellsFontName, size:15) + + var switchControl = switches?[indexPath.row] + if switchControl == nil { + switchControl = createSwitchWithTag(indexPath.row, value: BarcodeTypes.BarcodeSymbologyToString(kfxKUISymbology(UInt32(indexPath.row)))) + cell.accessoryView = switchControl + switchControl?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = BarcodeTypes.BarcodeSymbologyToString(kfxKUISymbology(UInt32(indexPath.row))) + + switches?[indexPath.row] = switchControl + } + + cell.accessoryView = switchControl + switchControl?.on = settings.barcodes[indexPath.row] + + cell.selectionStyle = .None + + return cell + } + + @IBAction func switchValueChanged(sender: UISwitch) { + + let index = sender.tag + settings.barcodes[index] = !settings.barcodes[index] + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/Base.lproj/LaunchScreen.storyboard b/Barcode Demo/Mobile Barcode Demo/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..0cfee76 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Barcode Demo/Mobile Barcode Demo/Base.lproj/Main.storyboard b/Barcode Demo/Mobile Barcode Demo/Base.lproj/Main.storyboard new file mode 100644 index 0000000..1ad36c6 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/Base.lproj/Main.storyboard @@ -0,0 +1,403 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Barcode Demo/Mobile Barcode Demo/BaseSettingsViewController.swift b/Barcode Demo/Mobile Barcode Demo/BaseSettingsViewController.swift new file mode 100644 index 0000000..461c141 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/BaseSettingsViewController.swift @@ -0,0 +1,62 @@ +// +// BaseSettingsViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 19/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class BaseSettingsViewController: UITableViewController { + + var settings : Settings = Settings() + + let CellsFontName = "HelveticaNeue" + let CellsFontSize : CGFloat = 13 + + override func viewWillAppear(animated: Bool) { + settings.load() + + super.viewWillAppear(animated) + } + + override func viewWillDisappear(animated: Bool) { + settings.save() + + super.viewWillDisappear(animated) + } + + + func createSwitchWithTag(tag: Int, value: AnyObject) -> UISwitch{ + let newSwitch = UISwitch() + newSwitch.on = value.boolValue + newSwitch.tag = tag + return newSwitch + } + + func createTextFieldWithTag(tag: Int, frame: CGRect, placeholder: String, text:String) -> UITextField { + let textField = UITextField() + textField.tag = tag + textField.font = UIFont(name: CellsFontName, size: CellsFontSize) + textField.borderStyle = .None + textField.autocorrectionType = .No + textField.returnKeyType = .Done + textField.placeholder = placeholder + textField.textAlignment = .Right + textField.clearButtonMode = .WhileEditing + textField.text = text + textField.frame = frame + return textField + } + + func createSegmentedControlWithTag(tag: Int, items: NSArray, selectedSegment: NSInteger) -> UISegmentedControl{ + let segmentControl = UISegmentedControl(items: items as [AnyObject]) + let dict : Dictionary = [NSFontAttributeName : UIFont(name: CellsFontName, size:15.0)!] + segmentControl.setTitleTextAttributes(dict, forState: .Normal) + segmentControl.selectedSegmentIndex = selectedSegment; + segmentControl.tag = tag; + return segmentControl; + } + +} diff --git a/Barcode Demo/Mobile Barcode Demo/CommonViewController.swift b/Barcode Demo/Mobile Barcode Demo/CommonViewController.swift new file mode 100644 index 0000000..45cd55d --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/CommonViewController.swift @@ -0,0 +1,26 @@ +// +// CommonViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 14/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import Foundation +import UIKit + +extension UIButton { + func ConfigureButton(image imageName: String) { + self.setImage(UIImage(named: imageName), forState: .Normal) + self.setBackgroundImage(UIImage(named: "bluecircle.png"), forState: .Normal) + self.layer.cornerRadius = 30; + self.backgroundColor = UIColor(red: 0, green: 0x79/255, blue: 0xc2/255, alpha: 1.0) //"#0079C2" + } +} + +class CommonViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} \ No newline at end of file diff --git a/Barcode Demo/Mobile Barcode Demo/HomeViewController.swift b/Barcode Demo/Mobile Barcode Demo/HomeViewController.swift new file mode 100644 index 0000000..c7b634c --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/HomeViewController.swift @@ -0,0 +1,102 @@ +// +// HomeViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class HomeViewController: UIViewController { + + var mobileSdkInitialized: Bool = false + + @IBOutlet var cameraButton : UIButton! + + static let evrsLIcense = PROCESS_PAGE_SDK_LICENSE + + override func viewDidLoad() { + super.viewDidLoad() + + if !mobileSdkInitialized + { + mobileSdkInitialized = true + + let license = kfxKUTLicensing() + let lic = KFX_ERROR_IMAGE_PROCESSOR(rawValue: UInt32(license.setMobileSDKLicense(HomeViewController.evrsLIcense))) + + if lic == KMC_IP_LICENSE_EXPIRED || lic == KMC_IP_LICENSE_INVALID + { + showErrorMessage(lic) + } + } + + NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(applicationIsActive), name: UIApplicationDidBecomeActiveNotification, object: nil) + + cameraButton.ConfigureButton(image: "camera_button_normal.png") + + navigationItem.title = "MobileImage BarCode" + } + + override func viewWillAppear(animated: Bool) { + super.viewWillAppear(animated) + + cameraButton.userInteractionEnabled = !Settings.ExceedLimitation + navigationController?.setNavigationBarHidden(false, animated: true) + } + + func applicationIsActive(notification: NSNotification) { + cameraButton.userInteractionEnabled = !Settings.ExceedLimitation + } + + func showErrorMessage(licenseErrorCode: KFX_ERROR_IMAGE_PROCESSOR) { + let errorCode = Int32(licenseErrorCode.rawValue) + let message = kfxError.findErrMsg(errorCode) + let description = kfxError.findErrDesc(errorCode) + + var alertTitle: String + var alertDescription: String + + let split = message.characters.split {$0 == ":"}.map(String.init) + + if split.count == 2 + { + alertTitle = split[0] + alertDescription = String(format: "%@\n\n%@", split[1], description) + + } + else if split.count > 2 + { + var info = ""; + + for item in split { + info = info.stringByAppendingFormat("%@", item) + } + + alertTitle = split[0] + alertDescription = String(format: "%@\n\n%@", info, description) + } + else + { + alertTitle = "License Error!!!" + alertDescription = String(format: "%@\n\n%@", message, description) + + } + + let alert = UIAlertController(title: alertTitle, message: alertDescription, preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default) { action -> Void in }) + self.presentViewController(alert, animated: true, completion: nil) + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + let backItem = UIBarButtonItem() + backItem.title = "Back" + navigationItem.backBarButtonItem = backItem + } + +} diff --git a/Barcode Demo/Mobile Barcode Demo/Info.plist b/Barcode Demo/Mobile Barcode Demo/Info.plist new file mode 100644 index 0000000..d86b65d --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/Info.plist @@ -0,0 +1,40 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + MobileImage + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + + diff --git a/Barcode Demo/Mobile Barcode Demo/LicenseAgreementCell.swift b/Barcode Demo/Mobile Barcode Demo/LicenseAgreementCell.swift new file mode 100644 index 0000000..34b3d70 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/LicenseAgreementCell.swift @@ -0,0 +1,103 @@ +// +// LicenseAgreementCell.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 30/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class LicenseAgreementCell: UITableViewCell { + + @IBOutlet var license: UITextView! + + var linkTapGestureRecognizer: UITapGestureRecognizer! + + func makeLink(text: NSMutableAttributedString, linkText: String, linkUrl: String) { + + let linkRange = (text.string as NSString).rangeOfString(linkText) + text.addAttribute(NSLinkAttributeName, value: linkUrl, range: linkRange) + } + + func setupLicenseData() { + + if linkTapGestureRecognizer == nil { + linkTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleLinkTapGestureRecognizer)) + linkTapGestureRecognizer.cancelsTouchesInView = false + linkTapGestureRecognizer.delaysTouchesBegan = false + linkTapGestureRecognizer.delaysTouchesEnded = false + addGestureRecognizer(linkTapGestureRecognizer) + } + + let path = NSBundle.mainBundle().pathForResource("eula", ofType: "rtf") + do { + let text = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding) + + let eula = try NSMutableAttributedString(data: text.dataUsingEncoding(NSUTF8StringEncoding)!, options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType], documentAttributes: nil) + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.alignment = NSTextAlignment.Justified + paragraphStyle.hyphenationFactor = 1 + + eula.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, eula.length)) + makeLink(eula, linkText: "www.kofax.com", linkUrl: "http://www.kofax.com") + + license.attributedText = eula + } catch { + } + } + + func handleLinkTapGestureRecognizer(tapRecognizer: UITapGestureRecognizer) { + + let view = tapRecognizer.view + let location = tapRecognizer.locationInView(view) + + var linkStr = "" + + if CGRectContainsPoint(license.frame, location) { + linkStr = getLinkOnText(tapRecognizer.locationInView(license), textView: license) + } + + if !linkStr.isEmpty { + let url: NSURL! = NSURL(string: linkStr) + UIApplication.sharedApplication().openURL(url) + } + } + + func getLinkOnText(location: CGPoint, textView: UITextView) -> String { + + var textPosition1 = textView.closestPositionToPoint(location) + var textPosition2:UITextPosition? + if let _ = textPosition1 { + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + if let _ = textPosition2 { + textPosition1 = textView.positionFromPosition(textPosition1!, offset: -1) + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + } else { + return "" + } + } + + let range = textView.textRangeFromPosition(textPosition1!, toPosition: textPosition2!) + let startOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.start) + let endOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.end) + let offsetRange = NSMakeRange(startOffset, endOffset - startOffset) + if offsetRange.location == NSNotFound || offsetRange.length == 0 { + return "" + } + + if NSMaxRange(offsetRange) > textView.attributedText.length { + return "" + } + + let attributedSubstring = textView.attributedText .attributedSubstringFromRange(offsetRange) + let link = attributedSubstring.attribute(NSLinkAttributeName, atIndex: 0, effectiveRange: nil) + + if let linkStr = link { + return linkStr.absoluteString + } + + return "" + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/LicenseAgreementViewController.swift b/Barcode Demo/Mobile Barcode Demo/LicenseAgreementViewController.swift new file mode 100644 index 0000000..2a691a2 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/LicenseAgreementViewController.swift @@ -0,0 +1,43 @@ +// +// LicenseAgreementViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 30/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class LicenseAgreementViewController: UITableViewController { + + static let cellIdentifier = "LicenseCell" + + override func viewDidLoad() { + super.viewDidLoad() + + tableView.estimatedRowHeight = 100.0; + tableView.rowHeight = UITableViewAutomaticDimension; + + tableView.setNeedsLayout() + tableView.layoutIfNeeded() + } + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell: LicenseAgreementCell! = tableView.dequeueReusableCellWithIdentifier(LicenseAgreementViewController.cellIdentifier) as! LicenseAgreementCell! + + cell.setupLicenseData() + + cell.selectionStyle = .None + + return cell + } + +} diff --git a/Barcode Demo/Mobile Barcode Demo/PreviewBarcodeViewController.swift b/Barcode Demo/Mobile Barcode Demo/PreviewBarcodeViewController.swift new file mode 100644 index 0000000..f4d71f2 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/PreviewBarcodeViewController.swift @@ -0,0 +1,218 @@ +// +// PreviewImageViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 10/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit +import MessageUI + +class PreviewBarcodeViewController: UITableViewController, MFMailComposeViewControllerDelegate { + + static let barcodeImageCellIdentifier = "BarcodeImageCellIdentifier" + static let barcodeInfoCellIdentifier = "BarcodeInfoCell" + + var buttonsView : UIView! + @IBOutlet var retakeButton : UIButton! + @IBOutlet var sendMailButton : UIButton! + + var barcodeInfo : BarcodeInfo? + + override func viewDidLoad() { + super.viewDidLoad() + + retakeButton = UIButton(frame: CGRectMake(0, 5, 60, 60)) + sendMailButton = UIButton(frame: CGRectMake(0, 5, 60, 60)) + + retakeButton.ConfigureButton(image: "camera_button_normal.png") + retakeButton.addTarget(self, action: #selector(onRetakePicture), forControlEvents: .TouchUpInside) + sendMailButton.ConfigureButton(image: "email.png") + sendMailButton.addTarget(self, action: #selector(onSendImageByMail), forControlEvents: .TouchUpInside) + + let closeButton = UIBarButtonItem(title: "Close", style: .Done, target: self, action: #selector(onClosePreview)) + navigationItem.rightBarButtonItem = closeButton + + sendMailButton.enabled = MFMailComposeViewController.canSendMail() + + navigationItem.setHidesBackButton(true, animated: true); + + tableView.rowHeight = UITableViewAutomaticDimension + + tableView.separatorStyle = .None + + tableView.estimatedRowHeight = 70.0; + tableView.rowHeight = UITableViewAutomaticDimension; + + tableView.setNeedsLayout() + tableView.layoutIfNeeded() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + @IBAction func onSendImageByMail() { + + if !MFMailComposeViewController.canSendMail() { + return + } + + let mailComposeVC = MFMailComposeViewController() + mailComposeVC.mailComposeDelegate = self + + mailComposeVC.setSubject("Email Subject") + + var mailBody: String = "" + + if let bcInfo = barcodeInfo { + var barcodeValue = bcInfo.barcode.value + if bcInfo.barcode.dataFormat == KEDBarcodeDataFormats.init(2) { + let data = NSData(base64EncodedString: bcInfo.barcode.value, options: NSDataBase64DecodingOptions(rawValue: 0)) + barcodeValue = String(data: data!, encoding: NSUTF8StringEncoding)! + } + + mailBody = "" + + "" + + "

Barcode information:

" + + "

type: \(BarcodeTypes.BarcodeTypeToString(bcInfo.barcode.type))

" + + "

value: \(barcodeValue)

" + + "" + + "" + } else { + mailBody = String(format: "

Barcode information is unavailable.

") + } + + mailComposeVC.setMessageBody(mailBody, isHTML: true) + + self.presentViewController(mailComposeVC, animated: true, completion: nil) + + } + + @IBAction func onRetakePicture() { + navigationController?.popViewControllerAnimated(false) + } + + @IBAction func onClosePreview() { + let confirmAlert = UIAlertController(title: "", message: "Are you sure to close?", preferredStyle: .Alert) + confirmAlert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { (action) in + self.navigationController?.popToRootViewControllerAnimated(true) + })) + confirmAlert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: nil)) + + self.presentViewController(confirmAlert, animated: true, completion: nil) + } + + func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) { + switch (result) { + case MFMailComposeResultSent: + print("Email sent") + break + + default: + print("\(result)") + } + + self.dismissViewControllerAnimated(true, completion: nil) + } + + // MARK: - Table view data source + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 2 + } + + func createPreviewCell(tableView: UITableView) -> UITableViewCell { + var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(PreviewBarcodeViewController.barcodeImageCellIdentifier) + if cell == nil { + cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: PreviewBarcodeViewController.barcodeImageCellIdentifier) + } + + var image : UIImage? = nil + if let bcInfo = barcodeInfo where bcInfo.image != nil { + image = bcInfo.image?.getImageBitmap() + } + + let imageView = UIImageView(image: image) + + imageView.contentMode = .ScaleAspectFill + imageView.frame = CGRectMake(0,0,tableView.bounds.width, tableView.frame.height) + cell.addSubview(imageView) + var frame = cell.bounds + frame.size.height = tableView.frame.height + cell.bounds = frame + + return cell + } + + func createBarcodeInfoCell(tableView: UITableView) -> UITableViewCell { + let bcCell: BarcodeInfoCell! = tableView.dequeueReusableCellWithIdentifier(PreviewBarcodeViewController.barcodeInfoCellIdentifier) as! BarcodeInfoCell! + + if let bcInfo = barcodeInfo { + bcCell.setupBarcodeInfoCell(bcInfo) + } + + return bcCell + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + + var cell: UITableViewCell! + + if indexPath.row == 0 + { + cell = createBarcodeInfoCell(tableView) + } else { + cell = createPreviewCell(tableView) + } + + cell.accessoryType = .None + cell.selectionStyle = .None + + return cell + } + + override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { + if (indexPath.row == 0) { + return -1 + } + + return tableView.frame.height + } + + override func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { + if section == 0 { + return 70 + } + + return 0 + } + + override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { + if section == 0 { + if buttonsView == nil { + buttonsView = UIView(frame: CGRectMake(0, 0, tableView.frame.width, 70)) + + var retakeButtonFrame = retakeButton.frame + retakeButtonFrame.origin.x = buttonsView.frame.width / 4 - retakeButtonFrame.width / 2 + retakeButton.frame = retakeButtonFrame + + var sendMailButtonFrame = sendMailButton.frame + sendMailButtonFrame.origin.x = buttonsView.frame.width / 4 * 3 - sendMailButtonFrame.width / 2 + sendMailButton.frame = sendMailButtonFrame + + buttonsView.addSubview(retakeButton) + buttonsView.addSubview(sendMailButton) + } + + return buttonsView + } + + return nil + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/bluecircle.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/bluecircle.png new file mode 100755 index 0000000000000000000000000000000000000000..162a96a836cc35a09f82fe1dff16fa3a53c1cb02 GIT binary patch literal 2088 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 literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/camera@2x.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/camera@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..5fc5e2afc5210dfd95afdba68f3b91489d8a0214 GIT binary patch literal 6740 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 qy8!h*@S1OI2x591Rw3=>G+*ROa00000>G{% literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/email@2x.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/email@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..c115b2b1b0a47d741bf5d6923cba98743e54fb52 GIT binary patch literal 3329 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 LNkvXXu0mjfmiHdu literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/gallery@2x.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/gallery@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..ae0effd3fc24e70e028c852c7960b4ad00cbd936 GIT binary patch literal 7761 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 literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/logo.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..75be9d5334e46ac36b52d09572f5937873bb9316 GIT binary patch literal 7600 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 BX(s>x literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/settings_icon.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/settings_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..a3b3340e873c9f66da3b1cf0608261f2fa058e01 GIT binary patch literal 3652 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 literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/Resources/Images/torchon@2x.png b/Barcode Demo/Mobile Barcode Demo/Resources/Images/torchon@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..99ba911e69aa3bc72cbdea06a4d13ba74e972082 GIT binary patch literal 6498 zcmZWtWmr^gv^_(2DBay5EgeIHbPU}LJs=>BL#HSp-O?%DASKNZ(v6gYfRum;-1+|8 z`{O>(e&7A;oc*44*4q256Q`r4f{#Om0{{TNnyR86GW-9xurQFjxV`8cGGTkFns@^M z?(_c^2*}Q*0010qXE0bt#|h>G^LB!HGN^&U44$uHj?Qil$g5ZL^q~g&KgpzTHm?*k zV&NY(V0xrj40;L)aFS#;E=Fu3^;pKD6;j=PVkIRs>e0ej)TAVMBB?G9UOdh+<{smx zq=@3!`0@Llpkmj>?wf(D2S4pIjIY zizh&Y)nw1;{lE+YZbPM{xS9GedjXLDH(V^B?^RCU3!0cG!Xt$&a}Ycd)aR4@QUeQ4 z0>}j>DU<h=Ar}&+9N$1d7NuaA zFyZ#)Bmfj9lOmt?^1&ZLP=`Q>Cbbe+@g9A_cw(}(-F@7juJ)7zfE}OE*+(A!CMvij z2HgGe6YD9OlO=AU?@fYZBcWUiQ22Az_|o$~Y?O*VbgZoG@9izC4=I@0j2nkMLI? zuI@9hB*pB+OTkj6IE56>udH)V_TRU7?onm7M1Xo18BkC%Z-s>&>K_euB8X4l_ZtAX z=z{gnb6}yuog#Lo{hrQbA5;oi0l1@DiWdM_Dzfkyj5o=SU;%()VHj7vJoQyS1y3Ia zO+Wg2Kkh$k(MScBp#cRV1sr=g&1-AUns5b<=&5>IE^GdIIa=X9U8m?&PXfLH!*&8` zPr|=8So!@N-C@{h@}pSKZ5UT$LALP_<|Higtf*VYepR$*2`mg_u_U@o8p$H60($WV z42G(-7t*g$#AD2rJCh|x0m1Np(cLNnAHy1TrRVWlz#SE0RFTS`aA)j&1hU_g73R#m zZl;n>6fHWOsdge|WvXJJZx*rI5D3Jf-M@~RL`h}N=d1p^I>F!3t37&dC8?f^SeYK2BKTPN||5QVLv zKnz5chk5bY`{(>bL9yT=F_vd>U_thd4=8F4B?fcP=9K3=^q7D0ROSe)QZc8Ft=hXb zVv2v{Vc;H(+RNJ;+!NZP-ebHl!^yLi^D4R3|IVQ|?xIe)PqZ(*kKvFhC~sJtt+!E8 zWI!zP-c+Hss8#Q?ZcN2XjcJel%&sNGz0tGKT__0!rye@i|kojPhFo<%q!xF@fXE!z{uqm?4C#l`EJu zc^oHAJ&i4mnv36{vZ}0VvkKSn(s07yeWj&-NS(5wkp6BZ_I!G^VO5^au|Bmvv{JGn zrV3gCGmtF_HF=1`Fd5Vw)CQO67B*Pzb`LY)+EF(7^Dw&NS4aDXi43tdOsxdJ;p)nK zpzTVKuBt2&2MehS88_)&esq+@+|Bg5&Gpg3KIACRxD1WoBst^!&PiP+tl1&pVD4I# zo{ZQeOk;!%E@ncr&(&)0;NZwB-n{-p`we=vA(|66{of(OB9!ehZ$!$VL=eHHP7 zNzw9;texwEEe7Slr8a3c89R~59kWu!3(D`52@{=%&39RL-G|+Wi`g*P7}+#l9lbiu z)_c`a##tt*DXBR!H97TZYB5VBM_OP>@G$2vXDMf^&Dzx8l&7_#wcSCjanH2O9_VA*iM`r499NeoZ1_B(a%|$UT(}`FfT9lOGD1CYoLr z+HHM4!8zodr=Rmp1xgO>@Q%2QO^DM7pWw@o;me^O-WcuKQ}?;{ve*fnyUxpL${9GR zSo?e`dg^={vtBSMT)>%cBIG?YI11j@-Jg}kEl7Lex>XaZ4b~2Wwj46^+wmtG*Dlq! zmHJiP*qo8e{E>NGuq(4GCAKNJX<{`g*4H-LHlaNT%eRW!0>5Q`vVRJEngzqmBn*b)u}8&38Ar<|dB#GhW(6`t{ASm|-dl=)71I?rbD#p+;-7idMYv?D z_*|q`#X5yMWrz73O(qv0c@Q->4H|Jit~yZYQ6mUTb_ukf-I5s;<+Dd5>CJX?EsXCe^zuhb{TBWMW=P4%JnKR z(58ayhnj1M1`DEE|7~BP=C3*xRQj$M-DO54ON^ON6K@S|? zOw>3;H9mgzNND4yOT!#SVHM zeC>l+?peXp$+LlHJ1MQD(Hh3Qw2*_I8W-_KDX)MvoLy3M?r0;78mad9RxbAi?dlWb zjJnVsw!l}eVV3>l;r%Tj*JE5moc*Yf**U1R#9O?rmGePT8$NU2AoV0=7`$g_! z6@n4^-p9N%KVE!Me8YFS!{3=b6$AEu-e7Ot(BVt0zDW$K*}?oq|ArPy%kQF)eUYu4 zqn~|mW^2}|Jt;H0c(fV#Pi2jsFjrX0BtZSrV9a^-XZW{N=*4tmURqvADBs<>_1dS_ zphG*vmJ1>5tdq!RXHMxU;ZU+$5@CMP?sL(&w*TC?-8lQRgq8b|&ymz)>No9?uH3Hd zx(;*Kj?=)NmLSKQpVawch>feBfOE2^#f5xv>5ZPtK-kUKo9ivIjnLQZ4~U7b6+iaV z+HUP`t1Gz^`4#X+%z~`hl@VD$G{?Q!toMfHgmQp<02#Vi+gbC!%^Qc<>$5G zfnmDdF@GTe%PXV%lYYN-Kiae6Ekfbp3FLBEHKs}=7JWtr-9^zvHnqkzcEq}JF8HeY*siO?na!@*zp8pvk5+|U zj9rUus~Rd>;&nZhmKsn7Ikuy^^bAh%mY}kp%MLV|;zHhtETO?W_Opzg+?$Z;%iVx8 za!O+PlKF1!?A0wPf}zxM5_TL2`02TD7}HrJ&#Bj`Za4yXau zll9pSb4Tf6qWKpI3_|{aw!HxpV3oBmVh>%8#;)X?Y~8cg;Zghxrrfh_ znFq=~8^F7^V(ksC91c8uM`~sV*cJkw8U)*|dk^_8LkI?EBTzxP)_*@Q@}cWLR759W z!T?WbW*_=xo*yt;OIyzi|AKl83SrhAR6_t-f?F`xcS_Ad`YfL#OD+LXoLSfbZM`NN zDscdCyMjZl$HC99;^4qK?;=7&OS^M;i23&IThY%4s1Sl}($ADEOud6InL1UB$}TQm zt7~W!SL&BP`?kdj2)nNekB^QPLZ|Z^;tu?VWx7`iVC}`3@9Vkt4-fTqbUt7#FM%Nt z3Q{t%#<)`%;s6MfH9J$MgS#hetM^rCXsE=_pBOkCX#D^a_|r(y*Q$7xDiT=t<%=wL z`-9EVe5KFRV~FVN)6nu16L8ih+U|F{Ehr?+g5?i_d zgfJ{D%)s1yl1;oL6NLFpx4I>uuF~@!>6VCcBs$U>ihlr-M6(vI;X!Ac(%CP)nAkn< z2NNlUR7>@K@(NP~#pC>jE@Jr2m8j(o&|-BoHyc=y$vl6)ZOwG_Q7R)OHa`B-@UXJQ z$`6)LL;^s%iT>NR!a_KkcK#&y`lIKsWr3azkKtZN^zM~xshf9Vn?z`QfN6s*dXAgB zD7&=^Q&o!8Qv3Gt@dTUeLSo)KTl=Hn-vmH!x(qY&)QP^wi$ygxnlnB*IXNp*2ZPHd zzgJkunW~yFrt<_H;tTU7Jt5fiMMTL)N6+kl3N>6$zf4Ohv+Dp#=uC9DsoSkO_ z+iGjy2?`0litY-ze{*zlBEojRq5#mjRu&tnm+JAax3|CSIUgDsp~e>z7tfNAkVt%p z)MBC<6x+6Uy*Ag@*4E=73Ebu4*PxH ziW(Y-rKP1keSMXztr?7JAYtO(2Y3>(#7MBdf4A*9e@`b(ML_Vkjrbjf0Lt!2(-zR- zdu$YZ{*}DGW#7K%-ZmPHOTSSmY9h81Bm7{`05gZtskbwJjWJKTHy>|GX zT`Sl6#9?-JwnjY)fzUE-a>TEGnVOQ)ez6|*7uQPZN;Wd`{@<+lP`l&*Ge^~<$%b#;k3)6^wG{tA!nzfKvm54@jscXwCFO zZ}-ic8uV(Gn%v2mV_nF&L~`Rmw<~TT1m}#AwIq&3CSrz;kWNx`?z|& zgOBDpd)`s-Np(~mJxz@M$HQozjEN{09ejyygvd4&dH%}EI9pp={{lCwW~XF~y+426 zthT!6$a{5PA|&V6*WD0Bw@`Cb46Q}%k;3_5H0V-7N# z09S^&_JxZOb8~Y$pRRXwgDvZ=L59Z0Py8E;i$>~dYO{BUPT%9nlMYl&$(QIn73%8h z91IL_zfp}0zJ=fap&l0(7a`LX`Vi>dobEd&DBW%q5D*|7`p8|Iad+lpQWAl> zmeyjp>o7(d1KqlH(&yWgwyn{nC1avd)N(2_Q&XpjbY3*LQLSkytT@wfzJGf1ob>wo znuLaiXH;)-bW{~z+r!acECFSp(!c0)J)Y z_ax1PkExm2?92=UBv4#je7V{A`O(qQP_IA)DIpjz_RJgH+_apZpD(PcQa?*!V)VVc zaB$n~rbHIB#h8qbVN5v9f1O-S&TqMmq$>vp2V9{D8FENbeJU<)@H?~g_xE>_I@{Yr z6B82?77@XA>9GpELr2o!_I!kX=jez_xlg;@(g%7K{5zFh+v(}?q1k1D3kL^>>h-y~ zscH72dVG95PS2X=Egt>be+`ghYs6v1JJVUOlU0$$ja=k#dB-XJsrTBT+W505wY99Q zY~a<8WC~D>=f)^kG_l`Z$knV$MO~fabxlu?^skeXmQb^H&!Uy_{;Ddjz5V^TTK`j& ziDM8RXdQdo5A6L(hXW$p_2$IXKOg}AZ&zDen+cDaqCfJU%fJ?R%P=Sx1p{sl_I^f1 zRdso0H=NiXj*eRo+mb={RZPJw&0|XBY%M7%$(+jmY}xaSdfPnW5ga#?hmVBUbazY$ ziYTF#d^0m!timZPTd?p;6AVV}xjV>ltc=mu*Z*qt)VR4~{bRF)rp$@LW>f&Zqobq! z^*#<#%`cz`n%lpB2R1e~3L}x*`Sp^O-Tru5IH7`nU|{@M&^=6k|7*llZ`bc7tGE9t zv%h<3csN=sUy76MOvK5rNFb&@SK#mq%-)`b&%7Pp;T_enH8?VY3G2B|&y-qzai5Ci zcU!&S!o|Z=l9H0bSm5m8QKl{X@bQNE!`|zTxR?415ZGBZemR_Az&Se7vH)J(CVOmD1AEkOWjbMC36e zDHH)Z+w3uOtA+M!tu(MEO^LwYq}v6_+p)f2ESD=NzP4KN?-ZZ>(@pO&d!wxP+~H(%G}ok za`7fT8=E4;3MVmd0xd`Jbd~V+%N>idx;7kKTyq@*ODs~@^~UOqlPI>`39u(U+o zjOSF}DZ|JppO~+am^byt(x;`Nu4773yZ%R21KgVBxg(!A3K{g0y~ zbuo{12JUZ;`nR55@>gC!+q(d-u@qL*FXAs>ZqF2fRW&u|?@kx0jf)JpL_%FXJcet{ z+N_m2QMZHinYK}0fR=|f6{t%xGb!vH9S6q7u;09S^ZVjrKx`{GqNIeS_%JIkFRvEe zL(Fc;GL^k~Z1RQ;IUYLw&p! z-ny-dz&rxMS$cUrkqxGH%U&?cT0d5bJF9_t2#W#;1w21!_4y5frGY5;SRx~-8`D)6z%+X zTB@T)YTR%UfB?_C9TQaJ_^ZDwvLXUAl?G`f5QA85+(NPE5g+2RabEzMsK5Dvrf85k zI{an*`h|0)($%pZC=+uV_9KU?N!b^58Ixh1#&hbVAC(kuy8sxd!8)bAnmT;+KxoD~ z{5X`^or(iocxl{tFKNA}@QpR;q;!&gbT!F5?}Ol?m=XTxMu@D(=Tks86O?^Mz)yfJ zj^dYH+3{tbjs?9dXr12-(A5kf!|$_13phggE%eQ!9ZiM}JDPYqjA{b!Sq)}A7CZv( z?1$1$uq_OCD^n%w;lckc*HH+&6$*DQocg}p)s^{p{AJe9et@*TXU-61GJys_17%`c z3&OF1f1pGgskdl=U)kXdZXt2Vp~XC^e^_r5eE|vwst%SMcG9Af8l2T6ME3t&9}17! e{|45BA5eZ3j25eHR)RFKfSQt)Vx59@`2PTO7DYY) literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/Info.plist b/Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..2bb341cca927a71500ce57c0c4a4fb5c1cc09e34 GIT binary patch literal 851 zcmZWmOHb866h1S)@JRth9wLbN#-;`Jh86MNN+dj`1rf-tLp!&3!n9NSAom(~F4(&; zZduA7VC%{lO?2bNg>hx##vkC$x#d zaq`sZGp$Nnd&k*xo#(r{dwMVQUF;vYG&pqS>d>|8H*XF1u9YT=Y2b1?OMLp+u$CR+ z(kF&x8dHskt#r+r4^y863zWEIozs#C>k;#+$x2pKOc{4=r8{q9&`ruk=+huspdJ%} zt+eL3B^t$9q$5Mk5U0ulI%j5H*|6q0Nh%`p_Xc<5uzBKa5RY2*P}1qiqh?h^NwcGw zL@e+QCetvKY3k-JV_WIVk&{717|cl|6%y6|k!sKL4{Fp&lZI9)u_XMEaT?i*GQ$Gq zr~aJzKV;ICdRc|hsJu8SSHK)PL43yRw$iq*tBG4{Zn?R-wtTM1ynrNWBvrQVgR-g> z`8)PR#+FvlwN(~YML0u3JNi~603k-~C5*ecE%)26O!+n1Nwe1puK zY2H({159mY&=I~$!jMx{-m*Q$D(9QN>TnWxs%~rLjY>`3SGRpbL8cV7SSXI^>(;nD z&;kW8U>cU-8N7fuumkVl3;aYF^`miQAsa<#3%y1=Xcv7#-_bAh8~wo+Ud3hn6j!jo j39jMi_$A)LukbE@k3Zm#_%r?r*}-Vf!tJJQ8vN}q-8TO^ literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/de.lproj/SDKStrings.strings b/Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/de.lproj/SDKStrings.strings new file mode 100644 index 0000000000000000000000000000000000000000..8b2aec579009aaa46b9106d460249838624fc684 GIT binary patch literal 127696 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 literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/en.lproj/SDKStrings.strings b/Barcode Demo/Mobile Barcode Demo/SDKStrings.bundle/en.lproj/SDKStrings.strings new file mode 100644 index 0000000000000000000000000000000000000000..26947fe00d8ec265e7daf4d3f6f362e2fbbb55a2 GIT binary patch literal 43086 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�WSwDiW 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 z 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 Int { + + let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) + let dateComponents = calendar?.components(NSCalendarUnit.Month, fromDate: date) + if let components = dateComponents { + return components.month + } + return -1 + } + + static func validateLimitation() { + if Settings.MaxUsagesPerMonth == -1 { + return + } + + let userDefaults = NSUserDefaults.standardUserDefaults() + let keys = userDefaults.dictionaryRepresentation().keys + + var exceeded = false + if keys.contains(Settings.ShotsCounterKey) && keys.contains(Settings.UsageUpdateDateKey) { + let lastDateInterval : Int = userDefaults.integerForKey(Settings.UsageUpdateDateKey) + + let lastDateMonth = MonthOfDate(NSDate(timeIntervalSince1970: NSTimeInterval(lastDateInterval))) + let todaysMonth = MonthOfDate(NSDate()) + + if lastDateMonth == todaysMonth { + let shotsCounter = userDefaults.integerForKey(Settings.ShotsCounterKey) + exceeded = shotsCounter >= Settings.MaxUsagesPerMonth + } + } + + ExceedLimitation = exceeded + } + + static func updateLimitationCounter() { + if Settings.MaxUsagesPerMonth == -1 { + return + } + + let userDefaults = NSUserDefaults.standardUserDefaults() + let keys = userDefaults.dictionaryRepresentation().keys + var shotsCounter = 0 + + if keys.contains(Settings.ShotsCounterKey) && keys.contains(Settings.UsageUpdateDateKey) { + let lastDateInterval : Int = userDefaults.integerForKey(Settings.UsageUpdateDateKey) + + let lastDateMonth = MonthOfDate(NSDate(timeIntervalSince1970: NSTimeInterval(lastDateInterval))) + let todaysMonth = MonthOfDate(NSDate()) + + if lastDateMonth == todaysMonth { + shotsCounter = userDefaults.integerForKey(Settings.ShotsCounterKey) + } + } + + shotsCounter += 1 + + userDefaults.setInteger(shotsCounter, forKey: Settings.ShotsCounterKey) + userDefaults.setInteger(Int(NSDate().timeIntervalSince1970), forKey: Settings.UsageUpdateDateKey) + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/SettingsTableViewController.swift b/Barcode Demo/Mobile Barcode Demo/SettingsTableViewController.swift new file mode 100644 index 0000000..556fc86 --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/SettingsTableViewController.swift @@ -0,0 +1,81 @@ +// +// SettingsTableViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class SettingsTableViewController: UITableViewController { + + static let cellIdentifier = "SettingsCellIdentifier" + static let SegueBarcodesSettingsViewController = "BarcodesSettingsViewController" + static let SegueAboutViewController = "AboutViewController" + static let SegueLicenseAgreementViewController = "LicenseAgreementViewController" + + override func viewDidLoad() { + super.viewDidLoad() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + // MARK: - Table view data source + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 3 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(SettingsTableViewController.cellIdentifier) + if cell == nil { + cell = UITableViewCell(style: .Default, reuseIdentifier: SettingsTableViewController.cellIdentifier) + } + + if indexPath.row == 0 + { + cell.textLabel?.text = "Symbologies" + } else if indexPath.row == 1 + { + cell.textLabel?.text = "About" + } else if indexPath.row == 2 { + cell.textLabel?.text = "License Agreement" + } + + cell.accessoryType = .DisclosureIndicator + + return cell!; + } + + override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + + var segueName : String = "" + switch indexPath.row + { + case 0: + segueName = SettingsTableViewController.SegueBarcodesSettingsViewController + break + + case 1: + segueName = SettingsTableViewController.SegueAboutViewController + break + + case 2: + segueName = SettingsTableViewController.SegueLicenseAgreementViewController + break + + default: + assert(false) + } + + performSegueWithIdentifier(segueName, sender: self) + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } +} diff --git a/Barcode Demo/Mobile Barcode Demo/beep-29.wav b/Barcode Demo/Mobile Barcode Demo/beep-29.wav new file mode 100644 index 0000000000000000000000000000000000000000..4daff85681f43dc84df352bf5662a3b05a05f167 GIT binary patch literal 47104 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 K<$wQQ`u_)fIABEp literal 0 HcmV?d00001 diff --git a/Barcode Demo/Mobile Barcode Demo/eula.rtf b/Barcode Demo/Mobile Barcode Demo/eula.rtf new file mode 100644 index 0000000..c8b7fdf --- /dev/null +++ b/Barcode Demo/Mobile Barcode Demo/eula.rtf @@ -0,0 +1,26 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 ArialMT;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;} +{\info +{\author Peter Lawrence} +{\*\company Kofax, Inc.}}\margl720\margr720\margb720\margt720\viewkind1 +\deftab720 +\pard\pardeftab720\ri0\sb100\sa100\partightenfactor0 + +\f0\fs20 \cf0 This End-User License Agreement (\'93Agreement\'94) governs your use of the Atalasoft Mobile Application software (\'93Software\'94) provided by Atalasoft, Inc and its affiliates (\'93Atalasoft\'94). Your use of the Software constitutes your acceptance of the terms of this Agreement. Your use of the Software is also subject to the signed agreement between Atalasoft and your employer or in the absence of a signed agreement, Atalasoft\'92s standard license terms as made available at {\field{\*\fldinst{HYPERLINK "http://www.Kofax.com"}}{\fldrslt \cf2 \ul \ulc2 www.Kofax.com}}.\ +\pard\pardeftab720\ri0\sb100\sa100\partightenfactor0 + +\b \cf0 1. License. +\b0 Atalasoft grants to you a nontransferable, nonexclusive, license to install and use one copy of the Software, in object code form only, solely on your mobile device. You agree to the following license restrictions: (a) to not duplicate, copy or redistribute the Software except as necessary for use on your mobile device; and (b) to not modify, translate, make derivative works of, disassemble, reverse engineer or otherwise use the Software in order to build competitive technologies or for competitive benchmark purposes.\ + +\b 2. Generally. +\b0 You agree that Atalasoft shall not have any liability to you for your use of the Software, including not limited to your access or creation of content using the Software. By using the Software, you acknowledge and agree that Atalasoft is not responsible for examining or evaluating the content, accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect of the content accessed or created by You You further agree not to use the Software to infringe or violate the rights of any other party, and that Atalasoft is not in any way responsible for any such use by you. \ +Atalasoft reserves the right to change, terminate, or disable access to the Software as is reasonably necessary to ensure compliance with this Agreement. In no event will Atalasoft be liable for the change, removal of, termination, or disabling of access to the Software. \ + +\b 3. Limitation Of Liability. +\b0 To the extent not prohibited by law, in no event shall Atalasoft be liable for personal injury, or any incidental, special, indirect or consequential damages, including, without limitation, damages for loss of profits, loss of data, business interruption or any other commercial damages or losses, arising out of or related to your use or inability to use the Software or Services, however caused, regardless of the theory of liability (contract, tort or otherwise) and even if Atalasoft has been advised of the possibility of such damages. In no event shall Atalasoft\'92s total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount price paid for the Software, if any. The foregoing limitations will apply even if the above stated remedy fails of its essential purpose.\ +Some jurisdictions do not allow the limitation of liability for personal injury, or of incidental or consequential damages, so this limitation may not apply to you.\ + +\b 4. Indemnification By You. +\b0 You agree to indemnify and hold Atalasoft, its subsidiaries, and affiliates, and their respective officers, agents, partners and employees, harmless from any loss, liability, claim or demand, including reasonable attorney\'92s fees, made by any third party due to or arising out of your use of the Software in violation of this Agreement, and in the event that any content accessed or created by you causes Atalasoft to be liable to another.\ +} \ No newline at end of file diff --git a/Barcode Demo/Mobile-Barcode-Demo-Bridging-Header.h b/Barcode Demo/Mobile-Barcode-Demo-Bridging-Header.h new file mode 100755 index 0000000..c230063 --- /dev/null +++ b/Barcode Demo/Mobile-Barcode-Demo-Bridging-Header.h @@ -0,0 +1,20 @@ +// +// Mobile-Capture-Demo-Bridging-Header.h +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +#ifndef Mobile_Barcode_Demo_Bridging_Header_h +#define Mobile_Barcode_Demo_Bridging_Header_h + +#import "../kfxEVRS_License.h" +#import "MobileSDK.h" +#import "kfxLibEngines/kfxEngines.h" +#import "kfxLibEngines/kfxKUTErrorInfo.h" +#import "kfxLibEngines/kfxKEDBarcodeResult.h" +#import "kfxLibUIControls/kfxUIControls.h" +#import "kfxLibUtilities/kfxUtilities.h" + +#endif /* Mobile_Barcode_Demo_Bridging_Header_h */ diff --git a/Barcode Demo/MobileBarcode.plist b/Barcode Demo/MobileBarcode.plist new file mode 100644 index 0000000..f862a9d --- /dev/null +++ b/Barcode Demo/MobileBarcode.plist @@ -0,0 +1,12 @@ + + + + + method + app-store + teamID + B9C7GRQCYQ + uploadSymbols + + + \ No newline at end of file diff --git a/Capture Demo/Mobile Capture Demo.xcodeproj/project.pbxproj b/Capture Demo/Mobile Capture Demo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f5befde --- /dev/null +++ b/Capture Demo/Mobile Capture Demo.xcodeproj/project.pbxproj @@ -0,0 +1,560 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + B208E2541CEDBF6C0053F137 /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = B208E2531CEDBF6C0053F137 /* logo.png */; }; + B208E2561CEDD6E60053F137 /* BaseSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B208E2551CEDD6E60053F137 /* BaseSettingsViewController.swift */; }; + B2092DB01D24EC0D00479F14 /* LicenseAgreementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2092DAF1D24EC0D00479F14 /* LicenseAgreementViewController.swift */; }; + B2092DB21D24EC7D00479F14 /* LicenseAgreementCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2092DB11D24EC7D00479F14 /* LicenseAgreementCell.swift */; }; + B2493A901CD6241C000D6F2E /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2493A8F1CD6241C000D6F2E /* Settings.swift */; }; + B268FA6A1D0A844700937D29 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B268FA691D0A844700937D29 /* AboutViewController.swift */; }; + B278169C1CE9DB2F00F90AAA /* bluecircle.png in Resources */ = {isa = PBXBuildFile; fileRef = B278169A1CE9DB2F00F90AAA /* bluecircle.png */; }; + B278169D1CE9DB2F00F90AAA /* bluecircle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B278169B1CE9DB2F00F90AAA /* bluecircle@2x.png */; }; + B278169F1CE9E20400F90AAA /* camera_button_normal.png in Resources */ = {isa = PBXBuildFile; fileRef = B278169E1CE9E20400F90AAA /* camera_button_normal.png */; }; + B27816A11CEB281400F90AAA /* PhotoAlbum.swift in Sources */ = {isa = PBXBuildFile; fileRef = B27816A01CEB281400F90AAA /* PhotoAlbum.swift */; }; + B27BD4411D38B8FD00943531 /* eula.rtf in Resources */ = {isa = PBXBuildFile; fileRef = B27BD4401D38B8FD00943531 /* eula.rtf */; }; + B280628B1D1BDE79009DD03D /* AboutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B280628A1D1BDE79009DD03D /* AboutCell.swift */; }; + B28062951D20FE0A009DD03D /* MobileSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B28062921D20FE0A009DD03D /* MobileSDK.framework */; }; + B28062961D20FE0A009DD03D /* SDKStrings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B28062931D20FE0A009DD03D /* SDKStrings.bundle */; }; + B28062971D20FE0A009DD03D /* uiimages.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B28062941D20FE0A009DD03D /* uiimages.bundle */; }; + B29A30E01CC0AC5B007BA18C /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29A30DF1CC0AC5B007BA18C /* HomeViewController.swift */; }; + B29A30E51CC0B6B2007BA18C /* settings_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B29A30E31CC0B6B2007BA18C /* settings_icon.png */; }; + B29A30E61CC0B6B2007BA18C /* settings_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B29A30E41CC0B6B2007BA18C /* settings_icon@2x.png */; }; + B29A30E81CC0B7E5007BA18C /* SettingsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29A30E71CC0B7E5007BA18C /* SettingsTableViewController.swift */; }; + B29A30EA1CC0BB5C007BA18C /* CaptureViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29A30E91CC0BB5C007BA18C /* CaptureViewController.swift */; }; + B29A31061CC0C709007BA18C /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31051CC0C709007BA18C /* QuartzCore.framework */; }; + B29A31081CC0C74B007BA18C /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31071CC0C74B007BA18C /* AVFoundation.framework */; }; + B29A31131CC0C7BD007BA18C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31091CC0C7BD007BA18C /* CoreGraphics.framework */; }; + B29A31141CC0C7BD007BA18C /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A310A1CC0C7BD007BA18C /* CoreLocation.framework */; }; + B29A31151CC0C7BD007BA18C /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A310B1CC0C7BD007BA18C /* CoreMedia.framework */; }; + B29A31161CC0C7BD007BA18C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A310C1CC0C7BD007BA18C /* CoreMotion.framework */; }; + B29A31171CC0C7BD007BA18C /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A310D1CC0C7BD007BA18C /* CoreVideo.framework */; }; + B29A31181CC0C7BD007BA18C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A310E1CC0C7BD007BA18C /* Foundation.framework */; }; + B29A31191CC0C7BD007BA18C /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A310F1CC0C7BD007BA18C /* libc++.tbd */; }; + B29A311A1CC0C7BD007BA18C /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31101CC0C7BD007BA18C /* libxml2.tbd */; }; + B29A311B1CC0C7BD007BA18C /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31111CC0C7BD007BA18C /* libz.tbd */; }; + B29A311C1CC0C7BD007BA18C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31121CC0C7BD007BA18C /* SystemConfiguration.framework */; }; + B29A31231CC0C7E6007BA18C /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A311D1CC0C7E6007BA18C /* AssetsLibrary.framework */; }; + B29A31241CC0C7E6007BA18C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A311E1CC0C7E6007BA18C /* AudioToolbox.framework */; }; + B29A31251CC0C7E6007BA18C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A311F1CC0C7E6007BA18C /* MobileCoreServices.framework */; }; + B29A31261CC0C7E6007BA18C /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31201CC0C7E6007BA18C /* OpenGLES.framework */; }; + B29A31271CC0C7E6007BA18C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31211CC0C7E6007BA18C /* Security.framework */; }; + B29A31281CC0C7E6007BA18C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B29A31221CC0C7E6007BA18C /* UIKit.framework */; }; + B29A312D1CC0D990007BA18C /* close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B29A312C1CC0D990007BA18C /* close@2x.png */; }; + B29A312F1CC0E06F007BA18C /* camera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B29A312E1CC0E06F007BA18C /* camera@2x.png */; }; + B29A31311CC1408B007BA18C /* CameraSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29A31301CC1408B007BA18C /* CameraSettingsViewController.swift */; }; + B29A31331CC143EA007BA18C /* ImageProcessorSettingsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29A31321CC143EA007BA18C /* ImageProcessorSettingsTableViewController.swift */; }; + B2B4461E1D06B22C002C79E5 /* useImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2B4461D1D06B22C002C79E5 /* useImage@2x.png */; }; + B2B446221D06CEA6002C79E5 /* WaitingIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B446211D06CEA6002C79E5 /* WaitingIndicator.swift */; }; + B2C6AF9B1CBFB8EE00D19076 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C6AF9A1CBFB8EE00D19076 /* AppDelegate.swift */; }; + B2C6AFA01CBFB8EE00D19076 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B2C6AF9E1CBFB8EE00D19076 /* Main.storyboard */; }; + B2C6AFA21CBFB8EE00D19076 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2C6AFA11CBFB8EE00D19076 /* Assets.xcassets */; }; + B2C6AFA51CBFB8EE00D19076 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B2C6AFA31CBFB8EE00D19076 /* LaunchScreen.storyboard */; }; + B2C6AFC91CBFBB7000D19076 /* CommonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C6AFC81CBFBB7000D19076 /* CommonViewController.swift */; }; + B2CBE9CF1CDB9FCF0075BEE8 /* torch_off@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CBE9CD1CDB9FCF0075BEE8 /* torch_off@2x.png */; }; + B2CBE9D01CDB9FCF0075BEE8 /* torchon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CBE9CE1CDB9FCF0075BEE8 /* torchon@2x.png */; }; + B2CBE9D21CE194CE0075BEE8 /* PreviewImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2CBE9D11CE194CE0075BEE8 /* PreviewImageViewController.swift */; }; + B2CBE9D51CE199880075BEE8 /* email.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CBE9D31CE199880075BEE8 /* email.png */; }; + B2CBE9D61CE199880075BEE8 /* email@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CBE9D41CE199880075BEE8 /* email@2x.png */; }; + B2CBE9D81CE1999C0075BEE8 /* gallery@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B2CBE9D71CE1999C0075BEE8 /* gallery@2x.png */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + B208E2531CEDBF6C0053F137 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = ""; }; + B208E2551CEDD6E60053F137 /* BaseSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseSettingsViewController.swift; sourceTree = ""; }; + B2092DAF1D24EC0D00479F14 /* LicenseAgreementViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LicenseAgreementViewController.swift; sourceTree = ""; }; + B2092DB11D24EC7D00479F14 /* LicenseAgreementCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LicenseAgreementCell.swift; sourceTree = ""; }; + B2493A8F1CD6241C000D6F2E /* Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; + B268FA691D0A844700937D29 /* AboutViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; + B278169A1CE9DB2F00F90AAA /* bluecircle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bluecircle.png; sourceTree = ""; }; + B278169B1CE9DB2F00F90AAA /* bluecircle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bluecircle@2x.png"; sourceTree = ""; }; + B278169E1CE9E20400F90AAA /* camera_button_normal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = camera_button_normal.png; sourceTree = ""; }; + B27816A01CEB281400F90AAA /* PhotoAlbum.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoAlbum.swift; sourceTree = ""; }; + B27BD4401D38B8FD00943531 /* eula.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = eula.rtf; sourceTree = ""; }; + B280628A1D1BDE79009DD03D /* AboutCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutCell.swift; sourceTree = ""; }; + B28062921D20FE0A009DD03D /* MobileSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileSDK.framework; path = ../MobileSDK/MobileSDK.framework; sourceTree = ""; }; + B28062931D20FE0A009DD03D /* SDKStrings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = SDKStrings.bundle; path = ../MobileSDK/SDKStrings.bundle; sourceTree = ""; }; + B28062941D20FE0A009DD03D /* uiimages.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = uiimages.bundle; path = ../MobileSDK/uiimages.bundle; sourceTree = ""; }; + B29A30DF1CC0AC5B007BA18C /* HomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = ""; }; + B29A30E31CC0B6B2007BA18C /* settings_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = settings_icon.png; sourceTree = ""; }; + B29A30E41CC0B6B2007BA18C /* settings_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "settings_icon@2x.png"; sourceTree = ""; }; + B29A30E71CC0B7E5007BA18C /* SettingsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewController.swift; sourceTree = ""; }; + B29A30E91CC0BB5C007BA18C /* CaptureViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CaptureViewController.swift; sourceTree = ""; }; + B29A31051CC0C709007BA18C /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + B29A31071CC0C74B007BA18C /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + B29A31091CC0C7BD007BA18C /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + B29A310A1CC0C7BD007BA18C /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + B29A310B1CC0C7BD007BA18C /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + B29A310C1CC0C7BD007BA18C /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + B29A310D1CC0C7BD007BA18C /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; + B29A310E1CC0C7BD007BA18C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + B29A310F1CC0C7BD007BA18C /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + B29A31101CC0C7BD007BA18C /* libxml2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = usr/lib/libxml2.tbd; sourceTree = SDKROOT; }; + B29A31111CC0C7BD007BA18C /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + B29A31121CC0C7BD007BA18C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + B29A311D1CC0C7E6007BA18C /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; + B29A311E1CC0C7E6007BA18C /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + B29A311F1CC0C7E6007BA18C /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + B29A31201CC0C7E6007BA18C /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + B29A31211CC0C7E6007BA18C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + B29A31221CC0C7E6007BA18C /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + B29A31291CC0C8F4007BA18C /* Mobile-Capture-Demo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Mobile-Capture-Demo-Bridging-Header.h"; path = "../Mobile-Capture-Demo-Bridging-Header.h"; sourceTree = ""; }; + B29A312C1CC0D990007BA18C /* close@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "close@2x.png"; sourceTree = ""; }; + B29A312E1CC0E06F007BA18C /* camera@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "camera@2x.png"; sourceTree = ""; }; + B29A31301CC1408B007BA18C /* CameraSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraSettingsViewController.swift; sourceTree = ""; }; + B29A31321CC143EA007BA18C /* ImageProcessorSettingsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageProcessorSettingsTableViewController.swift; sourceTree = ""; }; + B2B4461D1D06B22C002C79E5 /* useImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "useImage@2x.png"; sourceTree = ""; }; + B2B446211D06CEA6002C79E5 /* WaitingIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WaitingIndicator.swift; sourceTree = ""; }; + B2C6AF971CBFB8EE00D19076 /* Mobile Capture Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mobile Capture Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + B2C6AF9A1CBFB8EE00D19076 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + B2C6AF9F1CBFB8EE00D19076 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + B2C6AFA11CBFB8EE00D19076 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + B2C6AFA41CBFB8EE00D19076 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + B2C6AFA61CBFB8EE00D19076 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B2C6AFC81CBFBB7000D19076 /* CommonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonViewController.swift; sourceTree = ""; }; + B2CBE9CD1CDB9FCF0075BEE8 /* torch_off@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "torch_off@2x.png"; sourceTree = ""; }; + B2CBE9CE1CDB9FCF0075BEE8 /* torchon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "torchon@2x.png"; sourceTree = ""; }; + B2CBE9D11CE194CE0075BEE8 /* PreviewImageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreviewImageViewController.swift; sourceTree = ""; }; + B2CBE9D31CE199880075BEE8 /* email.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = email.png; sourceTree = ""; }; + B2CBE9D41CE199880075BEE8 /* email@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "email@2x.png"; sourceTree = ""; }; + B2CBE9D71CE1999C0075BEE8 /* gallery@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "gallery@2x.png"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B2C6AF941CBFB8EE00D19076 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B29A31231CC0C7E6007BA18C /* AssetsLibrary.framework in Frameworks */, + B29A31241CC0C7E6007BA18C /* AudioToolbox.framework in Frameworks */, + B29A31251CC0C7E6007BA18C /* MobileCoreServices.framework in Frameworks */, + B29A31261CC0C7E6007BA18C /* OpenGLES.framework in Frameworks */, + B29A31271CC0C7E6007BA18C /* Security.framework in Frameworks */, + B29A31281CC0C7E6007BA18C /* UIKit.framework in Frameworks */, + B29A31131CC0C7BD007BA18C /* CoreGraphics.framework in Frameworks */, + B29A31141CC0C7BD007BA18C /* CoreLocation.framework in Frameworks */, + B29A31151CC0C7BD007BA18C /* CoreMedia.framework in Frameworks */, + B29A31161CC0C7BD007BA18C /* CoreMotion.framework in Frameworks */, + B29A31171CC0C7BD007BA18C /* CoreVideo.framework in Frameworks */, + B29A31181CC0C7BD007BA18C /* Foundation.framework in Frameworks */, + B29A31191CC0C7BD007BA18C /* libc++.tbd in Frameworks */, + B29A311A1CC0C7BD007BA18C /* libxml2.tbd in Frameworks */, + B29A311B1CC0C7BD007BA18C /* libz.tbd in Frameworks */, + B29A311C1CC0C7BD007BA18C /* SystemConfiguration.framework in Frameworks */, + B29A31081CC0C74B007BA18C /* AVFoundation.framework in Frameworks */, + B29A31061CC0C709007BA18C /* QuartzCore.framework in Frameworks */, + B28062951D20FE0A009DD03D /* MobileSDK.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + B29A30E11CC0B6B2007BA18C /* Resources */ = { + isa = PBXGroup; + children = ( + B29A30E21CC0B6B2007BA18C /* Images */, + ); + name = Resources; + path = "Mobile Capture Demo/Resources"; + sourceTree = ""; + }; + B29A30E21CC0B6B2007BA18C /* Images */ = { + isa = PBXGroup; + children = ( + B2B4461D1D06B22C002C79E5 /* useImage@2x.png */, + B208E2531CEDBF6C0053F137 /* logo.png */, + B278169E1CE9E20400F90AAA /* camera_button_normal.png */, + B278169A1CE9DB2F00F90AAA /* bluecircle.png */, + B278169B1CE9DB2F00F90AAA /* bluecircle@2x.png */, + B2CBE9D71CE1999C0075BEE8 /* gallery@2x.png */, + B2CBE9D31CE199880075BEE8 /* email.png */, + B2CBE9D41CE199880075BEE8 /* email@2x.png */, + B2CBE9CD1CDB9FCF0075BEE8 /* torch_off@2x.png */, + B2CBE9CE1CDB9FCF0075BEE8 /* torchon@2x.png */, + B29A312E1CC0E06F007BA18C /* camera@2x.png */, + B29A312C1CC0D990007BA18C /* close@2x.png */, + B29A30E31CC0B6B2007BA18C /* settings_icon.png */, + B29A30E41CC0B6B2007BA18C /* settings_icon@2x.png */, + ); + path = Images; + sourceTree = ""; + }; + B29A312A1CC0CFD7007BA18C /* Frameworks */ = { + isa = PBXGroup; + children = ( + B28062921D20FE0A009DD03D /* MobileSDK.framework */, + B28062931D20FE0A009DD03D /* SDKStrings.bundle */, + B28062941D20FE0A009DD03D /* uiimages.bundle */, + B29A311D1CC0C7E6007BA18C /* AssetsLibrary.framework */, + B29A311E1CC0C7E6007BA18C /* AudioToolbox.framework */, + B29A311F1CC0C7E6007BA18C /* MobileCoreServices.framework */, + B29A31201CC0C7E6007BA18C /* OpenGLES.framework */, + B29A31211CC0C7E6007BA18C /* Security.framework */, + B29A31221CC0C7E6007BA18C /* UIKit.framework */, + B29A31091CC0C7BD007BA18C /* CoreGraphics.framework */, + B29A310A1CC0C7BD007BA18C /* CoreLocation.framework */, + B29A310B1CC0C7BD007BA18C /* CoreMedia.framework */, + B29A310C1CC0C7BD007BA18C /* CoreMotion.framework */, + B29A310D1CC0C7BD007BA18C /* CoreVideo.framework */, + B29A310E1CC0C7BD007BA18C /* Foundation.framework */, + B29A310F1CC0C7BD007BA18C /* libc++.tbd */, + B29A31101CC0C7BD007BA18C /* libxml2.tbd */, + B29A31111CC0C7BD007BA18C /* libz.tbd */, + B29A31121CC0C7BD007BA18C /* SystemConfiguration.framework */, + B29A31071CC0C74B007BA18C /* AVFoundation.framework */, + B29A31051CC0C709007BA18C /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + B29A312B1CC0D007007BA18C /* Controllers */ = { + isa = PBXGroup; + children = ( + B2C6AFC81CBFBB7000D19076 /* CommonViewController.swift */, + B29A30DF1CC0AC5B007BA18C /* HomeViewController.swift */, + B29A30E71CC0B7E5007BA18C /* SettingsTableViewController.swift */, + B29A30E91CC0BB5C007BA18C /* CaptureViewController.swift */, + B29A31301CC1408B007BA18C /* CameraSettingsViewController.swift */, + B29A31321CC143EA007BA18C /* ImageProcessorSettingsTableViewController.swift */, + B2CBE9D11CE194CE0075BEE8 /* PreviewImageViewController.swift */, + B208E2551CEDD6E60053F137 /* BaseSettingsViewController.swift */, + B268FA691D0A844700937D29 /* AboutViewController.swift */, + B280628A1D1BDE79009DD03D /* AboutCell.swift */, + B2092DAF1D24EC0D00479F14 /* LicenseAgreementViewController.swift */, + B2092DB11D24EC7D00479F14 /* LicenseAgreementCell.swift */, + ); + name = Controllers; + sourceTree = ""; + }; + B2C6AF8E1CBFB8EE00D19076 = { + isa = PBXGroup; + children = ( + B2C6AF991CBFB8EE00D19076 /* Mobile Capture Demo */, + B2C6AF981CBFB8EE00D19076 /* Products */, + B29A312A1CC0CFD7007BA18C /* Frameworks */, + B29A30E11CC0B6B2007BA18C /* Resources */, + ); + sourceTree = ""; + }; + B2C6AF981CBFB8EE00D19076 /* Products */ = { + isa = PBXGroup; + children = ( + B2C6AF971CBFB8EE00D19076 /* Mobile Capture Demo.app */, + ); + name = Products; + sourceTree = ""; + }; + B2C6AF991CBFB8EE00D19076 /* Mobile Capture Demo */ = { + isa = PBXGroup; + children = ( + B29A312B1CC0D007007BA18C /* Controllers */, + B29A31291CC0C8F4007BA18C /* Mobile-Capture-Demo-Bridging-Header.h */, + B2C6AF9A1CBFB8EE00D19076 /* AppDelegate.swift */, + B2C6AF9E1CBFB8EE00D19076 /* Main.storyboard */, + B2C6AFA11CBFB8EE00D19076 /* Assets.xcassets */, + B2C6AFA31CBFB8EE00D19076 /* LaunchScreen.storyboard */, + B27BD4401D38B8FD00943531 /* eula.rtf */, + B2C6AFA61CBFB8EE00D19076 /* Info.plist */, + B2493A8F1CD6241C000D6F2E /* Settings.swift */, + B27816A01CEB281400F90AAA /* PhotoAlbum.swift */, + B2B446211D06CEA6002C79E5 /* WaitingIndicator.swift */, + ); + path = "Mobile Capture Demo"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + B2C6AF961CBFB8EE00D19076 /* Mobile Capture Demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = B2C6AFBF1CBFB8EF00D19076 /* Build configuration list for PBXNativeTarget "Mobile Capture Demo" */; + buildPhases = ( + B2C6AF931CBFB8EE00D19076 /* Sources */, + B2C6AF941CBFB8EE00D19076 /* Frameworks */, + B2C6AF951CBFB8EE00D19076 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Mobile Capture Demo"; + productName = "Mobile Capture Demo"; + productReference = B2C6AF971CBFB8EE00D19076 /* Mobile Capture Demo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + B2C6AF8F1CBFB8EE00D19076 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0730; + ORGANIZATIONNAME = Atalasoft; + TargetAttributes = { + B2C6AF961CBFB8EE00D19076 = { + CreatedOnToolsVersion = 7.3; + DevelopmentTeam = B9C7GRQCYQ; + }; + }; + }; + buildConfigurationList = B2C6AF921CBFB8EE00D19076 /* Build configuration list for PBXProject "Mobile Capture Demo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = B2C6AF8E1CBFB8EE00D19076; + productRefGroup = B2C6AF981CBFB8EE00D19076 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + B2C6AF961CBFB8EE00D19076 /* Mobile Capture Demo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + B2C6AF951CBFB8EE00D19076 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B2CBE9D01CDB9FCF0075BEE8 /* torchon@2x.png in Resources */, + B29A30E61CC0B6B2007BA18C /* settings_icon@2x.png in Resources */, + B208E2541CEDBF6C0053F137 /* logo.png in Resources */, + B2CBE9D81CE1999C0075BEE8 /* gallery@2x.png in Resources */, + B29A312F1CC0E06F007BA18C /* camera@2x.png in Resources */, + B278169C1CE9DB2F00F90AAA /* bluecircle.png in Resources */, + B2C6AFA51CBFB8EE00D19076 /* LaunchScreen.storyboard in Resources */, + B28062961D20FE0A009DD03D /* SDKStrings.bundle in Resources */, + B2B4461E1D06B22C002C79E5 /* useImage@2x.png in Resources */, + B27BD4411D38B8FD00943531 /* eula.rtf in Resources */, + B278169D1CE9DB2F00F90AAA /* bluecircle@2x.png in Resources */, + B2CBE9CF1CDB9FCF0075BEE8 /* torch_off@2x.png in Resources */, + B29A30E51CC0B6B2007BA18C /* settings_icon.png in Resources */, + B278169F1CE9E20400F90AAA /* camera_button_normal.png in Resources */, + B2CBE9D51CE199880075BEE8 /* email.png in Resources */, + B2C6AFA21CBFB8EE00D19076 /* Assets.xcassets in Resources */, + B2C6AFA01CBFB8EE00D19076 /* Main.storyboard in Resources */, + B28062971D20FE0A009DD03D /* uiimages.bundle in Resources */, + B29A312D1CC0D990007BA18C /* close@2x.png in Resources */, + B2CBE9D61CE199880075BEE8 /* email@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + B2C6AF931CBFB8EE00D19076 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B2092DB21D24EC7D00479F14 /* LicenseAgreementCell.swift in Sources */, + B29A30E81CC0B7E5007BA18C /* SettingsTableViewController.swift in Sources */, + B2B446221D06CEA6002C79E5 /* WaitingIndicator.swift in Sources */, + B29A31331CC143EA007BA18C /* ImageProcessorSettingsTableViewController.swift in Sources */, + B2493A901CD6241C000D6F2E /* Settings.swift in Sources */, + B2C6AFC91CBFBB7000D19076 /* CommonViewController.swift in Sources */, + B29A31311CC1408B007BA18C /* CameraSettingsViewController.swift in Sources */, + B208E2561CEDD6E60053F137 /* BaseSettingsViewController.swift in Sources */, + B2CBE9D21CE194CE0075BEE8 /* PreviewImageViewController.swift in Sources */, + B27816A11CEB281400F90AAA /* PhotoAlbum.swift in Sources */, + B2C6AF9B1CBFB8EE00D19076 /* AppDelegate.swift in Sources */, + B29A30E01CC0AC5B007BA18C /* HomeViewController.swift in Sources */, + B268FA6A1D0A844700937D29 /* AboutViewController.swift in Sources */, + B29A30EA1CC0BB5C007BA18C /* CaptureViewController.swift in Sources */, + B280628B1D1BDE79009DD03D /* AboutCell.swift in Sources */, + B2092DB01D24EC0D00479F14 /* LicenseAgreementViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + B2C6AF9E1CBFB8EE00D19076 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + B2C6AF9F1CBFB8EE00D19076 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + B2C6AFA31CBFB8EE00D19076 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + B2C6AFA41CBFB8EE00D19076 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + B2C6AFBD1CBFB8EF00D19076 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE = "87b5ad36-04ba-44f1-9dca-1f71ce1c3f5d"; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + B2C6AFBE1CBFB8EF00D19076 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + PROVISIONING_PROFILE = "87b5ad36-04ba-44f1-9dca-1f71ce1c3f5d"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B2C6AFC01CBFB8EF00D19076 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/../MobileSDK", + "$(PROJECT_DIR)/../MobileSDK/uiimages.bundle", + ); + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../MobileSDK/MobileSDK.framework/Headers"; + INFOPLIST_FILE = "Mobile Capture Demo/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.kofax.Mobile-Capture-Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Mobile-Capture-Demo-Bridging-Header.h"; + }; + name = Debug; + }; + B2C6AFC11CBFB8EF00D19076 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/../MobileSDK", + "$(PROJECT_DIR)/../MobileSDK/uiimages.bundle", + ); + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../MobileSDK/MobileSDK.framework/Headers"; + INFOPLIST_FILE = "Mobile Capture Demo/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.kofax.Mobile-Capture-Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Mobile-Capture-Demo-Bridging-Header.h"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + B2C6AF921CBFB8EE00D19076 /* Build configuration list for PBXProject "Mobile Capture Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B2C6AFBD1CBFB8EF00D19076 /* Debug */, + B2C6AFBE1CBFB8EF00D19076 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B2C6AFBF1CBFB8EF00D19076 /* Build configuration list for PBXNativeTarget "Mobile Capture Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B2C6AFC01CBFB8EF00D19076 /* Debug */, + B2C6AFC11CBFB8EF00D19076 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = B2C6AF8F1CBFB8EE00D19076 /* Project object */; +} diff --git a/Capture Demo/Mobile Capture Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Capture Demo/Mobile Capture Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..3b57669 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Capture Demo/Mobile Capture Demo.xcodeproj/xcshareddata/xcschemes/Mobile Capture Demo.xcscheme b/Capture Demo/Mobile Capture Demo.xcodeproj/xcshareddata/xcschemes/Mobile Capture Demo.xcscheme new file mode 100644 index 0000000..6b053d3 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo.xcodeproj/xcshareddata/xcschemes/Mobile Capture Demo.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Capture Demo/Mobile Capture Demo/AboutCell.swift b/Capture Demo/Mobile Capture Demo/AboutCell.swift new file mode 100644 index 0000000..5b12184 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/AboutCell.swift @@ -0,0 +1,124 @@ +// +// AboutCell.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 23/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class AboutCell: UITableViewCell { + + @IBOutlet var versionLabel: UILabel! + @IBOutlet var appNameLabel: UILabel! + @IBOutlet var text1Label: UITextView! + @IBOutlet var text2Label: UITextView! + @IBOutlet var emailLabel: UITextView! + + var linkTapGestureRecognizer: UITapGestureRecognizer! + + func makeLink(text: NSMutableAttributedString, linkText: String, linkUrl: String) { + + let linkRange = (text.string as NSString).rangeOfString(linkText) + text.addAttribute(NSLinkAttributeName, value: linkUrl, range: linkRange) + } + + func setupAboutData() { + + if linkTapGestureRecognizer == nil { + linkTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleLinkTapGestureRecognizer)) + linkTapGestureRecognizer.cancelsTouchesInView = false + linkTapGestureRecognizer.delaysTouchesBegan = false + linkTapGestureRecognizer.delaysTouchesEnded = false + addGestureRecognizer(linkTapGestureRecognizer) + } + + let appVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"]; + if let ver = appVersion { + versionLabel.text = "Version \(ver)" + } + + appNameLabel.text = "Atalasoft MobileImage Capture sample app" + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.alignment = NSTextAlignment.Justified + + let text1 = NSMutableAttributedString(string: "This app shows developers what they could build with the Atalasoft MobileImage Capture SDK. When the user opens the camera, the software can guide them to take the image at the right angle. Access to the camera torch is enabled. Finally, the image taken is processed and cleaned up with eVRS and ready for a backend server process like OCR or storage.", attributes: [ + NSParagraphStyleAttributeName: paragraphStyle, + NSBaselineOffsetAttributeName: NSNumber(float: 0) + ]) + + text1Label.attributedText = text1 + + let text2 = NSMutableAttributedString(string: "To build your own document capture, processing, or viewing app - visit Atalasoft and grab a 30-day evaluation copy for yourself. We'll provide the tools and the support you need to get started!", attributes: [ + NSParagraphStyleAttributeName: paragraphStyle, + NSBaselineOffsetAttributeName: NSNumber(float: 0) + ]) + + makeLink(text2, linkText: "Atalasoft", linkUrl: "http://hubs.ly/H03pzS80") + text2Label.attributedText = text2 + + + let email = NSMutableAttributedString(string: "sales@atalasoft.com") + let emailUrl = "sales@atalasoft.com" + + makeLink(email, linkText: emailUrl, linkUrl: "mailto:sales@atalasoft.com") + emailLabel.attributedText = email + } + + func handleLinkTapGestureRecognizer(tapRecognizer: UITapGestureRecognizer) { + + let view = tapRecognizer.view + let location = tapRecognizer.locationInView(view) + + var linkStr = "" + + if CGRectContainsPoint(text2Label.frame, location) { + linkStr = getLinkOnText(tapRecognizer.locationInView(text2Label), textView: text2Label) + } else if CGRectContainsPoint(emailLabel.frame, location) { + linkStr = getLinkOnText(tapRecognizer.locationInView(emailLabel), textView: emailLabel) + } + + if !linkStr.isEmpty { + let url: NSURL! = NSURL(string: linkStr) + UIApplication.sharedApplication().openURL(url) + } + } + + func getLinkOnText(location: CGPoint, textView: UITextView) -> String { + + var textPosition1 = textView.closestPositionToPoint(location) + var textPosition2:UITextPosition? + if let _ = textPosition1 { + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + if let _ = textPosition2 { + textPosition1 = textView.positionFromPosition(textPosition1!, offset: -1) + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + } else { + return "" + } + } + + let range = textView.textRangeFromPosition(textPosition1!, toPosition: textPosition2!) + let startOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.start) + let endOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.end) + let offsetRange = NSMakeRange(startOffset, endOffset - startOffset) + if offsetRange.location == NSNotFound || offsetRange.length == 0 { + return "" + } + + if NSMaxRange(offsetRange) > textView.attributedText.length { + return "" + } + + let attributedSubstring = textView.attributedText .attributedSubstringFromRange(offsetRange) + let link = attributedSubstring.attribute(NSLinkAttributeName, atIndex: 0, effectiveRange: nil) + + if let linkStr = link { + return linkStr as! String + } + + return "" + } +} diff --git a/Capture Demo/Mobile Capture Demo/AboutViewController.swift b/Capture Demo/Mobile Capture Demo/AboutViewController.swift new file mode 100644 index 0000000..f8ca093 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/AboutViewController.swift @@ -0,0 +1,43 @@ +// +// AboutViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 10/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class AboutViewController: UITableViewController { + + static let cellIdentifier = "AboutCell" + + override func viewDidLoad() { + super.viewDidLoad() + + tableView.estimatedRowHeight = 100.0; + tableView.rowHeight = UITableViewAutomaticDimension; + + tableView.setNeedsLayout() + tableView.layoutIfNeeded() + } + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell: AboutCell! = tableView.dequeueReusableCellWithIdentifier(AboutViewController.cellIdentifier) as! AboutCell! + + cell.setupAboutData() + + cell.selectionStyle = .None + + return cell + } + +} diff --git a/Capture Demo/Mobile Capture Demo/AppDelegate.swift b/Capture Demo/Mobile Capture Demo/AppDelegate.swift new file mode 100644 index 0000000..72ee7e1 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 14/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + return true; + } + + func applicationWillResignActive(application: UIApplication) { + } + + func applicationDidEnterBackground(application: UIApplication) { + } + + func applicationWillEnterForeground(application: UIApplication) { + } + + func applicationDidBecomeActive(application: UIApplication) { + Settings.validateLimitation() + if Settings.ExceedLimitation { + let alert = UIAlertController(title: "Error", message: "You have reached your monthly usage limit.", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default) { action -> Void in }) + + if let wnd = window { + wnd.rootViewController?.presentViewController(alert, animated: true, completion: nil) + } + } + } + + func applicationWillTerminate(application: UIApplication) { + } + + +} + diff --git a/Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..db9bbf3 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,40 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "captureAppIcon-120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "captureAppIcon-180.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/captureAppIcon-120.png b/Capture Demo/Mobile Capture Demo/Assets.xcassets/AppIcon.appiconset/captureAppIcon-120.png new file mode 100644 index 0000000000000000000000000000000000000000..d255ec43e6eaba375b87fa196216eb81dd294317 GIT binary patch literal 12888 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 literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Base.lproj/LaunchScreen.storyboard b/Capture Demo/Mobile Capture Demo/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..b474a11 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Capture Demo/Mobile Capture Demo/Base.lproj/Main.storyboard b/Capture Demo/Mobile Capture Demo/Base.lproj/Main.storyboard new file mode 100644 index 0000000..304def4 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/Base.lproj/Main.storyboard @@ -0,0 +1,531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Capture Demo/Mobile Capture Demo/BaseSettingsViewController.swift b/Capture Demo/Mobile Capture Demo/BaseSettingsViewController.swift new file mode 100644 index 0000000..461c141 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/BaseSettingsViewController.swift @@ -0,0 +1,62 @@ +// +// BaseSettingsViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 19/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class BaseSettingsViewController: UITableViewController { + + var settings : Settings = Settings() + + let CellsFontName = "HelveticaNeue" + let CellsFontSize : CGFloat = 13 + + override func viewWillAppear(animated: Bool) { + settings.load() + + super.viewWillAppear(animated) + } + + override func viewWillDisappear(animated: Bool) { + settings.save() + + super.viewWillDisappear(animated) + } + + + func createSwitchWithTag(tag: Int, value: AnyObject) -> UISwitch{ + let newSwitch = UISwitch() + newSwitch.on = value.boolValue + newSwitch.tag = tag + return newSwitch + } + + func createTextFieldWithTag(tag: Int, frame: CGRect, placeholder: String, text:String) -> UITextField { + let textField = UITextField() + textField.tag = tag + textField.font = UIFont(name: CellsFontName, size: CellsFontSize) + textField.borderStyle = .None + textField.autocorrectionType = .No + textField.returnKeyType = .Done + textField.placeholder = placeholder + textField.textAlignment = .Right + textField.clearButtonMode = .WhileEditing + textField.text = text + textField.frame = frame + return textField + } + + func createSegmentedControlWithTag(tag: Int, items: NSArray, selectedSegment: NSInteger) -> UISegmentedControl{ + let segmentControl = UISegmentedControl(items: items as [AnyObject]) + let dict : Dictionary = [NSFontAttributeName : UIFont(name: CellsFontName, size:15.0)!] + segmentControl.setTitleTextAttributes(dict, forState: .Normal) + segmentControl.selectedSegmentIndex = selectedSegment; + segmentControl.tag = tag; + return segmentControl; + } + +} diff --git a/Capture Demo/Mobile Capture Demo/CameraSettingsViewController.swift b/Capture Demo/Mobile Capture Demo/CameraSettingsViewController.swift new file mode 100644 index 0000000..b4d4d7f --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/CameraSettingsViewController.swift @@ -0,0 +1,187 @@ +// +// CameraSettingsViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class CameraSettingsViewController: BaseSettingsViewController, UITextFieldDelegate { + + var showGallerySwitch : UISwitch? + var stabilityDelayField : UITextField? + var pitchThresholdField : UITextField? + var rollThresholdField : UITextField? + var manualCaptureTimeField : UITextField? + var autoTorchSwitch : UISwitch? + + var selectedTextField : UITextField? + + let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + + var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(SettingsTableViewController.cellIdentifier) + + if cell == nil { + cell = UITableViewCell(style: .Default, reuseIdentifier: SettingsTableViewController.cellIdentifier) + } + + assert(indexPath.section == 0) + + cell.textLabel?.font = UIFont(name:CellsFontName, size:15) + + switch indexPath.row { + case 0: + showGallerySwitch = createSwitchWithTag(indexPath.row, value: settings.CameraShowGallery) + cell.accessoryView = showGallerySwitch + showGallerySwitch?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = "Show Gallery:" + break + + case 1: + stabilityDelayField = createTextFieldWithTag(0, frame: CGRectMake(0, 0, 50, 25), placeholder: "", text: String.localizedStringWithFormat("%d", settings.StabilityDelay)) + stabilityDelayField?.keyboardType = .NumbersAndPunctuation + stabilityDelayField?.delegate = self + cell.accessoryView = stabilityDelayField + cell.textLabel?.text = "Stability Delay (0 - 100):" + break + + case 2: + pitchThresholdField = createTextFieldWithTag(0, frame: CGRectMake(0, 0, 50, 25), placeholder: "", text: String.localizedStringWithFormat("%d", settings.PitchThreshold)) + pitchThresholdField?.keyboardType = .NumbersAndPunctuation + pitchThresholdField?.delegate = self + cell.accessoryView = pitchThresholdField + cell.textLabel?.text = "Pitch Threshold (0 - 45):" + break + + case 3: + rollThresholdField = createTextFieldWithTag(0, frame: CGRectMake(0, 0, 50, 25), placeholder: "", text: String.localizedStringWithFormat("%d", settings.RollThreshold)) + rollThresholdField?.keyboardType = .NumbersAndPunctuation + rollThresholdField?.delegate = self + cell.accessoryView = rollThresholdField + cell.textLabel?.text = "Roll Threshold (0 - 45):" + break + + case 4: + manualCaptureTimeField = createTextFieldWithTag(0, frame: CGRectMake(0, 0, 50, 25), placeholder: "", text: String.localizedStringWithFormat("%d", settings.ManualCaptureTime)) + manualCaptureTimeField?.keyboardType = .NumbersAndPunctuation + manualCaptureTimeField?.delegate = self + cell.accessoryView = manualCaptureTimeField + cell.textLabel?.text = "Manual Capture Time:" + break + + case 5: + autoTorchSwitch = createSwitchWithTag(indexPath.row, value: settings.AutoTorch) + cell.accessoryView = autoTorchSwitch + autoTorchSwitch?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = "Auto Torch:" + break + + default: + assert(indexPath.row < Settings.CameraSettingsCount) + } + + cell.selectionStyle = .None + + return cell + + } + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1; + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + + return captureDevice.hasFlash && captureDevice.hasTorch ? Settings.CameraSettingsCount : Settings.CameraSettingsCount - 1 + } + + @IBAction func switchValueChanged(sender: UISwitch) { + + if sender == showGallerySwitch { + settings.CameraShowGallery = sender.on + } else if sender == autoTorchSwitch { + settings.AutoTorch = sender.on + } + } + + func textFieldShouldBeginEditing(textField: UITextField) -> Bool { + selectedTextField = textField + return true + } + + func textFieldDidBeginEditing(textField: UITextField) { + + var rect = CGRectZero + + if textField == stabilityDelayField { + rect = tableView.rectForRowAtIndexPath(NSIndexPath(forRow: 1, inSection: 0)) + } else if textField == pitchThresholdField { + rect = tableView.rectForRowAtIndexPath(NSIndexPath(forRow: 2, inSection: 0)) + } else if textField == rollThresholdField { + rect = tableView.rectForRowAtIndexPath(NSIndexPath(forRow: 3, inSection: 0)) + } else if textField == manualCaptureTimeField { + rect = tableView.rectForRowAtIndexPath(NSIndexPath(forRow: 4, inSection: 0)) + } + + tableView.setContentOffset(CGPointMake(0, rect.origin.y), animated: true) + } + + func processTextFieldData(textField: UITextField) { + let numbersOnly = NSCharacterSet.decimalDigitCharacterSet() + let characterSetFromTextField = NSCharacterSet(charactersInString: textField.text!) + if !numbersOnly.isSupersetOfSet(characterSetFromTextField) { + return + } + + if textField.isEqual(stabilityDelayField) + { + let intValue = Int(textField.text!) + if intValue < 0 || intValue > 100 + { + textField.text = String.localizedStringWithFormat("%d", 100) + } + + settings.StabilityDelay = Int32(textField.text!)! + + } else if textField.isEqual(pitchThresholdField) + { + let intValue = Int(textField.text!) + if intValue < 0 || intValue > 45 + { + textField.text = String.localizedStringWithFormat("%d", 45) + } + + settings.PitchThreshold = Int32(textField.text!)! + + } else if textField.isEqual(rollThresholdField) + { + let intValue = Int(textField.text!) + if intValue < 0 || intValue > 45 { + textField.text = String.localizedStringWithFormat("%d", 45) + } + settings.RollThreshold = Int32(textField.text!)! + + } else if textField.isEqual(manualCaptureTimeField) + { + settings.ManualCaptureTime = Int32(textField.text!)! + } + } + + func textFieldDidEndEditing(textField: UITextField) { + processTextFieldData(textField) + } + + func textFieldShouldReturn(textField: UITextField) -> Bool { + + textField.resignFirstResponder() + tableView.setContentOffset(CGPointMake(0, 0), animated:true) + + processTextFieldData(textField) + + return true + } +} diff --git a/Capture Demo/Mobile Capture Demo/CaptureViewController.swift b/Capture Demo/Mobile Capture Demo/CaptureViewController.swift new file mode 100644 index 0000000..f63e699 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/CaptureViewController.swift @@ -0,0 +1,260 @@ +// +// CaptureViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +extension UIImage { + static func fromColor(color: UIColor) -> UIImage { + let rect = CGRect(x: 0, y: 0, width: 1, height: 1) + UIGraphicsBeginImageContext(rect.size) + let context = UIGraphicsGetCurrentContext() + CGContextSetFillColorWithColor(context, color.CGColor) + CGContextFillRect(context, rect) + let img = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + + return img + } +} + +class CaptureViewController: UIViewController, kfxKUIImageCaptureControlDelegate , UIImagePickerControllerDelegate, UINavigationControllerDelegate { + + @IBOutlet var cancelButton: UIButton! + @IBOutlet var forceCaptureButton: UIButton! + @IBOutlet var galleryButton: UIButton! + @IBOutlet var torchButton: UIButton! + + @IBOutlet var retakeButton: UIButton! + @IBOutlet var processImageButton: UIButton! + + @IBOutlet weak var captureControl: kfxKUIImageCaptureControl! + @IBOutlet weak var reviewControl: kfxKUIImageReviewAndEdit! + + var waitingIndicator = WaitingIndicator() + + var flashState = kfxKUIFlashOff + var manualCapturing = false + + var captureExperience: kfxKUIDocumentCaptureExperience! + var captureCriteriaHolder = kfxKUIDocumentCaptureExperienceCriteriaHolder() + + let settings : Settings = Settings() + + var forceCaptureTimer: NSTimer? + + var torchEnabled : Bool = false + let torchOnIcon = UIImage(named: "torchon.png") + let torchOffIcon = UIImage(named: "torch_off.png") + + var capturedImage : kfxKEDImage? + let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) + + static let SeguePreviewImageViewController = "PreviewImageViewController" + + override func viewDidLoad() { + super.viewDidLoad() + + waitingIndicator.show("Initializing...", superview: view) + + kfxKUIImageCaptureControl.initializeControl() + kfxKUIImageReviewAndEdit.initializeControl() + + captureControl.delegate = self + captureExperience = kfxKUIDocumentCaptureExperience(captureControl: captureControl, criteria: captureCriteriaHolder) + + self.setNeedsStatusBarAppearanceUpdate() + + processImageButton.layer.cornerRadius = 30; + processImageButton.setBackgroundImage(UIImage.fromColor(UIColor.whiteColor()), forState: .Normal) + processImageButton.setBackgroundImage(UIImage.fromColor(UIColor.grayColor()), forState: UIControlState.Highlighted.union(.Selected)) + processImageButton.clipsToBounds = true + } + + override func viewDidAppear(animated: Bool) { + super.viewDidAppear(animated) + + if capturedImage == nil { + waitingIndicator.show("Initializing...", superview: view) + + self.performSelector(#selector(initializeCaptureControl), withObject:nil, afterDelay: 0.25) + } + } + + override func viewWillAppear(animated: Bool) { + super.viewWillAppear(animated) + + navigationController?.setNavigationBarHidden(true, animated: true) + + if capturedImage == nil { + settings.load() + + manualCapturing = false + + showCaptureControls(false) + showReviewControls(false) + } + } + + override func viewDidDisappear(animated: Bool) { + super.viewDidDisappear(animated) + + navigationController?.setNavigationBarHidden(false, animated:false) + + waitingIndicator.hide() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + override func prefersStatusBarHidden() -> Bool { + return true; + } + + func initializeCaptureControl() { + + captureControl.stabilityDelay = settings.StabilityDelay + captureControl.levelThresholdPitch = settings.PitchThreshold + captureControl.levelThresholdRoll = settings.RollThreshold + captureControl.flash = settings.AutoTorch ? kfxKUIFlashAuto : flashState + + captureControl.pageDetectMode = kfxKUIPageDetectAutomatic + forceCaptureButton.hidden = !manualCapturing + + showCaptureControls() + + waitingIndicator.hide() + + if !manualCapturing { + performSelector(#selector(runManualCapturing), withObject:nil, afterDelay: NSTimeInterval(settings.ManualCaptureTime)) + } + } + + func runManualCapturing() { + + manualCapturing = true + if capturedImage == nil { + forceCaptureButton.hidden = false + } + } + + func showCaptureControls(show: Bool) { + captureControl.hidden = !show + cancelButton.hidden = !show + forceCaptureButton.hidden = !(show && manualCapturing) + torchButton.hidden = !show || settings.AutoTorch || !(captureDevice.hasFlash && captureDevice.hasTorch) + galleryButton.hidden = !show || !settings.CameraShowGallery + + if show { + captureExperience.takePictureContinually() + } else { + captureExperience.stopCapture() + } + } + + func showReviewControls(show: Bool) { + reviewControl.hidden = !show + retakeButton.hidden = !show + processImageButton.hidden = !show + + flashState = captureControl.flash + captureControl.flash = kfxKUIFlashOff + } + + func showCaptureControls() { + showCaptureControls(true) + showReviewControls(false) + + captureControl.flash = flashState + } + + func showReviewControls() { + showCaptureControls(false) + showReviewControls(true) + } + + @IBAction func OnCancelButtonPressed() { + self.navigationController?.popViewControllerAnimated(true) + } + + @IBAction func OnCaptureButtonPressed() { + captureControl.forceTakePicture() + } + + @IBAction func OnTorchButtonPressed() { + + torchEnabled = !torchEnabled + + torchButton.setImage(torchEnabled ? torchOnIcon : torchOffIcon, forState: .Normal) + + captureControl?.flash = torchEnabled ? kfxKUITorch : kfxKUIFlashOff + } + + @IBAction func OnRetakeImagePressed() { + capturedImage = nil + initializeCaptureControl() + } + + @IBAction func OnProcessImagePressed() { + if let kfxImage = capturedImage { + Settings.updateLimitationCounter() + performSegueWithIdentifier(CaptureViewController.SeguePreviewImageViewController, sender: kfxImage) + } + } + + @IBAction func OnOpenGallery() { + + let imagePicker = UIImagePickerController() + imagePicker.delegate = self + imagePicker.sourceType = .PhotoLibrary + navigationController?.presentViewController(imagePicker, animated: true, completion: nil) + } + + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + + if let captureView = captureControl { + captureView.frame = CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height - 70) + } + } + + func imageCaptureControl(imageCaptureControl: kfxKUIImageCaptureControl!, imageCaptured image: kfxKEDImage!) { + previewCapturedImage(image) + } + + func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { + let image = info[UIImagePickerControllerOriginalImage] + + let kfxImage = kfxKEDImage(image: image as! UIImage) + + picker.dismissViewControllerAnimated(true, completion: nil) + previewCapturedImage(kfxImage) + } + + func imagePickerControllerDidCancel(picker: UIImagePickerController) { + picker.dismissViewControllerAnimated(true, completion: nil) + } + + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + if (segue.identifier == CaptureViewController.SeguePreviewImageViewController) + { + let previewViewController: PreviewImageViewController = segue.destinationViewController as! PreviewImageViewController + let image = sender as! kfxKEDImage + + previewViewController.image = image + } + } + + func previewCapturedImage(kfxImage: kfxKEDImage) { + + showReviewControls() + + capturedImage = kfxImage + reviewControl.setImage(kfxImage) + } +} diff --git a/Capture Demo/Mobile Capture Demo/CommonViewController.swift b/Capture Demo/Mobile Capture Demo/CommonViewController.swift new file mode 100644 index 0000000..c4879ca --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/CommonViewController.swift @@ -0,0 +1,27 @@ +// +// CommonViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 14/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import Foundation +import UIKit + +extension UIButton { + func ConfigureButton(image imageName: String) { + self.setImage(UIImage(named: imageName), forState: .Normal) + self.setBackgroundImage(UIImage(named: "bluecircle.png"), forState: .Normal) + self.layer.cornerRadius = 30; + self.backgroundColor = UIColor(red: 0, green: 0x79/255, blue: 0xc2/255, alpha: 1.0) //"#0079C2" + self.imageView?.contentMode = .ScaleAspectFit + } +} + +class CommonViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} \ No newline at end of file diff --git a/Capture Demo/Mobile Capture Demo/HomeViewController.swift b/Capture Demo/Mobile Capture Demo/HomeViewController.swift new file mode 100644 index 0000000..a1f2979 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/HomeViewController.swift @@ -0,0 +1,94 @@ +// +// HomeViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class HomeViewController: UIViewController { + + var mobileSdkInitialized: Bool = false + + @IBOutlet var cameraButton : UIButton! + + static let evrsLIcense = PROCESS_PAGE_SDK_LICENSE + + override func viewDidLoad() { + super.viewDidLoad() + + if !mobileSdkInitialized + { + mobileSdkInitialized = true + + let license = kfxKUTLicensing() + let lic = KFX_ERROR_IMAGE_PROCESSOR(rawValue: UInt32(license.setMobileSDKLicense(HomeViewController.evrsLIcense))) + + if lic == KMC_IP_LICENSE_EXPIRED || lic == KMC_IP_LICENSE_INVALID { + showErrorMessage(lic) + } + } + + NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(applicationIsActive), name: UIApplicationDidBecomeActiveNotification, object: nil) + + cameraButton?.ConfigureButton(image: "camera_button_normal.png") + + navigationItem.title = "MobileImage Document Capture" + } + + override func viewWillAppear(animated: Bool) { + super.viewWillAppear(animated) + + cameraButton.userInteractionEnabled = !Settings.ExceedLimitation + navigationController?.setNavigationBarHidden(false, animated: true) + } + + func applicationIsActive(notification: NSNotification) { + cameraButton.userInteractionEnabled = !Settings.ExceedLimitation + } + + func showErrorMessage(licenseErrorCode: KFX_ERROR_IMAGE_PROCESSOR) { + let errorCode = Int32(licenseErrorCode.rawValue) + let message = kfxError.findErrMsg(errorCode) + let description = kfxError.findErrDesc(errorCode) + + var alertTitle: String + var alertDescription: String + + let split = message.characters.split {$0 == ":"}.map(String.init) + + if split.count == 2 + { + alertTitle = split[0] + alertDescription = String(format: "%@\n\n%@", split[1], description) + + } + else if split.count > 2 + { + var info = ""; + + for item in split { + info = info.stringByAppendingFormat("%@", item) + } + + alertTitle = split[0] + alertDescription = String(format: "%@\n\n%@", info, description) + } + else + { + alertTitle = "License Error!!!" + alertDescription = String(format: "%@\n\n%@", message, description) + + } + + let alert = UIAlertController(title: alertTitle, message: alertDescription, preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default) { action -> Void in }) + self.presentViewController(alert, animated: true, completion: nil) + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } +} diff --git a/Capture Demo/Mobile Capture Demo/ImageProcessorSettingsTableViewController.swift b/Capture Demo/Mobile Capture Demo/ImageProcessorSettingsTableViewController.swift new file mode 100644 index 0000000..6fdb4a0 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/ImageProcessorSettingsTableViewController.swift @@ -0,0 +1,151 @@ +// +// ImageProcessorSettingsTableViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class ImageProcessorSettingsTableViewController: BaseSettingsViewController { + + var useDefaultSettingsSwitch : UISwitch? + + var modeSegment : UISegmentedControl? + var autoCropSwitch : UISwitch? + var autoRotateSwitch : UISwitch? + var deskewSwitch : UISwitch? + var scaleSegment : UISegmentedControl? + + var selectedTextField : UITextField? + + override func viewDidLoad() { + super.viewDidLoad() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + // MARK: - Table view data source + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 2 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + if section == 0 { + return 1 + } else if section == 1 { + return 5 + } + + return 0 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + + var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(SettingsTableViewController.cellIdentifier) + + if cell == nil { + cell = UITableViewCell(style: .Default, reuseIdentifier: SettingsTableViewController.cellIdentifier) + } + + cell.textLabel?.font = UIFont(name:CellsFontName, size:15) + + if indexPath.section == 0 { + if indexPath.row == 0 { + useDefaultSettingsSwitch = createSwitchWithTag(indexPath.row, value: settings.UseDefaultSettings) + cell.accessoryView = useDefaultSettingsSwitch + useDefaultSettingsSwitch?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = "Use Default Settings:" + } + } else if indexPath.section == 1 { + switch indexPath.row { + case 0: + modeSegment = createSegmentedControlWithTag(0, items: ["BW", "Gray", "Color"], selectedSegment: settings.Mode) + modeSegment?.addTarget(self, action:#selector(captureExperienceSwitchAction), forControlEvents:.ValueChanged) + cell.accessoryView = modeSegment; + cell.textLabel?.text = "Mode:" + + case 1: + autoCropSwitch = createSwitchWithTag(indexPath.row, value: settings.AutoCrop) + cell.accessoryView = autoCropSwitch + autoCropSwitch?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = "Auto Crop:" + + case 2: + autoRotateSwitch = createSwitchWithTag(indexPath.row, value: settings.AutoRotate) + cell.accessoryView = autoRotateSwitch + autoRotateSwitch?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = "Auto Rotate:" + + case 3: + deskewSwitch = createSwitchWithTag(indexPath.row, value: settings.Deskew) + cell.accessoryView = deskewSwitch + deskewSwitch?.addTarget(self, action: #selector(switchValueChanged), forControlEvents: .ValueChanged) + cell.textLabel?.text = "Deskew:" + + case 4: + scaleSegment = createSegmentedControlWithTag(0, items: ["No", "200", "300", "400"], selectedSegment: settings.Scale) + scaleSegment?.addTarget(self, action:#selector(captureExperienceSwitchAction), forControlEvents:.ValueChanged) + cell.accessoryView = scaleSegment; + cell.textLabel?.text = "Scale (dpi):" + + default: + assert(false) + } + } + + cell.selectionStyle = .None + + let enabledCell = !settings.UseDefaultSettings || (indexPath.section == 0 && indexPath.row == 0) + cell.userInteractionEnabled = enabledCell + cell.textLabel?.enabled = enabledCell + cell.accessoryView?.userInteractionEnabled = enabledCell + + return cell! + } + + override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { + if section == 0 { + return 0.5 + } + + return 25 + } + + + // MARK: - Handlers + + @IBAction func switchValueChanged(sender: UISwitch) { + + if sender == useDefaultSettingsSwitch { + settings.UseDefaultSettings = sender.on + tableView.reloadData() + } else if sender == autoCropSwitch { + settings.AutoCrop = sender.on + } else if sender == autoRotateSwitch { + settings.AutoRotate = sender.on + } else if sender == deskewSwitch { + settings.Deskew = sender.on + } + } + + @IBAction func captureExperienceSwitchAction(sender:UISegmentedControl) { + + if sender == modeSegment { + settings.Mode = sender.selectedSegmentIndex + } else if sender == scaleSegment { + settings.Scale = sender.selectedSegmentIndex + } + + tableView.reloadData() + } + + func textFieldShouldBeginEditing(textField: UITextField) -> Bool { + selectedTextField = textField + return true + } +} diff --git a/Capture Demo/Mobile Capture Demo/Info.plist b/Capture Demo/Mobile Capture Demo/Info.plist new file mode 100644 index 0000000..d86b65d --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/Info.plist @@ -0,0 +1,40 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + MobileImage + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + + diff --git a/Capture Demo/Mobile Capture Demo/LicenseAgreementCell.swift b/Capture Demo/Mobile Capture Demo/LicenseAgreementCell.swift new file mode 100644 index 0000000..8600fcc --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/LicenseAgreementCell.swift @@ -0,0 +1,103 @@ +// +// LicenseAgreementCell.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 30/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class LicenseAgreementCell: UITableViewCell { + + @IBOutlet var license: UITextView! + + var linkTapGestureRecognizer: UITapGestureRecognizer! + + func makeLink(text: NSMutableAttributedString, linkText: String, linkUrl: String) { + + let linkRange = (text.string as NSString).rangeOfString(linkText) + text.addAttribute(NSLinkAttributeName, value: linkUrl, range: linkRange) + } + + func setupLicenseData() { + + if linkTapGestureRecognizer == nil { + linkTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleLinkTapGestureRecognizer)) + linkTapGestureRecognizer.cancelsTouchesInView = false + linkTapGestureRecognizer.delaysTouchesBegan = false + linkTapGestureRecognizer.delaysTouchesEnded = false + addGestureRecognizer(linkTapGestureRecognizer) + } + + let path = NSBundle.mainBundle().pathForResource("eula", ofType: "rtf") + do { + let text = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding) + + let eula = try NSMutableAttributedString(data: text.dataUsingEncoding(NSUTF8StringEncoding)!, options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType], documentAttributes: nil) + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.alignment = NSTextAlignment.Justified + paragraphStyle.hyphenationFactor = 1 + + eula.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, eula.length)) + makeLink(eula, linkText: "www.kofax.com", linkUrl: "http://www.kofax.com") + + license.attributedText = eula + } catch { + } + } + + func handleLinkTapGestureRecognizer(tapRecognizer: UITapGestureRecognizer) { + + let view = tapRecognizer.view + let location = tapRecognizer.locationInView(view) + + var linkStr = "" + + if CGRectContainsPoint(license.frame, location) { + linkStr = getLinkOnText(tapRecognizer.locationInView(license), textView: license) + } + + if !linkStr.isEmpty { + let url: NSURL! = NSURL(string: linkStr) + UIApplication.sharedApplication().openURL(url) + } + } + + func getLinkOnText(location: CGPoint, textView: UITextView) -> String { + + var textPosition1 = textView.closestPositionToPoint(location) + var textPosition2:UITextPosition? + if let _ = textPosition1 { + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + if let _ = textPosition2 { + textPosition1 = textView.positionFromPosition(textPosition1!, offset: -1) + textPosition2 = textView.positionFromPosition(textPosition1!, offset: 1) + } else { + return "" + } + } + + let range = textView.textRangeFromPosition(textPosition1!, toPosition: textPosition2!) + let startOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.start) + let endOffset = textView.offsetFromPosition(textView.beginningOfDocument, toPosition: range!.end) + let offsetRange = NSMakeRange(startOffset, endOffset - startOffset) + if offsetRange.location == NSNotFound || offsetRange.length == 0 { + return "" + } + + if NSMaxRange(offsetRange) > textView.attributedText.length { + return "" + } + + let attributedSubstring = textView.attributedText .attributedSubstringFromRange(offsetRange) + let link = attributedSubstring.attribute(NSLinkAttributeName, atIndex: 0, effectiveRange: nil) + + if let linkStr = link { + return linkStr.absoluteString + } + + return "" + } +} diff --git a/Capture Demo/Mobile Capture Demo/LicenseAgreementViewController.swift b/Capture Demo/Mobile Capture Demo/LicenseAgreementViewController.swift new file mode 100644 index 0000000..2a691a2 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/LicenseAgreementViewController.swift @@ -0,0 +1,43 @@ +// +// LicenseAgreementViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 30/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class LicenseAgreementViewController: UITableViewController { + + static let cellIdentifier = "LicenseCell" + + override func viewDidLoad() { + super.viewDidLoad() + + tableView.estimatedRowHeight = 100.0; + tableView.rowHeight = UITableViewAutomaticDimension; + + tableView.setNeedsLayout() + tableView.layoutIfNeeded() + } + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell: LicenseAgreementCell! = tableView.dequeueReusableCellWithIdentifier(LicenseAgreementViewController.cellIdentifier) as! LicenseAgreementCell! + + cell.setupLicenseData() + + cell.selectionStyle = .None + + return cell + } + +} diff --git a/Capture Demo/Mobile Capture Demo/PhotoAlbum.swift b/Capture Demo/Mobile Capture Demo/PhotoAlbum.swift new file mode 100644 index 0000000..a9110a8 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/PhotoAlbum.swift @@ -0,0 +1,74 @@ +// +// PhotoAlbum.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 17/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import Photos + +class PhotoAlbum { + + static let albumName = "Mobile Image Album" + static let sharedInstance = PhotoAlbum() + + var assetCollection: PHAssetCollection! + + init() { + + func fetchAssetCollectionForAlbum() -> PHAssetCollection! { + + PHPhotoLibrary.requestAuthorization { status in + switch status { + case .Authorized: + break + case .Restricted: + return + case .Denied: + return + default: + // place for .NotDetermined - in this callback status is already determined so should never get here + break + } + } + let fetchOptions = PHFetchOptions() + fetchOptions.predicate = NSPredicate(format: "title = %@", PhotoAlbum.albumName) + let collection = PHAssetCollection.fetchAssetCollectionsWithType(.Album, subtype: .Any, options: fetchOptions) + + if let _: AnyObject = collection.firstObject { + return collection.firstObject as! PHAssetCollection + } + + return nil + } + + if let assetCollection = fetchAssetCollectionForAlbum() { + self.assetCollection = assetCollection + return + } + + PHPhotoLibrary.sharedPhotoLibrary().performChanges({ + PHAssetCollectionChangeRequest.creationRequestForAssetCollectionWithTitle(PhotoAlbum.albumName) + }) { success, _ in + if success { + self.assetCollection = fetchAssetCollectionForAlbum() + } + } + } + + func saveImage(image: UIImage, completionHandler: (result: Bool, error: NSError?) -> Void) { + + if assetCollection == nil { + return // If there was an error upstream, skip the save. + } + + PHPhotoLibrary.sharedPhotoLibrary().performChanges( + { + let assetChangeRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image) + let assetPlaceholder = assetChangeRequest.placeholderForCreatedAsset + let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.assetCollection) + albumChangeRequest!.addAssets([assetPlaceholder!]) + }, completionHandler: completionHandler) + } +} \ No newline at end of file diff --git a/Capture Demo/Mobile Capture Demo/PreviewImageViewController.swift b/Capture Demo/Mobile Capture Demo/PreviewImageViewController.swift new file mode 100644 index 0000000..2ed046e --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/PreviewImageViewController.swift @@ -0,0 +1,194 @@ +// +// PreviewImageViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 10/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit +import MessageUI + +class PreviewImageViewController: UIViewController, kfxKIPDelegate, MFMailComposeViewControllerDelegate { + + @IBOutlet var saveGalleryButton : UIButton! + @IBOutlet var sendMailButton : UIButton! + + @IBOutlet var imageView : kfxKUIImageReviewAndEdit! + + var image : kfxKEDImage? + let processor = kfxKENImageProcessor.instance() + + var closeButton: UIBarButtonItem! + + let waitingIndicator = WaitingIndicator() + var openedEmail = false + + override func viewDidLoad() { + super.viewDidLoad() + + saveGalleryButton.ConfigureButton(image: "gallery.png") + sendMailButton.ConfigureButton(image: "email.png") + + imageView.layer.borderColor = UIColor(red: 1, green: 0, blue: 0, alpha: 1.0).CGColor + + sendMailButton.enabled = MFMailComposeViewController.canSendMail() + + navigationItem.setHidesBackButton(true, animated: true); + + closeButton = UIBarButtonItem(title: "Close", style: .Done, target: self, action: #selector(onClosePreview)) + navigationItem.rightBarButtonItem = closeButton + } + + func GetTopView() -> UIView { + + return (navigationController?.view)! + } + + override func viewDidAppear(animated: Bool) { + super.viewDidAppear(animated) + + if !openedEmail { + self.performSelector(#selector(processImage), withObject:nil, afterDelay: 0.25) + } + + openedEmail = false + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + func processImage() { + + waitingIndicator.show("Processing image...", superview: GetTopView()) + + let ipSettings = Settings() + if !Settings.UseDefaultIPSettings() { + ipSettings.load() + } + + let basicSettings = kfxKEDBasicSettingsProfile() + + if ipSettings.Mode == 0 { + basicSettings.specifyOutputBitDepth(KED_BITDEPTH_BITONAL) + } else if ipSettings.Mode == 1 { + basicSettings.specifyOutputBitDepth(KED_BITDEPTH_GRAYSCALE) + } else { + basicSettings.specifyOutputBitDepth(KED_BITDEPTH_COLOR) + } + + basicSettings.doCrop = ipSettings.AutoCrop ? KED_CROP_AUTO : KED_CROP_NONE + basicSettings.doRotate = ipSettings.AutoRotate ? KED_AUTOMATIC : KED_ROTATE_NONE + basicSettings.doDeskew = ipSettings.Deskew + + if ipSettings.Scale == 1 { + basicSettings.outputDPI = 200 + } else if ipSettings.Scale == 2 { + basicSettings.outputDPI = 300 + } else if ipSettings.Mode == 3 { + basicSettings.outputDPI = 400 + } + + processor.delegate = self + processor.basicSettingsProfile = basicSettings + + let res = processor.processImage(image) + if res != KMC_SUCCESS { + print("Error \(res)") + waitingIndicator.hide() + + let alert = UIAlertController(title: "Error", message: "Failed to run image processing. Error: \(res)", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) + self.presentViewController(alert, animated: true, completion: nil) + } + } + + @IBAction func onClosePreview() { + let confirmAlert = UIAlertController(title: "", message: "Are you sure to close?", preferredStyle: .Alert) + confirmAlert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { (action) in + self.navigationController?.popToRootViewControllerAnimated(true) + })) + confirmAlert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: nil)) + + self.presentViewController(confirmAlert, animated: true, completion: nil) + } + + @IBAction func onSaveImageToGallery() { + + if let kfxImage = image { + dispatch_async(dispatch_get_main_queue(), { + self.waitingIndicator.show("Saving image...", superview: self.GetTopView()) + }) + + PhotoAlbum.sharedInstance.saveImage(kfxImage.getImageBitmap(), completionHandler: {(result: Bool, error: NSError?) in + + var title = "" + var message = "" + + if result { + message = "Image saved successfully" + } else { + title = "Error" + message = "Failed to save image to gallery." + } + dispatch_async(dispatch_get_main_queue(), { + + self.waitingIndicator.hide() + + let confirmAlert = UIAlertController(title: title, message: message, preferredStyle: .Alert) + confirmAlert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) + + self.presentViewController(confirmAlert, animated: true, completion: nil) + }) + }) + } + } + + @IBAction func onSendImageByMail() { + + if !MFMailComposeViewController.canSendMail() { + return + } + + openedEmail = true + + let mailComposeVC = MFMailComposeViewController() + mailComposeVC.mailComposeDelegate = self + + if let kfxImage = image { + mailComposeVC.addAttachmentData(UIImageJPEGRepresentation(kfxImage.getImageBitmap(), 1.0)!, mimeType: "image/png", fileName: "image.png") + } + + mailComposeVC.setSubject("Email Subject") + + self.presentViewController(mailComposeVC, animated: true, completion: nil) + + } + + func imageOut(status: Int32, withMsg errorMsg: String!, andOutputImage kfxImage: kfxKEDImage!) { + + dispatch_async(dispatch_get_main_queue(), { + self.image = kfxImage + self.imageView.setImage(self.image) + self.waitingIndicator.hide() + }) + } + + func processProgress(status: Int32, withMsg errorMsg: String!, imageID: String!, andProgress percent: Int32) { + dispatch_async(dispatch_get_main_queue(), { + self.waitingIndicator.updateMessage("Processing image... \(percent)%") + }) + } + + func analysisProgress(status: Int32, withMsg errorMsg: String!, imageID: String!, andProgress percent: Int32) { + } + + func analysisComplete(status: Int32, withMsg errorMsg: String!, andOutputImage kfxImage: kfxKEDImage!) { + } + + + func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) { + self.dismissViewControllerAnimated(true, completion: nil) + } +} diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/bluecircle.png b/Capture Demo/Mobile Capture Demo/Resources/Images/bluecircle.png new file mode 100755 index 0000000000000000000000000000000000000000..162a96a836cc35a09f82fe1dff16fa3a53c1cb02 GIT binary patch literal 2088 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD4M^IaWiw)6VE&Nl>>S|f?5q$_l%JNFlghwg z(c2q(H~)5sh<#^%%n~vC1snVLM7!6A21oCdmRfs^&2#e7mrhbU&)(2laHE&z~{PI!uxCyrcRThvmzv{dUFZG3gy^ zb-#8vUh&{PbM{-W{}-2rtz6EmGS4X|+_qNkV`jsYmDcO{74EtH{GfT?@y@YR0cujmq_3Pe^7xo*x)Ae~4RVVg(vFbbbg8P?`o$ja>sDE+m70da^h-GPU zPye-Q_r>!S3tZFP9P-4j(`E01V-D}GFF&?J*Yd$*#iD4VSmQnsr+<@@**16VocKA< zd2P!a=~=T+7u!Fv+p4wj{FQa9rlszcb*Yi)Q#DzTaG2+vRm28HqZJd{dG^T`1O_uR z`%DSA5;R4kb9o|P>f6ev4TlSl%-~&feWs~f=J|($?^9V zwdYr`A2`gnWd`%dU+eY$ZqWX;(MfMl_2$>FgnVpP?q7L(<<~1*?^dte+A;B$?bf#a zp&rS3X%jBm*ttz;7eB2KcR01C=0d@L=E}03?W##isG9 zQ$?S0KiyMQ9zFebndgs?A7MWNfB5}~`yrX~a8g0!56>M+HOetPbFV&rp8WYub5-ZUIm= z1A|S46_A;mT9T+xk(-lOY*k^a1Xf`MWP^nDl@!2AO0sR0B76fBob!uP6-@O^^bC~j zxD*r=Y>HCStb$zJpxS{vTcwPWk^(Dz{qpj1y>er{{GxPyLrY6beFGzXBO_g)3f4M^0=zbG>mXfw!sJ3||=N)$1uJvRCv%aI%d@hMmo=v6x|8+~}N z*>U+CQjcU{VDj~JaSW+oe0zbB7Z|RG7JT=A`-V|agGa(3;Xnf;GutR*G!TeP361?$S+XvbaqxKD9TUE%t>WnsJPWT^?bfas>E^o-Jj2`;Vk7_#v~T3 z{*S@QYjcC66wBSWdbgc)XXke3CMRv%oL_$2Fa3CV+Ufo;M_lt4{A1KA`jGJGBul;P z4hD8!6&Bu&iiQsZ9`y@&?vM!L-+XuOHM6g_w!drlpa1^T?)>i*_MrLGYw!C;8N6;? z6>=i#vGC-uSA3rH5`|-Pv~D-f*A#1KIJNKnrcWvlE}mCm$a@?2xNh<0l}gOgLjDY2 zy%NqlJra4b?(J%Up6UaQlNZW6y^35A-0Sb-q{Ukjw%CHb#LxAk#f6n_-hU?)F zbnv2D-LctHc5+YE^v_)BpE_&K>#_^>oHqO?cbi&Ti2S^`;zW$x3&yp(uSsOQ%64zw zIq}b?b2Fp<7c5!4viy{Lw}W`b`_)x1E1pE|R=De=dFlGPUx^!EI!1rF^KhX@@C>69 z{W^~mb4wIXiT-vry>&)(^5t_A531GQEAMumXkHj->Xqz!?(C*h;!3g~w|_Y{Yu2x8 zUY6xNFIfK?s0*d4lrEcaqr&FcB9}%TF}p6S%N9FCCRBKc_&xGWE4cPhbmEG%J82;k zD|8kWY`Ff=Mf9DyW$8xOB}eThim@M^V4=d-VW;zPRz<9gnB_#V+D8f6+a*@#2R^Oy zejY33q2o12p?cryjhkcNuc^AdF@H|=2BqEqK#qq z9+K1Ve^_z6LR-tP`uXl#=HGgY`JYrD?r*caecA2u{w4o??)%lx+Bf50?bRvQ=S=!G z@!QmId%tb{*85F)T3O`oMSmB>Ufp+PU+>TmmJ z>h3x!XSgFPo4=!Z(bG#Oq%D=3Q{Nc<>ajf*sC@Zb`Wu5HxA_|npICpxs(LP8N{{IK zV)I}RrnCTyGm3?r6BgQtGJU!J_wuQg*POERt^RgR{a70w)jaR+?c}Mk*Mt1Fim^?b z)EH8{>C)*RN0x~Gb+y--$RIR3f6K-XycS=?Gt6(_NMYW`k#PESZce(m&0oWqTlwZ! z?tC&g{wU0H`S&-s{Z^Y6+>ec_+94Yxf9Ns)v}yl#ZrJkWhw%lm2b+HDC!`iuzVl-@ z0TvJn$sR$z3=Fw57#NEC7#KcPGcdH=VqnOd!ocuUih;pcoq<78e5R*NJp%*tT~8Os zkcwMxt{5^hFmN0;II#cu!-m<)6E7^DyM*CKx(b6q1_O`Ofdz~}x|t1$=8=N%!8DR0 z+={`9fSPbA#x#)v#T2>~=+RM+L1K!6NI*#ogrb+i7&FM=1SV8Gj)f&)gd#kODReBV n$rSsHRF5^BW@2FY|DTzG^D^t%R1Q$1fq}u()z4*}Q$iB}sL3ct literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/camera@2x.png b/Capture Demo/Mobile Capture Demo/Resources/Images/camera@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..5fc5e2afc5210dfd95afdba68f3b91489d8a0214 GIT binary patch literal 6740 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 qy8!h*@S1OI2x591Rw3=>G+*ROa00000>G{% literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/email@2x.png b/Capture Demo/Mobile Capture Demo/Resources/Images/email@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..c115b2b1b0a47d741bf5d6923cba98743e54fb52 GIT binary patch literal 3329 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 LNkvXXu0mjfmiHdu literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/gallery@2x.png b/Capture Demo/Mobile Capture Demo/Resources/Images/gallery@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..ae0effd3fc24e70e028c852c7960b4ad00cbd936 GIT binary patch literal 7761 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 literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/logo.png b/Capture Demo/Mobile Capture Demo/Resources/Images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..75be9d5334e46ac36b52d09572f5937873bb9316 GIT binary patch literal 7600 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 BX(s>x literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/settings_icon.png b/Capture Demo/Mobile Capture Demo/Resources/Images/settings_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..a3b3340e873c9f66da3b1cf0608261f2fa058e01 GIT binary patch literal 3652 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 literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/torchon@2x.png b/Capture Demo/Mobile Capture Demo/Resources/Images/torchon@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..99ba911e69aa3bc72cbdea06a4d13ba74e972082 GIT binary patch literal 6498 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 literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Resources/Images/useImage@2x.png b/Capture Demo/Mobile Capture Demo/Resources/Images/useImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8363bc2927500974cb5495f5cf92dc7e5e16ecc5 GIT binary patch literal 5027 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 literal 0 HcmV?d00001 diff --git a/Capture Demo/Mobile Capture Demo/Settings.swift b/Capture Demo/Mobile Capture Demo/Settings.swift new file mode 100644 index 0000000..0123d99 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/Settings.swift @@ -0,0 +1,197 @@ +// +// Settings.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 01/05/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import Foundation + +class Settings { + + static let CameraSettingsCount = 6 + static let MaxUsagesPerMonth = 100 // set to -1 to disable usage limitation + + static var ExceedLimitation = false + + // Camera settings + + var CameraShowGallery : Bool = true + var StabilityDelay : Int32 = 95 + var PitchThreshold : Int32 = 45 + var RollThreshold : Int32 = 45 + var ManualCaptureTime : Int32 = 15 + var AutoTorch : Bool = true + + // IP settings + var UseDefaultSettings : Bool = true + var Mode : Int = 0 + var AutoCrop : Bool = true + var AutoRotate : Bool = true + var Deskew : Bool = true + var Scale : Int = 1 + + // Camera settings keys + static let CameraShowGalleryKey = "CameraShowGallery" + static let StabilityDelayKey = "StabilityDelay" + static let PitchThresholdKey = "PitchThreshold" + static let RollThresholdKey = "RollThreshold" + static let ManualCaptureTimeKey = "ManualCaptureTime" + static let AutoTorchKey = "AutoTorch" + + static let UseDefaultSettingsKey = "UseDefaultSettings" + static let ModeKey = "Mode" + static let AutoCropKey = "AutoCrop" + static let AutoRotateKey = "AutoRotate" + static let DeskewKey = "Deskew" + static let ScaleKey = "Scale" + + static let ShotsCounterKey = "UsageCounter" + static let UsageUpdateDateKey = "UsageUpdateDate" + + func load() { + + let userDefaults = NSUserDefaults.standardUserDefaults() + + let keys = userDefaults.dictionaryRepresentation().keys + + // load camera settings + if keys.contains(Settings.CameraShowGalleryKey) { + CameraShowGallery = userDefaults.boolForKey(Settings.CameraShowGalleryKey) + } + if keys.contains(Settings.StabilityDelayKey) { + StabilityDelay = Int32(userDefaults.integerForKey(Settings.StabilityDelayKey)) + } + if keys.contains(Settings.PitchThresholdKey) { + PitchThreshold = Int32(userDefaults.integerForKey(Settings.PitchThresholdKey)) + } + if keys.contains(Settings.RollThresholdKey) { + RollThreshold = Int32(userDefaults.integerForKey(Settings.RollThresholdKey)) + } + if keys.contains(Settings.ManualCaptureTimeKey) { + ManualCaptureTime = Int32(userDefaults.integerForKey(Settings.ManualCaptureTimeKey)) + } + if keys.contains(Settings.AutoTorchKey) { + AutoTorch = userDefaults.boolForKey(Settings.AutoTorchKey) + } + + UseDefaultSettings = Settings.UseDefaultIPSettings() + if keys.contains(Settings.ModeKey) { + Mode = userDefaults.integerForKey(Settings.ModeKey) + } + if keys.contains(Settings.AutoCropKey) { + AutoCrop = userDefaults.boolForKey(Settings.AutoCropKey) + } + if keys.contains(Settings.AutoRotateKey) { + AutoRotate = userDefaults.boolForKey(Settings.AutoRotateKey) + } + if keys.contains(Settings.DeskewKey) { + Deskew = userDefaults.boolForKey(Settings.DeskewKey) + } + if keys.contains(Settings.ScaleKey) { + Scale = userDefaults.integerForKey(Settings.ScaleKey) + } + } + + func save() { + + let userDefaults = NSUserDefaults.standardUserDefaults() + + // save camera settings + userDefaults.setBool(CameraShowGallery, forKey: Settings.CameraShowGalleryKey) + userDefaults.setInteger(Int(StabilityDelay), forKey: Settings.StabilityDelayKey) + userDefaults.setInteger(Int(PitchThreshold), forKey: Settings.PitchThresholdKey) + userDefaults.setInteger(Int(RollThreshold), forKey: Settings.RollThresholdKey) + userDefaults.setInteger(Int(ManualCaptureTime), forKey: Settings.ManualCaptureTimeKey) + userDefaults.setBool(AutoTorch, forKey: Settings.AutoTorchKey) + + saveIPSettings() + + userDefaults.synchronize() + } + + static func UseDefaultIPSettings() -> Bool { + let userDefaults = NSUserDefaults.standardUserDefaults() + + if userDefaults.dictionaryRepresentation().keys.contains(Settings.UseDefaultSettingsKey) { + return userDefaults.boolForKey(Settings.UseDefaultSettingsKey) + } + + return true + } + + + func saveIPSettings() { + let userDefaults = NSUserDefaults.standardUserDefaults() + + userDefaults.setBool(UseDefaultSettings, forKey: Settings.UseDefaultSettingsKey) + userDefaults.setInteger(Mode, forKey: Settings.ModeKey) + userDefaults.setBool(AutoCrop, forKey: Settings.AutoCropKey) + userDefaults.setBool(AutoRotate, forKey: Settings.AutoRotateKey) + userDefaults.setBool(Deskew, forKey: Settings.DeskewKey) + userDefaults.setInteger(Scale, forKey: Settings.ScaleKey) + + userDefaults.synchronize() + } + + static func MonthOfDate(date: NSDate) -> Int { + + let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) + let dateComponents = calendar?.components(NSCalendarUnit.Month, fromDate: date) + if let components = dateComponents { + return components.month + } + return -1 + } + + static func validateLimitation() { + if Settings.MaxUsagesPerMonth == -1 { + return + } + + let userDefaults = NSUserDefaults.standardUserDefaults() + let keys = userDefaults.dictionaryRepresentation().keys + + var exceeded = false + if keys.contains(Settings.ShotsCounterKey) && keys.contains(Settings.UsageUpdateDateKey) { + let lastDateInterval : Int = userDefaults.integerForKey(Settings.UsageUpdateDateKey) + + let lastDateMonth = MonthOfDate(NSDate(timeIntervalSince1970: NSTimeInterval(lastDateInterval))) + let todaysMonth = MonthOfDate(NSDate()) + + if lastDateMonth == todaysMonth { + let shotsCounter = userDefaults.integerForKey(Settings.ShotsCounterKey) + exceeded = shotsCounter >= Settings.MaxUsagesPerMonth + } + } + + ExceedLimitation = exceeded + } + + static func updateLimitationCounter() { + if Settings.MaxUsagesPerMonth == -1 { + return + } + + let userDefaults = NSUserDefaults.standardUserDefaults() + let keys = userDefaults.dictionaryRepresentation().keys + var shotsCounter = 0 + + if keys.contains(Settings.ShotsCounterKey) && keys.contains(Settings.UsageUpdateDateKey) { + let lastDateInterval : Int = userDefaults.integerForKey(Settings.UsageUpdateDateKey) + + let lastDateMonth = MonthOfDate(NSDate(timeIntervalSince1970: NSTimeInterval(lastDateInterval))) + let todaysMonth = MonthOfDate(NSDate()) + + if lastDateMonth == todaysMonth { + shotsCounter = userDefaults.integerForKey(Settings.ShotsCounterKey) + } + } + + shotsCounter += 1 + + userDefaults.setInteger(shotsCounter, forKey: Settings.ShotsCounterKey) + userDefaults.setInteger(Int(NSDate().timeIntervalSince1970), forKey: Settings.UsageUpdateDateKey) + } +} diff --git a/Capture Demo/Mobile Capture Demo/SettingsTableViewController.swift b/Capture Demo/Mobile Capture Demo/SettingsTableViewController.swift new file mode 100644 index 0000000..0781900 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/SettingsTableViewController.swift @@ -0,0 +1,73 @@ +// +// SettingsTableViewController.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class SettingsTableViewController: UITableViewController { + + static let cellIdentifier = "SettingsCellIdentifier" + static let SegueCameraSettingsViewController = "CameraSettingsViewController" + static let SegueImageProcessorSettingsViewController = "ImageProcessorSettingsViewController" + static let SegueAboutViewController = "AboutViewController" + static let SegueLicenseAgreementViewController = "LicenseAgreementViewController" + + override func viewDidLoad() { + super.viewDidLoad() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + + // MARK: - Table view data source + + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 1 + } + + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 4 + } + + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(SettingsTableViewController.cellIdentifier) + if cell == nil { + cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: SettingsTableViewController.cellIdentifier) + } + + if indexPath.row == 0 { + cell.textLabel?.text = "Camera" + } else if indexPath.row == 1 { + cell.textLabel?.text = "Image Processor" + } else if indexPath.row == 2 { + cell.textLabel?.text = "About" + } else if indexPath.row == 3 { + cell.textLabel?.text = "License Agreement" + } + + cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator + + return cell + } + + override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + + var segueName = SettingsTableViewController.SegueCameraSettingsViewController + + if indexPath.row == 1 { + segueName = SettingsTableViewController.SegueImageProcessorSettingsViewController + } else if indexPath.row == 2 { + segueName = SettingsTableViewController.SegueAboutViewController + } else if indexPath.row == 3 { + segueName = SettingsTableViewController.SegueLicenseAgreementViewController + } + + performSegueWithIdentifier(segueName, sender: self) + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } +} diff --git a/Capture Demo/Mobile Capture Demo/WaitingIndicator.swift b/Capture Demo/Mobile Capture Demo/WaitingIndicator.swift new file mode 100644 index 0000000..3688db0 --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/WaitingIndicator.swift @@ -0,0 +1,63 @@ +// +// WaitingIndicator.swift +// Mobile Capture Demo +// +// Created by Michael Chernikov on 07/06/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +import UIKit + +class WaitingIndicator: UIView { + + var message = UILabel() + var indicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.WhiteLarge) + + let messageLabelHeight: CGFloat = 30 + + override func layoutSubviews() { + super.layoutSubviews() + + let screenRect = UIScreen.mainScreen().bounds + + frame = CGRectMake(0, 0, screenRect.width, screenRect.height) + + let labelFrame = CGRectMake(30, screenRect.midY - messageLabelHeight / 2, screenRect.width - 60, messageLabelHeight) + message.frame = labelFrame + + let indicatorSize = indicator.frame.size + let indicatorRect = CGRectMake(screenRect.midX - indicatorSize.width / 2 , labelFrame.minY - 20 - indicatorSize.height, indicatorSize.width, indicatorSize.height) + indicator.frame = indicatorRect + } + + func show(text: String, superview: UIView) { + message.text = text + indicator.startAnimating() + + message.textColor = UIColor.whiteColor() + message.textAlignment = .Center + message.font = message.font.fontWithSize(24) + message.adjustsFontSizeToFitWidth = true + + addSubview(message) + addSubview(indicator) + + backgroundColor = UIColor.grayColor() + alpha = 0.5 + + superview.addSubview(self) + superview.bringSubviewToFront(self) + } + + func hide() { + message.removeFromSuperview() + indicator.removeFromSuperview() + hidden = true + removeFromSuperview() + } + + func updateMessage(text: String) { + message.text = text + } +} + \ No newline at end of file diff --git a/Capture Demo/Mobile Capture Demo/eula.rtf b/Capture Demo/Mobile Capture Demo/eula.rtf new file mode 100644 index 0000000..c8b7fdf --- /dev/null +++ b/Capture Demo/Mobile Capture Demo/eula.rtf @@ -0,0 +1,26 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 ArialMT;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;} +{\info +{\author Peter Lawrence} +{\*\company Kofax, Inc.}}\margl720\margr720\margb720\margt720\viewkind1 +\deftab720 +\pard\pardeftab720\ri0\sb100\sa100\partightenfactor0 + +\f0\fs20 \cf0 This End-User License Agreement (\'93Agreement\'94) governs your use of the Atalasoft Mobile Application software (\'93Software\'94) provided by Atalasoft, Inc and its affiliates (\'93Atalasoft\'94). Your use of the Software constitutes your acceptance of the terms of this Agreement. Your use of the Software is also subject to the signed agreement between Atalasoft and your employer or in the absence of a signed agreement, Atalasoft\'92s standard license terms as made available at {\field{\*\fldinst{HYPERLINK "http://www.Kofax.com"}}{\fldrslt \cf2 \ul \ulc2 www.Kofax.com}}.\ +\pard\pardeftab720\ri0\sb100\sa100\partightenfactor0 + +\b \cf0 1. License. +\b0 Atalasoft grants to you a nontransferable, nonexclusive, license to install and use one copy of the Software, in object code form only, solely on your mobile device. You agree to the following license restrictions: (a) to not duplicate, copy or redistribute the Software except as necessary for use on your mobile device; and (b) to not modify, translate, make derivative works of, disassemble, reverse engineer or otherwise use the Software in order to build competitive technologies or for competitive benchmark purposes.\ + +\b 2. Generally. +\b0 You agree that Atalasoft shall not have any liability to you for your use of the Software, including not limited to your access or creation of content using the Software. By using the Software, you acknowledge and agree that Atalasoft is not responsible for examining or evaluating the content, accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect of the content accessed or created by You You further agree not to use the Software to infringe or violate the rights of any other party, and that Atalasoft is not in any way responsible for any such use by you. \ +Atalasoft reserves the right to change, terminate, or disable access to the Software as is reasonably necessary to ensure compliance with this Agreement. In no event will Atalasoft be liable for the change, removal of, termination, or disabling of access to the Software. \ + +\b 3. Limitation Of Liability. +\b0 To the extent not prohibited by law, in no event shall Atalasoft be liable for personal injury, or any incidental, special, indirect or consequential damages, including, without limitation, damages for loss of profits, loss of data, business interruption or any other commercial damages or losses, arising out of or related to your use or inability to use the Software or Services, however caused, regardless of the theory of liability (contract, tort or otherwise) and even if Atalasoft has been advised of the possibility of such damages. In no event shall Atalasoft\'92s total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount price paid for the Software, if any. The foregoing limitations will apply even if the above stated remedy fails of its essential purpose.\ +Some jurisdictions do not allow the limitation of liability for personal injury, or of incidental or consequential damages, so this limitation may not apply to you.\ + +\b 4. Indemnification By You. +\b0 You agree to indemnify and hold Atalasoft, its subsidiaries, and affiliates, and their respective officers, agents, partners and employees, harmless from any loss, liability, claim or demand, including reasonable attorney\'92s fees, made by any third party due to or arising out of your use of the Software in violation of this Agreement, and in the event that any content accessed or created by you causes Atalasoft to be liable to another.\ +} \ No newline at end of file diff --git a/Capture Demo/Mobile-Capture-Demo-Bridging-Header.h b/Capture Demo/Mobile-Capture-Demo-Bridging-Header.h new file mode 100644 index 0000000..2c0fe65 --- /dev/null +++ b/Capture Demo/Mobile-Capture-Demo-Bridging-Header.h @@ -0,0 +1,19 @@ +// +// Mobile-Capture-Demo-Bridging-Header.h +// Mobile Capture Demo +// +// Created by Michael Chernikov on 15/04/16. +// Copyright © 2016 Atalasoft, a Kofax Company. All rights reserved. +// + +#ifndef Mobile_Capture_Demo_Bridging_Header_h +#define Mobile_Capture_Demo_Bridging_Header_h + +#import "../kfxEVRS_License.h" +#import "MobileSDK.h" +#import "kfxLibEngines/kfxEngines.h" +#import "kfxLibEngines/kfxKUTErrorInfo.h" +#import "kfxLibUIControls/kfxUIControls.h" +#import "kfxLibUtilities/kfxUtilities.h" + +#endif /* Mobile_Capture_Demo_Bridging_Header_h */ diff --git a/Capture Demo/MobileCapture.plist b/Capture Demo/MobileCapture.plist new file mode 100644 index 0000000..f862a9d --- /dev/null +++ b/Capture Demo/MobileCapture.plist @@ -0,0 +1,12 @@ + + + + + method + app-store + teamID + B9C7GRQCYQ + uploadSymbols + + + \ No newline at end of file diff --git a/kfxEVRS_License.h b/kfxEVRS_License.h new file mode 100644 index 0000000..b3a586a --- /dev/null +++ b/kfxEVRS_License.h @@ -0,0 +1,16 @@ +//========================================================================= +// kfxEVRS_License.h +// +// Copyright (c) 2014 Kofax. All rights reserved. Kofax Confidential. +// Unauthorized use, duplication, distribution, or disclosure is strictly +// prohibited. +// +// Atalasoft Mobile SDK +//========================================================================= + +#ifndef kfxEVRS_License_h +#define kfxEVRS_License_h + +#define PROCESS_PAGE_SDK_LICENSE "Put your license here" + +#endif diff --git a/versioninfo.properties b/versioninfo.properties new file mode 100644 index 0000000..b7e585b --- /dev/null +++ b/versioninfo.properties @@ -0,0 +1,10 @@ +samples.company.name=Kofax, Inc. +samples.copyright=Copyright © Kofax 2016 +samples.copyright.year=2016 +samples.version.major=1 +samples.version.minor=0 +samples.version.service.pack=0 +samples.version.fix.pack=0 +samples.version.fix=0 +samples.version.build.number=0 +samples.version.revision=0