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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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