move apiURL, appToken to libs/consts.dart, refs #9990

This commit is contained in:
anonymouzz
2017-08-03 17:08:56 +07:00
parent 10c3c18df1
commit 3d5262f786
8 changed files with 62 additions and 46 deletions

View File

@@ -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();
} }
} }
} }

View File

@@ -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 {
} }
} }

View File

@@ -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>

View File

@@ -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)
} }
} }

View File

@@ -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)]));
} }

View File

@@ -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;

View File

@@ -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
)); ));
} }
} }

View File

@@ -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> {
}); });
} }
} }
} }