move apiURL, appToken to libs/consts.dart, refs #9990
This commit is contained in:
@@ -61,7 +61,7 @@ import org.json.*;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.DialogFragment;
|
import android.app.DialogFragment;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import com.dinect.checker.Utils;
|
import com.dinect.checker.Utils;
|
||||||
@@ -75,6 +75,8 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
public static final String ERROR_INFO = "ERROR_INFO";
|
public static final String ERROR_INFO = "ERROR_INFO";
|
||||||
|
|
||||||
private int mOffset;
|
private int mOffset;
|
||||||
|
private String mURL;
|
||||||
|
private String mAppToken;
|
||||||
private String mToken;
|
private String mToken;
|
||||||
private LogoutDialogFragment mDialog;
|
private LogoutDialogFragment mDialog;
|
||||||
private NetworkThread mNetworkThread;
|
private NetworkThread mNetworkThread;
|
||||||
@@ -100,6 +102,8 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
}
|
}
|
||||||
|
|
||||||
mOffset = (int) (56 * getResources().getDisplayMetrics().density);
|
mOffset = (int) (56 * getResources().getDisplayMetrics().density);
|
||||||
|
mURL = getIntent().getStringExtra(MainActivity.PREF_API_URL);
|
||||||
|
mAppToken = getIntent().getStringExtra(MainActivity.PREF_APP_TOKEN);
|
||||||
mToken = getIntent().getStringExtra(MainActivity.PREF_POS_TOKEN);
|
mToken = getIntent().getStringExtra(MainActivity.PREF_POS_TOKEN);
|
||||||
|
|
||||||
// Hide the window title.
|
// Hide the window title.
|
||||||
@@ -266,10 +270,10 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
setResult(RESULT_CANCELED);
|
setResult(RESULT_CANCELED);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void requestUser(String code) {
|
private void requestUser(String code) {
|
||||||
mNetworkThread = new NetworkThread(this, code, mToken);
|
mNetworkThread = new NetworkThread(this, code, mURL, mAppToken, mToken);
|
||||||
mNetworkThread.start();
|
mNetworkThread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,7 +284,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log.d("kifio", "status: " + response.code());
|
Log.d("kifio", "status: " + response.code());
|
||||||
int code = response.code();
|
int code = response.code();
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
try {
|
try {
|
||||||
String s = response.body().string();
|
String s = response.body().string();
|
||||||
@@ -320,11 +324,12 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
|
|
||||||
private CameraActivity mActivity;
|
private CameraActivity mActivity;
|
||||||
private String mCode = "";
|
private String mCode = "";
|
||||||
private String mUrl = "http://pos-api-autoclub.dinect.com/20130701/users?auto=";
|
|
||||||
private String mCard = "";
|
private String mCard = "";
|
||||||
|
private String mAppToken = "";
|
||||||
private String mToken = "";
|
private String mToken = "";
|
||||||
|
private String mUrl = "users/?auto=";
|
||||||
NetworkThread(final CameraActivity activity, final String code, String token) {
|
|
||||||
|
NetworkThread(final CameraActivity activity, final String code, final String url, final String appToken, String token) {
|
||||||
if (code == null) {
|
if (code == null) {
|
||||||
activity.runOnUiThread(new Runnable() {
|
activity.runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -334,16 +339,16 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
} else {
|
} else {
|
||||||
mActivity = activity;
|
mActivity = activity;
|
||||||
mCard = code;
|
mCard = code;
|
||||||
mUrl += code;
|
mUrl = url + mUrl + code;
|
||||||
|
mAppToken = appToken;
|
||||||
mToken = token;
|
mToken = token;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.addHeader("DM-Authorization", "dmapptoken bdea0f3ba9034b688019a7cac753d1209e2b227f")
|
.addHeader("DM-Authorization", "dmapptoken " + mAppToken)
|
||||||
.addHeader("Authorization", "dmtoken " + mToken)
|
.addHeader("Authorization", "dmtoken " + mToken)
|
||||||
.url(mUrl)
|
.url(mUrl)
|
||||||
.build();
|
.build();
|
||||||
@@ -371,7 +376,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
mDialog = null;
|
mDialog = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void logout() {
|
void logout() {
|
||||||
dismissDialog();
|
dismissDialog();
|
||||||
@@ -382,7 +387,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class LogoutDialogFragment extends DialogFragment {
|
public static class LogoutDialogFragment extends DialogFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
@@ -409,4 +414,4 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
|||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ public class MainActivity extends FlutterActivity {
|
|||||||
private static final String PREF_POS_MERCHANT_ID = "pref_pos_merchant_id";
|
private static final String PREF_POS_MERCHANT_ID = "pref_pos_merchant_id";
|
||||||
private static final String PREF_DOC_ID = "pref_doc_id";
|
private static final String PREF_DOC_ID = "pref_doc_id";
|
||||||
private static final String PREF_POS_ID = "pref_pos_id";
|
private static final String PREF_POS_ID = "pref_pos_id";
|
||||||
|
static final String PREF_API_URL = "prefs_api_token";
|
||||||
|
static final String PREF_APP_TOKEN = "pres_app_token";
|
||||||
static final String PREF_POS_TOKEN = "pref_pos_token";
|
static final String PREF_POS_TOKEN = "pref_pos_token";
|
||||||
|
|
||||||
private MethodChannel mChannel;
|
private MethodChannel mChannel;
|
||||||
@@ -58,6 +60,8 @@ public class MainActivity extends FlutterActivity {
|
|||||||
case "startScanner":
|
case "startScanner":
|
||||||
Map arguments = call.arguments();
|
Map arguments = call.arguments();
|
||||||
Intent cameraIntent = new Intent(MainActivity.this, CameraActivity.class);
|
Intent cameraIntent = new Intent(MainActivity.this, CameraActivity.class);
|
||||||
|
cameraIntent.putExtra(PREF_API_URL, (String) arguments.get("url"));
|
||||||
|
cameraIntent.putExtra(PREF_APP_TOKEN, (String) arguments.get("appToken"));
|
||||||
cameraIntent.putExtra(PREF_POS_TOKEN, (String) arguments.get("token"));
|
cameraIntent.putExtra(PREF_POS_TOKEN, (String) arguments.get("token"));
|
||||||
startActivityForResult(cameraIntent, START_SCANNER_REQUEST_CODE);
|
startActivityForResult(cameraIntent, START_SCANNER_REQUEST_CODE);
|
||||||
break;
|
break;
|
||||||
@@ -164,4 +168,4 @@ public class MainActivity extends FlutterActivity {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">AUTOBONUS</string>
|
<string name="app_name">Checker</string>
|
||||||
<string name="scanner_title">Сканнер карты</string>
|
<string name="scanner_title">Сканнер карты</string>
|
||||||
<string name="scan">Сканировать</string>
|
<string name="scan">Сканировать</string>
|
||||||
<string name="faq">FAQ</string>
|
<string name="faq">FAQ</string>
|
||||||
@@ -8,4 +8,4 @@
|
|||||||
<string name="logout_text">Вы действительно хотите выйти и ввести другой номер магазина?</string>
|
<string name="logout_text">Вы действительно хотите выйти и ввести другой номер магазина?</string>
|
||||||
<string name="logout_yes">Да</string>
|
<string name="logout_yes">Да</string>
|
||||||
<string name="logout_no">Нет</string>
|
<string name="logout_no">Нет</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import UIKit
|
|||||||
extension ZBarSymbolSet: Sequence {
|
extension ZBarSymbolSet: Sequence {
|
||||||
public typealias Element = ZBarSymbol
|
public typealias Element = ZBarSymbol
|
||||||
public typealias Iterator = NSFastEnumerationIterator
|
public typealias Iterator = NSFastEnumerationIterator
|
||||||
|
|
||||||
public func makeIterator() -> NSFastEnumerationIterator {
|
public func makeIterator() -> NSFastEnumerationIterator {
|
||||||
return NSFastEnumerationIterator(self)
|
return NSFastEnumerationIterator(self)
|
||||||
}
|
}
|
||||||
@@ -20,11 +20,11 @@ extension ZBarSymbolSet: Sequence {
|
|||||||
// TODO: Реализовать окно сканнера в этом контроллере, вместо вызова ZBarReaderViewController
|
// TODO: Реализовать окно сканнера в этом контроллере, вместо вызова ZBarReaderViewController
|
||||||
|
|
||||||
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate {
|
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate {
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewDidAppear(_ animated: Bool) {
|
override func viewDidAppear(_ animated: Bool) {
|
||||||
super.viewDidAppear(animated)
|
super.viewDidAppear(animated)
|
||||||
let readerViewController = ZBarReaderViewController()
|
let readerViewController = ZBarReaderViewController()
|
||||||
@@ -33,18 +33,18 @@ extension ZBarSymbolSet: Sequence {
|
|||||||
readerViewController.showsZBarControls = false
|
readerViewController.showsZBarControls = false
|
||||||
self.present(readerViewController, animated: true)
|
self.present(readerViewController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
|
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
|
||||||
guard let symbols = info[ZBarReaderControllerResults] as? ZBarSymbolSet else { return }
|
guard let symbols = info[ZBarReaderControllerResults] as? ZBarSymbolSet else { return }
|
||||||
|
|
||||||
for symbol in symbols {
|
for symbol in symbols {
|
||||||
|
|
||||||
if let symbol = symbol as? ZBarSymbol, let data = symbol.data {
|
if let symbol = symbol as? ZBarSymbol, let data = symbol.data {
|
||||||
|
|
||||||
let toast = UIAlertView()
|
let toast = UIAlertView()
|
||||||
toast.message = data
|
toast.message = data
|
||||||
toast.show()
|
toast.show()
|
||||||
|
|
||||||
navigationController?.popViewController(animated: true)
|
navigationController?.popViewController(animated: true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'consts.dart';
|
||||||
import 'network.dart';
|
import 'network.dart';
|
||||||
import 'registration.dart';
|
import 'registration.dart';
|
||||||
import 'purchase.dart';
|
import 'purchase.dart';
|
||||||
@@ -16,7 +17,7 @@ String token;
|
|||||||
pushRoute(BuildContext context, Widget widget) {
|
pushRoute(BuildContext context, Widget widget) {
|
||||||
var route = new MaterialPageRoute<Null>(builder: (BuildContext context) => widget);
|
var route = new MaterialPageRoute<Null>(builder: (BuildContext context) => widget);
|
||||||
Navigator.of(context).pushReplacement(route);
|
Navigator.of(context).pushReplacement(route);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Добавление route, с возможностью вернуться к предыдущему экрану.
|
// Добавление route, с возможностью вернуться к предыдущему экрану.
|
||||||
faq(BuildContext context, bool returnToScanner) {
|
faq(BuildContext context, bool returnToScanner) {
|
||||||
@@ -26,7 +27,7 @@ faq(BuildContext context, bool returnToScanner) {
|
|||||||
|
|
||||||
// В методе отправляется запрос на удаление токена кассы, очищаются SharedPreferences приложения.
|
// В методе отправляется запрос на удаление токена кассы, очищаются SharedPreferences приложения.
|
||||||
logout(BuildContext context) {
|
logout(BuildContext context) {
|
||||||
|
|
||||||
VoidCallback positiveCalback = () {
|
VoidCallback positiveCalback = () {
|
||||||
if (token != null) {
|
if (token != null) {
|
||||||
deleteToken(token).then((response) {
|
deleteToken(token).then((response) {
|
||||||
@@ -34,7 +35,7 @@ logout(BuildContext context) {
|
|||||||
platform.invokeMethod('removeKeys').then((result) {
|
platform.invokeMethod('removeKeys').then((result) {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
pushRoute(context, new RegistrationScreen()); // Запускаем регистрацию
|
pushRoute(context, new RegistrationScreen()); // Запускаем регистрацию
|
||||||
});
|
});
|
||||||
}).catchError((error) {
|
}).catchError((error) {
|
||||||
print(error.toString());
|
print(error.toString());
|
||||||
@@ -49,12 +50,12 @@ logout(BuildContext context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
forceLogout(BuildContext context) {
|
forceLogout(BuildContext context) {
|
||||||
|
|
||||||
deleteToken(token).then((response) {
|
deleteToken(token).then((response) {
|
||||||
print(response.body);
|
print(response.body);
|
||||||
platform.invokeMethod('removeKeys').then((result) {
|
platform.invokeMethod('removeKeys').then((result) {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
pushRoute(context, new RegistrationScreen()); // Запускаем регистрацию
|
pushRoute(context, new RegistrationScreen()); // Запускаем регистрацию
|
||||||
});
|
});
|
||||||
}).catchError((error) {
|
}).catchError((error) {
|
||||||
print(error.toString());
|
print(error.toString());
|
||||||
@@ -64,7 +65,7 @@ forceLogout(BuildContext context) {
|
|||||||
/// Запуск спецефичной для каждой платформы части приложения - сканера.
|
/// Запуск спецефичной для каждой платформы части приложения - сканера.
|
||||||
/// Может производиться с нескольких экранов (splash, finish_registration).
|
/// Может производиться с нескольких экранов (splash, finish_registration).
|
||||||
startScanner(BuildContext context) async {
|
startScanner(BuildContext context) async {
|
||||||
|
|
||||||
// Канал ловит вызовы методов из "нативной" части приложения.
|
// Канал ловит вызовы методов из "нативной" части приложения.
|
||||||
// Могут быть вызваны либо logaut либо faq, либо purchase.
|
// Могут быть вызваны либо logaut либо faq, либо purchase.
|
||||||
if (token != null) {
|
if (token != null) {
|
||||||
@@ -74,7 +75,7 @@ startScanner(BuildContext context) async {
|
|||||||
if (call.method == 'logout') {
|
if (call.method == 'logout') {
|
||||||
forceLogout(context);
|
forceLogout(context);
|
||||||
} else if (call.method == 'faq') {
|
} else if (call.method == 'faq') {
|
||||||
faq(context, true);
|
faq(context, true);
|
||||||
} else {
|
} else {
|
||||||
String userString = call.arguments[0];
|
String userString = call.arguments[0];
|
||||||
print('user: ${userString}');
|
print('user: ${userString}');
|
||||||
@@ -84,7 +85,11 @@ startScanner(BuildContext context) async {
|
|||||||
Navigator.of(context).pushReplacement(route);
|
Navigator.of(context).pushReplacement(route);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await platform.invokeMethod('startScanner', {'token' : token});
|
await platform.invokeMethod('startScanner', {
|
||||||
|
'token' : token,
|
||||||
|
'url': url,
|
||||||
|
'appToken': appToken,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,4 +108,4 @@ showYesNoDialog(BuildContext context, String title, String content, VoidCallback
|
|||||||
new FlatButton(
|
new FlatButton(
|
||||||
child: new Text('Да'),
|
child: new Text('Да'),
|
||||||
onPressed: positiveCallback)]));
|
onPressed: positiveCallback)]));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
// Serious constants
|
// Serious constants
|
||||||
const String url = 'http://pos-api-autoclub.dinect.com/20130701/';
|
const String appName = "Dinect";
|
||||||
const String appToken = 'bdea0f3ba9034b688019a7cac753d1209e2b227f';
|
|
||||||
|
const String url = 'https://pos-api-ote.dinect.com/20130701/';
|
||||||
|
const String appToken = '9fec83cdca38c357e6b65dbb17514cdd36bf2a08';
|
||||||
|
|
||||||
// Texts
|
// Texts
|
||||||
const String merchantIDHint = 'ID магазина';
|
const String merchantIDHint = 'ID магазина';
|
||||||
@@ -35,4 +37,4 @@ const Color faqTitlesColor = const Color(0xff404040);
|
|||||||
const double verticalMargin = 28.0;
|
const double verticalMargin = 28.0;
|
||||||
const double buttonVerticalMargin = 42.0;
|
const double buttonVerticalMargin = 42.0;
|
||||||
const double buttonHeight = 48.0;
|
const double buttonHeight = 48.0;
|
||||||
const double iconHeight = 20.0;
|
const double iconHeight = 20.0;
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ void main() {
|
|||||||
|
|
||||||
class Checker extends StatelessWidget {
|
class Checker extends StatelessWidget {
|
||||||
@override Widget build(BuildContext context) {
|
@override Widget build(BuildContext context) {
|
||||||
return new MaterialApp(title: "AutoClub",
|
return new MaterialApp(title: appName,
|
||||||
home: new SplashScreen(),
|
home: new SplashScreen(),
|
||||||
theme: new ThemeData(
|
theme: new ThemeData(
|
||||||
primaryColor: primaryColor,
|
primaryColor: primaryColor,
|
||||||
accentColor: primaryColor
|
accentColor: primaryColor
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override getTextWidget() {
|
@override getTextWidget() {
|
||||||
return new TextField(keyboardType: TextInputType.text, decoration: new InputDecoration.collapsed(hintText: getHint(),
|
return new TextField(keyboardType: TextInputType.number, decoration: new InputDecoration.collapsed(hintText: getHint(),
|
||||||
hintStyle: new TextStyle(color: greyTextColor, fontSize: 16.0)),
|
hintStyle: new TextStyle(color: greyTextColor, fontSize: 16.0)),
|
||||||
controller: controller,
|
controller: controller,
|
||||||
onChanged: (text) => handleUserInput(text));
|
onChanged: (text) => handleUserInput(text));
|
||||||
@@ -111,9 +111,9 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
httpClient.get(url, headers: headers).then((response) {
|
httpClient.get(url, headers: headers).then((response) {
|
||||||
|
|
||||||
print(response.body);
|
print(response.body);
|
||||||
|
|
||||||
Map bonuses = JSON.decode(response.body);
|
Map bonuses = JSON.decode(response.body);
|
||||||
String type = bonuses['type'];
|
String type = bonuses['type'];
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -122,7 +122,7 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
} else {
|
} else {
|
||||||
List amountToBonus = bonuses['amount_to_bonus'];
|
List amountToBonus = bonuses['amount_to_bonus'];
|
||||||
double loyalityVal = (double.parse(amountToBonus[1]) / amountToBonus[0]) * 100;
|
double loyalityVal = (double.parse(amountToBonus[1]) / amountToBonus[0]) * 100;
|
||||||
this.loyality = '${loyalityVal.toStringAsFixed(0)}%';
|
this.loyality = '${loyalityVal.toStringAsFixed(0)}%';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}).catchError((error) {
|
}).catchError((error) {
|
||||||
@@ -180,7 +180,7 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
'doc_id': result,
|
'doc_id': result,
|
||||||
'curr_iso_code': '643',
|
'curr_iso_code': '643',
|
||||||
'commit': 'true',
|
'commit': 'true',
|
||||||
'sum_total': sum_total
|
'sum_total': sum_total
|
||||||
};
|
};
|
||||||
|
|
||||||
var headers = {
|
var headers = {
|
||||||
@@ -189,7 +189,7 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
httpClient.post(url, body: body, headers: headers).then((response) {
|
httpClient.post(url, body: body, headers: headers).then((response) {
|
||||||
|
|
||||||
print(response.body);
|
print(response.body);
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
pushRoute(context, new PurchaseSuccessScreen(sum_total, user['first_name'] == null ? '' : user['first_name']));
|
pushRoute(context, new PurchaseSuccessScreen(sum_total, user['first_name'] == null ? '' : user['first_name']));
|
||||||
@@ -200,4 +200,4 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user