From 2d912ff2f649b4a728419ea5371443242dd31b8f Mon Sep 17 00:00:00 2001 From: Ivan Murashov Date: Mon, 23 Apr 2018 21:52:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=BC=D0=BA=D0=B0=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=BA=D1=80=D1=83=D0=B3=20=D1=81=D0=BA=D0=B0=D0=BD=D0=BD=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=20iOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/.hgignore | 1 + ios/GoogleService-Info.plist | 40 +++++++ ios/Podfile | 7 +- ios/Podfile.lock | 47 ++++++-- .../xcschemes/xcschememanagement.plist | 12 +- .../UserInterfaceState.xcuserstate | Bin 41504 -> 55154 bytes ios/Runner/AppDelegate.m | 4 + ios/Runner/ScannerViewController.swift | 113 ++++++++++++++++-- 8 files changed, 204 insertions(+), 20 deletions(-) create mode 100644 ios/GoogleService-Info.plist diff --git a/ios/.hgignore b/ios/.hgignore index c631b1f..0036135 100644 --- a/ios/.hgignore +++ b/ios/.hgignore @@ -29,4 +29,5 @@ Flutter/Flutter.framework Flutter/Generated.xcconfig ServiceDefinitions.json +Podfile.lock Pods/ diff --git a/ios/GoogleService-Info.plist b/ios/GoogleService-Info.plist new file mode 100644 index 0000000..760900a --- /dev/null +++ b/ios/GoogleService-Info.plist @@ -0,0 +1,40 @@ + + + + + AD_UNIT_ID_FOR_BANNER_TEST + ca-app-pub-3940256099942544/2934735716 + AD_UNIT_ID_FOR_INTERSTITIAL_TEST + ca-app-pub-3940256099942544/4411468910 + CLIENT_ID + 930872418262-g3cgir5nalm3lkrcnn1aoi1t3mkg63b7.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.930872418262-g3cgir5nalm3lkrcnn1aoi1t3mkg63b7 + API_KEY + AIzaSyCZr-Ra2PdsMDs9reukPrW7BHY5bbp0VN0 + GCM_SENDER_ID + 930872418262 + PLIST_VERSION + 1 + BUNDLE_ID + com.dinect.checker.autoclub.app + PROJECT_ID + choker-d8897 + STORAGE_BUCKET + choker-d8897.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:930872418262:ios:c192655afeda9a29 + DATABASE_URL + https://choker-d8897.firebaseio.com + + \ No newline at end of file diff --git a/ios/Podfile b/ios/Podfile index 8d47edc..d75bb32 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -8,6 +8,7 @@ end target ‘Runner’ do # Pods for Runner + pod 'Firebase' # Flutter Pods pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR'] @@ -28,7 +29,8 @@ target ‘Runner’ do end end target ‘Dinect’ do - # Pods for Runner + # Pods for Dinect + pod 'Firebase' # Flutter Pods pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR'] @@ -49,7 +51,8 @@ target ‘Dinect’ do end end target ‘Crypto’ do - # Pods for Runner + # Pods for Crypto + pod 'Firebase' # Flutter Pods pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR'] diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 8ed00a3..9a07cfe 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,10 +1,32 @@ PODS: + - Firebase (4.9.0): + - Firebase/Core (= 4.9.0) + - Firebase/Core (4.9.0): + - FirebaseAnalytics (= 4.0.9) + - FirebaseCore (= 4.0.15) + - FirebaseAnalytics (4.0.9): + - FirebaseCore (~> 4.0) + - FirebaseInstanceID (~> 2.0) + - GoogleToolboxForMac/NSData+zlib (~> 2.1) + - nanopb (~> 0.3) + - FirebaseCore (4.0.15): + - GoogleToolboxForMac/NSData+zlib (~> 2.1) + - FirebaseInstanceID (2.0.9): + - FirebaseCore (~> 4.0) - Flutter (1.0.0) - FMDB (2.7.2): - FMDB/standard (= 2.7.2) - FMDB/standard (2.7.2) + - GoogleToolboxForMac/Defines (2.1.3) + - GoogleToolboxForMac/NSData+zlib (2.1.3): + - GoogleToolboxForMac/Defines (= 2.1.3) - image_picker (0.0.1): - Flutter + - nanopb (0.3.8): + - nanopb/decode (= 0.3.8) + - nanopb/encode (= 0.3.8) + - nanopb/decode (0.3.8) + - nanopb/encode (0.3.8) - path_provider (0.0.1): - Flutter - sqflite (0.0.1): @@ -15,30 +37,37 @@ PODS: - ZXingObjC/All (3.2.2) DEPENDENCIES: - - Flutter (from `/Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release`) - - image_picker (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios`) - - path_provider (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios`) - - sqflite (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/sqflite-0.8.4/ios`) + - Firebase + - Flutter (from `/Users/kifio/flutter/bin/cache/artifacts/engine/ios`) + - image_picker (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios`) + - path_provider (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios`) + - sqflite (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/sqflite-0.8.4/ios`) - ZXingObjC (~> 3.2.2) EXTERNAL SOURCES: Flutter: - :path: /Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release + :path: /Users/kifio/flutter/bin/cache/artifacts/engine/ios image_picker: - :path: /Users/dinect/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios + :path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios path_provider: - :path: /Users/dinect/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios + :path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios sqflite: - :path: /Users/dinect/.pub-cache/hosted/pub.dartlang.org/sqflite-0.8.4/ios + :path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/sqflite-0.8.4/ios SPEC CHECKSUMS: + Firebase: 632216af3ed7f31e3be34776947fdc7546cfb572 + FirebaseAnalytics: 388b630c15713f5dbf364071f5f3d6077fb52f4e + FirebaseCore: 3bd047463058fa6b5d312c97502c52e45401cdfb + FirebaseInstanceID: d2058a35e9bebda1b6dd42486b84917bde552a9d Flutter: 9d0fac939486c9aba2809b7982dfdbb47a7b0296 FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa + GoogleToolboxForMac: 2501e2ad72a52eb3dfe7bd9aee7dad11b858bd20 image_picker: ee00aab0487cedc80a304085219503cc6d0f2e22 + nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3 path_provider: 09407919825bfe3c2deae39453b7a5b44f467873 sqflite: d1612813fa7db7c667bed9f1d1b508deffc56999 ZXingObjC: 2c95a0dc52daac69b23ec78fad8fa2fec05f8981 -PODFILE CHECKSUM: bc84f52b27b79dc608eec3537282fdff2347d9b4 +PODFILE CHECKSUM: a023f10f95f916199687af47ef83b54859958d0d COCOAPODS: 1.4.0 diff --git a/ios/Runner.xcodeproj/xcuserdata/kifio.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/Runner.xcodeproj/xcuserdata/kifio.xcuserdatad/xcschemes/xcschememanagement.plist index a6fcb64..dc16213 100644 --- a/ios/Runner.xcodeproj/xcuserdata/kifio.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/ios/Runner.xcodeproj/xcuserdata/kifio.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,6 +4,11 @@ SchemeUserState + BioChecker.xcscheme + + orderHint + 14 + Dinect INT.xcscheme_^#shared#^_ orderHint @@ -12,13 +17,18 @@ Dinect-Crypto.xcscheme_^#shared#^_ orderHint - 7 + 5 Dinect.xcscheme orderHint 11 + Dinect.xcscheme_^#shared#^_ + + orderHint + 13 + Runner.xcscheme_^#shared#^_ orderHint diff --git a/ios/Runner.xcworkspace/xcuserdata/kifio.xcuserdatad/UserInterfaceState.xcuserstate b/ios/Runner.xcworkspace/xcuserdata/kifio.xcuserdatad/UserInterfaceState.xcuserstate index 0b66bd219f8aeadabb55f22854d5d191c124b728..bd3237694b36412ef35c7f36c5f61ff1c397989f 100644 GIT binary patch literal 55154 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 bS5-5rJD+bIFHrmA0YRAJ%lEIJs(b$haO%v> delta 21331 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 XasPWQ5PxEX_$7I-|EK=@+$H}XcV1gi diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 7fd9c8c..3f097a7 100644 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -1,10 +1,12 @@ #include "AppDelegate.h" #include "GeneratedPluginRegistrant.h" #import "Autobonus-Swift.h" +@import Firebase; @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [FIRApp configure]; [GeneratedPluginRegistrant registerWithRegistry:self]; @@ -123,6 +125,8 @@ result(buildSettings[@"showBonus"]); } else if ([@"getVersionName" isEqualToString:call.method]) { result([[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"]); + } else if ([@"logError" isEqualToString:call.method]) { + NSLog(@"%@", call.arguments[@"message"]); } else { result(FlutterMethodNotImplemented); } diff --git a/ios/Runner/ScannerViewController.swift b/ios/Runner/ScannerViewController.swift index 55948aa..0b9cee5 100644 --- a/ios/Runner/ScannerViewController.swift +++ b/ios/Runner/ScannerViewController.swift @@ -61,22 +61,22 @@ import Flutter func getInputHint() -> String { switch self.buttonState { - case .card: return strings["enter_manual"]! - case .phone: return strings["enter_phone"]! + case .card: return strings["enter_manual"]! + case .phone: return strings["enter_phone"]! } } func getErrorText() -> String { switch self.buttonState { - case .card: return strings["user_card_not_found"]! - case .phone: return strings["user_phone_not_found"]! + case .card: return strings["user_card_not_found"]! + case .phone: return strings["user_phone_not_found"]! } } func setButtonState() { switch self.buttonState { - case .card: self.buttonState = .phone - case .phone: self.buttonState = .card + case .card: self.buttonState = .phone + case .phone: self.buttonState = .card } } @@ -104,7 +104,7 @@ import Flutter settingButton.setImage(self.buttonState.icon, for: .normal) textField.placeholder = self.getInputHint() -// textField.text = "79087654321" + // textField.text = "79087654321" } override func viewWillAppear(_ animated: Bool) { @@ -115,12 +115,108 @@ import Flutter applyOrientation() } + // TODO: Вынести эту копипасту в методы, когда будет время override func viewWillLayoutSubviews() { + scanRectView.frame = view.bounds topView.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: 56) settingButton.frame = CGRect(x: 8, y: 26, width: 20, height: 20) textField.frame = CGRect(x: settingButton.frame.maxX + 8, y: 21, width: view.frame.size.width - settingButton.frame.maxX - 16, height: 30) + + var path = UIBezierPath() + path.move(to: CGPoint(x: 32, y: view.frame.size.height / 2)) + path.addLine(to: CGPoint(x: view.frame.size.width - 32, y: view.frame.size.height / 2)) + + var shapeLayer = CAShapeLayer() + shapeLayer.path = path.cgPath + shapeLayer.strokeColor = UIColor.red.cgColor + shapeLayer.fillColor = UIColor.clear.cgColor + shapeLayer.lineWidth = 2 + + view.layer.addSublayer(shapeLayer) + + path = UIBezierPath() + path.move(to: CGPoint(x: 32, y: (view.frame.size.height / 2) - 32)) + path.addLine(to: CGPoint(x: 32, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: 64, y: (view.frame.size.height / 2) - 64)) + + path.move(to: CGPoint(x: view.frame.size.width - 64, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: view.frame.size.width - 32, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: view.frame.size.width - 32, y: (view.frame.size.height / 2) - 32)) + + path.move(to: CGPoint(x: 32, y: (view.frame.size.height / 2) + 32)) + path.addLine(to: CGPoint(x: 32, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: 64, y: (view.frame.size.height / 2) + 64)) + + path.move(to: CGPoint(x: view.frame.size.width - 32, y: (view.frame.size.height / 2) + 32)) + path.addLine(to: CGPoint(x: view.frame.size.width - 32, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: view.frame.size.width - 64, y: (view.frame.size.height / 2) + 64)) + + shapeLayer = CAShapeLayer() + shapeLayer.path = path.cgPath + shapeLayer.strokeColor = UIColor.green.cgColor + shapeLayer.fillColor = UIColor.clear.cgColor + shapeLayer.lineWidth = 2 + + view.layer.addSublayer(shapeLayer) + + path = UIBezierPath() + path.move(to: CGPoint(x: 0, y: 56)) + path.addLine(to: CGPoint(x: view.frame.size.width, y: 56)) + path.addLine(to: CGPoint(x: view.frame.size.width, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: 0, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: 0, y: 56)) + path.close() + + shapeLayer = CAShapeLayer() + shapeLayer.path = path.cgPath + shapeLayer.fillColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).cgColor + + view.layer.addSublayer(shapeLayer) + + path = UIBezierPath() + path.move(to: CGPoint(x: 0, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: 32, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: 32, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: 0, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: 0, y: (view.frame.size.height / 2) - 64)) + path.close() + + shapeLayer = CAShapeLayer() + shapeLayer.path = path.cgPath + shapeLayer.fillColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).cgColor + + view.layer.addSublayer(shapeLayer) + + path = UIBezierPath() + path.move(to: CGPoint(x: view.frame.size.width, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: view.frame.size.width - 32, y: (view.frame.size.height / 2) - 64)) + path.addLine(to: CGPoint(x: view.frame.size.width - 32, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: view.frame.size.width, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: view.frame.size.width, y: (view.frame.size.height / 2) - 64)) + path.close() + + shapeLayer = CAShapeLayer() + shapeLayer.path = path.cgPath + shapeLayer.fillColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).cgColor + + view.layer.addSublayer(shapeLayer) + + path = UIBezierPath() + path.move(to: CGPoint(x: view.frame.size.width, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: 0, y: (view.frame.size.height / 2) + 64)) + path.addLine(to: CGPoint(x: 0, y: view.frame.size.height)) + path.addLine(to: CGPoint(x: view.frame.size.width, y: view.frame.size.height)) + path.addLine(to: CGPoint(x: view.frame.size.width, y: (view.frame.size.height / 2) + 64)) + path.close() + + shapeLayer = CAShapeLayer() + shapeLayer.path = path.cgPath + shapeLayer.fillColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).cgColor + + view.layer.addSublayer(shapeLayer) + } func hideKeyboard() { @@ -134,7 +230,7 @@ import Flutter } func textFieldShouldReturn(_ textField: UITextField) -> Bool { - print("User from manual input: \(textField.text)") + print("User from manual input: \(textField.text!)") sendResult(textField.text!) return true } @@ -306,3 +402,4 @@ import Flutter }) } } +