diff --git a/android/app/build.gradle b/android/app/build.gradle
index 2b8fd88..0b26478 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -47,6 +47,7 @@ flutter {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
+ compile "com.google.android.gms:play-services-gcm:11.0.1"
androidTestCompile 'com.android.support:support-annotations:21.0.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 9de6edc..2f27478 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -18,7 +18,7 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
-
-
+
+
+
diff --git a/android/app/src/main/java/com/yourcompany/checker/activity/CameraActivity.java b/android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java
similarity index 99%
rename from android/app/src/main/java/com/yourcompany/checker/activity/CameraActivity.java
rename to android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java
index 47c7f24..6564507 100644
--- a/android/app/src/main/java/com/yourcompany/checker/activity/CameraActivity.java
+++ b/android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java
@@ -1,4 +1,4 @@
-package com.dinnect.checker;
+package com.dinnect.checker.activity;
import android.app.Activity;
import android.content.pm.ActivityInfo;
diff --git a/android/app/src/main/java/com/dinect/checker/activity/MainActivity.java b/android/app/src/main/java/com/dinect/checker/activity/MainActivity.java
new file mode 100644
index 0000000..7e1a3c5
--- /dev/null
+++ b/android/app/src/main/java/com/dinect/checker/activity/MainActivity.java
@@ -0,0 +1,61 @@
+package com.dinnect.checker.activity;
+
+import android.os.Bundle;
+import android.content.Intent;
+import android.util.Log;
+import com.dinnect.checker.activity.CameraActivity;
+import com.dinnect.checker.service.RegistrationIntentService;
+
+import io.flutter.app.FlutterActivity;
+import io.flutter.plugins.GeneratedPluginRegistrant;
+
+import io.flutter.plugin.common.MethodCall;
+import io.flutter.plugin.common.MethodChannel;
+import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
+import io.flutter.plugin.common.MethodChannel.Result;
+
+import com.google.android.gms.iid.InstanceID;
+
+public class MainActivity extends FlutterActivity {
+
+ private static final String SCANNER_CHANNEL = "com.dinnect.checker";
+// private static final String INSTANCE_ID_CHANNEL = "com.dinnect.checker/instance_id";
+
+ private String mInstanceID = null;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ GeneratedPluginRegistrant.registerWith(this);
+
+// new MethodChannel(getFlutterView(), INSTANCE_ID_CHANNEL).setMethodCallHandler(
+// new MethodCallHandler() {
+// @Override
+// public void onMethodCall(MethodCall call, Result result) {
+//
+// }
+// });
+
+ new MethodChannel(getFlutterView(), SCANNER_CHANNEL).setMethodCallHandler(
+ new MethodCallHandler() {
+ @Override
+ public void onMethodCall(MethodCall call, Result result) {
+
+ }
+ });
+ }
+
+ public void startScanner() {
+ startActivity(new Intent(MainActivity.this, CameraActivity.class));
+ }
+
+ public String getInstanceID() {
+ if (mInstanceID == null) {
+ InstanceID instanceID = InstanceID.getInstance(this);
+ mInstanceID = instanceID.getId();
+ }
+ Log.d()
+ return mInstanceID;
+ }
+
+}
diff --git a/android/app/src/main/java/com/dinect/checker/service/RegistrationIntentService.java b/android/app/src/main/java/com/dinect/checker/service/RegistrationIntentService.java
new file mode 100644
index 0000000..85e56d0
--- /dev/null
+++ b/android/app/src/main/java/com/dinect/checker/service/RegistrationIntentService.java
@@ -0,0 +1,24 @@
+package com.dinnect.checker.service;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.util.Log;
+import android.support.annotation.Nullable;
+import android.widget.Toast;
+import com.google.android.gms.iid.InstanceID;
+
+import java.io.IOException;
+
+public class RegistrationIntentService extends IntentService {
+
+ public RegistrationIntentService() {
+ super(RegistrationIntentService.class.getName());
+ }
+
+ @Override
+ protected void onHandleIntent(@Nullable Intent intent) {
+ InstanceID instanceID = InstanceID.getInstance(this);
+ String token = instanceID.getId();
+ Log.d("kifio", token);
+ }
+}
\ No newline at end of file
diff --git a/android/app/src/main/java/com/yourcompany/checker/view/CameraPreview.java b/android/app/src/main/java/com/dinect/checker/view/CameraPreview.java
similarity index 100%
rename from android/app/src/main/java/com/yourcompany/checker/view/CameraPreview.java
rename to android/app/src/main/java/com/dinect/checker/view/CameraPreview.java
diff --git a/android/app/src/main/java/com/yourcompany/checker/activity/MainActivity.java b/android/app/src/main/java/com/yourcompany/checker/activity/MainActivity.java
deleted file mode 100644
index 376b2c1..0000000
--- a/android/app/src/main/java/com/yourcompany/checker/activity/MainActivity.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.dinnect.checker;
-
-import android.os.Bundle;
-import android.content.Intent;
-import android.util.Log;
-import com.dinnect.checker.CameraActivity;
-
-import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
-
-import io.flutter.plugin.common.MethodCall;
-import io.flutter.plugin.common.MethodChannel;
-import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
-import io.flutter.plugin.common.MethodChannel.Result;
-
-public class MainActivity extends FlutterActivity {
-
- private static final String CHANNEL = "com.dinnect.checker/scanner";
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- GeneratedPluginRegistrant.registerWith(this);
- new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
- new MethodCallHandler() {
- @Override
- public void onMethodCall(MethodCall call, Result result) {
- Log.d("kifio", "onMethodCall");
- startActivity(new Intent(MainActivity.this, CameraActivity.class));
- }
- });
- }
-
- public void startScanner() {
-
- }
-
-}
diff --git a/checker.iml b/checker.iml
new file mode 100644
index 0000000..3b8d8be
--- /dev/null
+++ b/checker.iml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/main.dart b/lib/main.dart
index 77ede3e..47cfb26 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,7 +1,12 @@
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
import 'splash.dart';
-const String _name = "Ivan Murashov";
+const String _name = 'Ivan Murashov';
+const String intUrl = 'https://pos-api.dinect.com/20130701/';
+const String intToken = '9fec83cdca38c357e6b65dbb17514cdd36bf2a08';
+
+final httpClient = createHttpClient();
void main() {
runApp(new Checker());
@@ -23,3 +28,6 @@ abstract class BaseState extends State {
}
}
+
+//DMUrl := 'http://pos-api-int.dinect.com/20130701/';
+//DMAToken := '9fec83cdca38c357e6b65dbb17514cdd36bf2a08';
diff --git a/lib/registration.dart b/lib/registration.dart
index 553ee8c..6ad74a3 100644
--- a/lib/registration.dart
+++ b/lib/registration.dart
@@ -10,14 +10,15 @@ class RegistrationScreen extends StatefulWidget {
class _RegistrationScreenState extends BaseState {
- static const platform = const MethodChannel('com.dinnect.checker/scanner');
+ static const platform = const MethodChannel('com.dinnect.checker');
+
+ String _merchantID = "";
+ String _posNumber = "";
@override Widget build(BuildContext context) {
return new Scaffold(appBar: _getAppBar(), body: _getScreen());
}
- faq() {}
-
AppBar _getAppBar() {
return new AppBar(title: new Text("Регистрация магазина"),
backgroundColor: const Color(0xff4272e7), actions: [
@@ -77,7 +78,15 @@ class _RegistrationScreenState extends BaseState {
return new TextField(decoration: new InputDecoration(hintText: hint,
hideDivider: true,
hintStyle: new TextStyle(color: const Color(0xffa5a5a5),
- fontSize: 16.0)));
+ fontSize: 16.0)), onChanged: (text) => _handleUserInput(text) );
+ }
+
+ void _handleUserInput(String text) {
+ if (text.length > 0) {
+ setState(() { //new
+ _merchantID = text;
+ });
+ }
}
Decoration _getDecoraionForInputField() {
@@ -92,9 +101,31 @@ class _RegistrationScreenState extends BaseState {
child: new Container(height: 64.0, padding: new EdgeInsets.all(8.0),
child: new RaisedButton(child: new Text('ЗАРЕГИСТРИРОВАТЬ',
style: new TextStyle(color: Colors.white)),
- onPressed: null, disabledColor: const Color(0xffbfbfbf))));
+ onPressed: _merchantID.length == 0
+ ? null
+ : () => _register(_merchantID),
+ disabledColor: const Color(0xffbfbfbf))));
}
- doStuff() {}
+ void _register(String merchantShop) {
+ _registerToken(merchantShop);
+ }
+ Future _registerToken(String merchantShop) async {
+
+ String pos = await platform.invokeMethod('getInstanceID');
+ String userAgent = 'dm-checker-test v1.0.1';
+
+ var body = {
+ 'merchant_shop' : merchantShop,
+ 'pos' : pos,
+ 'description' : userAgent + '-' + pos
+ };
+
+ httpClient.post(intUrl, body: body).then((response) {
+ print(response);
+ }).catchError((error) {
+ print(error);
+ });
+ }
}
\ No newline at end of file
diff --git a/lib/splash.dart b/lib/splash.dart
index 3f545e2..84193b1 100644
--- a/lib/splash.dart
+++ b/lib/splash.dart
@@ -2,21 +2,24 @@ import 'dart:async';
import 'registration.dart';
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
class SplashScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
+
new Future.delayed(const Duration(milliseconds: 1000), () {
_goToNextScreen(context);
});
+
return new Image.asset('assets/splash.png', fit: BoxFit.cover);
}
- _goToNextScreen(BuildContext context) {
+ _goToNextScreen(BuildContext context) async {
Navigator.of(context).push(new MaterialPageRoute(
- builder: (BuildContext context) {
- return new RegistrationScreen();
- }));
+ builder: (BuildContext context) {
+ return new RegistrationScreen();
+ }));
}
}
\ No newline at end of file