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