Merge changes to default branch

Hg: changed android/app/src/main/java/com/dinect/checker/AbstractScannerActivity.java
This commit is contained in:
Ivan Murashov
2018-02-12 08:06:50 +03:00
83 changed files with 1035 additions and 1573 deletions

13
android/.gitignore vendored
View File

@@ -1,13 +0,0 @@
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
GeneratedPluginRegistrant.java
/gradle
/gradlew
/gradlew.bat

14
android/.hgignore Normal file
View File

@@ -0,0 +1,14 @@
android.iml
app/app.iml
.gradle
local.properties
.idea/workspace.xml
.idea/libraries
.DS_Store
build
captures
GeneratedPluginRegistrant.java
/gradle
gradlew
gradlew.bat

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">AutoBonus</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">AutoBonus</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect Crypto</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect Crypto</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (INT)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (INT)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (OTE)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (OTE)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (STAGING)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (STAGING)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (TESTING)</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">Dinect (TESTING)</string>
</resources>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dinect.checker"
android:versionCode="3"
android:versionName="1.1.5">
android:versionCode="5"
android:versionName="1.1.7">
<uses-sdk
android:minSdkVersion="16"

View File

@@ -154,10 +154,10 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme
EditText manualInput = (EditText) findViewById(R.id.manual_input);
switch (searchType) {
case CARD:
manualInput.setHint(getResources().getString(R.string.enter_manual));
manualInput.setHint(getIntent().getStringExtra("enter_manual"));
break;
case PHONE_NUMBER:
manualInput.setHint(getResources().getString(R.string.enter_phone));
manualInput.setHint(getIntent().getStringExtra("enter_phone"));
break;
}
}
@@ -268,9 +268,9 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme
runOnUiThread(new Runnable() {
@Override
public void run() {
String message = String.format(getString(R.string.identifier_not_found), searchString)
String message = String.format(getIntent().getStringExtra("identifier_not_found"), searchString)
+ ".\n"
+ String.format(getString(R.string.error_contact_support), BuildConfig.supportPhone);
+ String.format(getIntent().getStringExtra("error_contact_support"), BuildConfig.supportPhone);
Toast.makeText(AbstractScannerActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
@@ -284,9 +284,19 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.settings).setIcon(getResources().getDrawable(R.drawable.settings));
menu.findItem(R.id.faq).setIcon(getResources().getDrawable(R.drawable.help));
menu.findItem(R.id.exit).setIcon(getResources().getDrawable(R.drawable.exit));
MenuItem settings = menu.findItem(R.id.settings);
settings.setIcon(getResources().getDrawable(R.drawable.settings));
settings.setTitle(getIntent().getStringExtra("settings"));
MenuItem faq = menu.findItem(R.id.faq);
faq.setIcon(getResources().getDrawable(R.drawable.help));
faq.setTitle(getIntent().getStringExtra("faq"));
MenuItem exit = menu.findItem(R.id.exit);
exit.setIcon(getResources().getDrawable(R.drawable.exit));
exit.setTitle(getIntent().getStringExtra("exit"));
return super.onPrepareOptionsMenu(menu);
}

View File

@@ -22,10 +22,11 @@ public class MainActivity extends FlutterActivity {
private static final int START_SCANNER_REQUEST_CODE = 2017;
private static final String FLUTTER_CHANNEL_NAME = "com.dinect.checker/instance_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_APP_BAR_COLOR = "pref_app_bar_color";
static final String PREF_API_URL = "url";
static final String PREF_APP_TOKEN = "appToken";
static final String PREF_POS_TOKEN = "token";
static final String PREF_APP_BAR_COLOR = "color";
static final String SCANNER_BACKEND_KEY = "scanner_backend_idx";
static final int ZXING = 0;
@@ -66,7 +67,6 @@ public class MainActivity extends FlutterActivity {
break;
case "startScanner":
mScannerArgs = call.arguments();
System.out.println(mScannerArgs.toString());
startScannerActivity();
break;
case "isOnline":
@@ -128,11 +128,17 @@ public class MainActivity extends FlutterActivity {
private void startScannerActivity() {
final int idx = getSharedPreferences("scanner", Context.MODE_PRIVATE).getInt(SCANNER_BACKEND_KEY, 0);
Intent cameraIntent = new Intent(MainActivity.this, SCANNER_BACKEND[idx]);
cameraIntent.putExtra(PREF_API_URL, (String) mScannerArgs.get("url"));
cameraIntent.putExtra(PREF_APP_TOKEN, (String) mScannerArgs.get("appToken"));
cameraIntent.putExtra(PREF_POS_TOKEN, (String) mScannerArgs.get("token"));
cameraIntent.putExtra(PREF_APP_BAR_COLOR, (Long) mScannerArgs.get("color"));
setLocale((String) mScannerArgs.get("locale"));
for (Object key : mScannerArgs.keySet()) {
Log.d("kifio", "k: " + key + "; v: " + mScannerArgs.get(key).toString());
if (key.equals("color")) {
cameraIntent.putExtra((String) key, Long.parseLong((String) mScannerArgs.get(key)));
} else {
cameraIntent.putExtra((String) key, (String) mScannerArgs.get(key));
}
}
setLocale((String) mScannerArgs.get("localeCode"));
startActivityForResult(cameraIntent, START_SCANNER_REQUEST_CODE);
}
@@ -206,4 +212,8 @@ public class MainActivity extends FlutterActivity {
public void getAppToken() {
}
public void setStrings() {
}
}

View File

@@ -0,0 +1,14 @@
package com.kifio.checker.checker;
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
}

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

View File

@@ -1,60 +0,0 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:layout_marginTop="16dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_vertical|left"
android:text="@string/logout_title"
android:textColor="@android:color/black"
android:textSize="18sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:layout_marginTop="16dp"
android:fontFamily="sans-serif-light"
android:scaleType="center"
android:text="@string/logout_text"
android:textColor="@android:color/black"
android:textSize="18sp" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp">
<TextView
android:id="@+id/positiveButton"
android:layout_width="56dp"
android:layout_height="42dp"
android:layout_gravity="right|end"
android:fontFamily="sans-serif-medium"
android:scaleType="center"
android:text="@string/logout_yes"
android:textColor="#eb0004"
android:textSize="14sp" />
<TextView
android:id="@+id/negativeButton"
android:layout_width="56dp"
android:layout_height="42dp"
android:layout_gravity="right|end"
android:layout_marginRight="64dp"
android:fontFamily="sans-serif-medium"
android:text="@string/logout_no"
android:textColor="#eb0004"
android:textSize="14sp" />
</FrameLayout>
</LinearLayout>

View File

@@ -14,14 +14,12 @@
android:id="@+id/cardPhoneButton"
android:layout_width="wrap_content"
android:layout_marginRight="12dp"
android:layout_height="wrap_content"
/>
android:layout_height="wrap_content" />
<EditText
android:id="@+id/manual_input"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:hint="@string/enter_manual"
android:imeOptions="actionDone"
android:inputType="text"
android:maxLines="1"

View File

@@ -12,15 +12,15 @@
<group android:id="@+id/items"/>
<item android:id="@+id/settings"
android:title="@string/settings"
android:title="@null"
android:icon="@drawable/settings"/>
<item android:id="@+id/faq"
android:title="@string/faq"
android:title="@null"
android:icon="@drawable/help"/>
<item android:id="@+id/exit"
android:title="@string/exit"
android:title="@null"
android:icon="@drawable/exit"/>
</menu>

View File

@@ -1,12 +0,0 @@
<resources>
<string name="app_name">Dinect</string>
<string name="scanner_title">Сканер карты</string>
<string name="scan">Сканировать</string>
<string name="faq">Справка</string>
<string name="exit">Закрыть приложение</string>
<string name="settings">Настройки</string>
<string name="identifier_not_found">"Идентификатор %s не найден"</string>
<string name="enter_manual">Введите номер карты</string>
<string name="enter_phone">Телефон 79XXXXXXXXX</string>
<string name="error_contact_support">Можете воспользоваться ручным вводом или позвонить на номер:%s</string>
</resources>

View File

@@ -1,12 +0,0 @@
<resources>
<string name="app_name">Dinect</string>
<string name="scanner_title">Сканер карти</string>
<string name="scan">Сканувати</string>
<string name="faq">Допомога</string>
<string name="exit">Закрыть приложение</string>
<string name="settings">Налаштування</string>
<string name="identifier_not_found">"Ідентифікатор %s не знайден"</string>
<string name="enter_manual">Введіть штрихкод вручну</string>
<string name="enter_phone">Телефон 79XXXXXXXXX</string>
<string name="error_contact_support">Можете скористатися ручним введенням або зателефонувати на номер:\n%s</string>
</resources>

View File

@@ -1,12 +1,3 @@
<resources>
<string name="app_name">Dinect</string>
<string name="scanner_title">Card Scanner</string>
<string name="scan">Scan</string>
<string name="faq">Help</string>
<string name="exit">Exit</string>
<string name="settings">Settings</string>
<string name="identifier_not_found">"Identifier %s is not found"</string>
<string name="enter_manual">Enter the card number</string>
<string name="enter_phone">Phone 79XXXXXXXXX</string>
<string name="error_contact_support">You can use manual input or call the number:\n%s</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">PIP</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="app_name">PIP</string>
</resources>

View File

@@ -0,0 +1,117 @@
<resources>
<string name="app_name">Dinect</string>
<string name="scanner_title">Card Scanner</string>
<string name="scan">Scan</string>
<string name="faq">Help</string>
<string name="exit">Exit</string>
<string name="settings">Settings</string>
<string name="identifier_not_found">"Identifier %s is not found"</string>
<string name="enter_manual">Enter the card number</string>
<string name="enter_phone">Phone 79XXXXXXXXX</string>
<string name="error_contact_support">You can use manual input or call the number:\n%s</string>
<string name="ID_Store">Store ID</string>
<string name="ID_not_found">Identifier %s is not found</string>
<string name="app_activ">The application is activated</string>
<string name="ask_change_store">Do you really want to log out and enter a different store number?</string>
<string name="buyer">Buyer</string>
<string name="card">Card</string>
<string name="card_scaner">Card Scanner</string>
<string name="carry_purchase">Create a purchase</string>
<string name="complite_activ">Complete registration</string>
<string name="complite_purchase">Complete the purchase</string>
<string name="confirm_purchase">You confirm the purchase for %s %s</string>
<string name="confirmation">Сonfirmation</string>
<string name="no">No</string>
<string name="purchase_complite">A purchase of %s %s was completed</string>
<string name="registration">Registration</string>
<string name="usage">Usage</string>
<string name="support">Support contacts</string>
<string name="common">General information</string>
<string name="request_sent_wait_activ">Activation request for the application has been sent, please wait for administrator approval</string>
<string name="reward">Reward</string>
<string name="bonus">Bonus on account</string>
<string name="discount_rate">Dicount Rate</string>
<string name="discount_sum">Dicount Sum</string>
<string name="bonus_plus">Bonus points</string>
<string name="bonus_minus">Bonus was charged</string>
<string name="bonus_hint">Points to charge</string>
<string name="coupons_used">Coupons were used</string>
<string name="select_coupons">Select coupons for using in purchase</string>
<string name="bonus_explanation">If not set, points will be added</string>
<string name="scan">Scan</string>
<string name="sign_up">Sign Up</string>
<string name="specify_din_store">Specify the store ID</string>
<string name="sum">Sum</string>
<string name="update_activ_status">Update activation status</string>
<string name="yes">Yes</string>
<string name="settings">Settings</string>
<string name="help">Help</string>
<string name="exit">Exit</string>
<string name="logout">Log Out</string>
<string name="currency">Currency</string>
<string name="locale">Language</string>
<string name="nominative_ruble">Ruble</string>
<string name="singular_ruble">Ruble</string>
<string name="plural_ruble">Rubles</string>
<string name="nominative_dollar">US Dollar</string>
<string name="singular_dollar">US Dollar</string>
<string name="plural_dollar">US Dollars</string>
<string name="nominative_hryvna">Hryvnia</string>
<string name="singular_hryvna">Hryvnia</string>
<string name="plural_hryvna">Hryvnia</string>
<string name="nominative_tenge">Tenge</string>
<string name="singular_tenge">Tenge</string>
<string name="plural_tenge">Tenge</string>
<string name="nominative_euro">Euro</string>
<string name="singular_euro">Euro</string>
<string name="plural_euro">Euro</string>
<string name="user_card_not_found">User with card number %@ not found</string>
<string name="user_phone_not_found">User with phone number %@ not found</string>
<string name="error">Error</string>
<string name="dismiss">Dismiss</string>
<string name="registration_guide">
Store log in screen is the first thing you will see after starting the application.
Enter the store number (ID). You can look it up in the loyalty program control panel. If you do not have access to the control panel, ask the administrator.
Click the ""Login"" button.
Please wait while the administrator activates your request. You can refresh your store activation status by pressing the "Update activation status" button.
After the administrator activates your request, click the ""Complete activation"" button. The application is ready to use.
If you want to log in as another store, click the Menu button (upper right corner of the screen) and select "Exit".
</string>
<string name="usage_guide">
Step 1:
Launch this application and scan your customer's loyalty card using the built in scanner.
If the scan is successful, the customer's information will appear on the screen.
Step 2:
Enter the purchase amount and click the ""Create a purchase"" button.
In a pop-up window press ""YES"" to confirm the amount and allot the points to a customer.
If you want to correct the amount, press ""NO"" and you will return back to the purchase screen where you can adjust the amount.
</string>
<string name="support_guide">
Always recommend your customers to install your loyalty card app, so they can participate in your loyalty program.
If you have any problems with the application, feel free to contact the support.
Phone:
%s
Our website:
%s
</string>
<string name="common_guide">
To improve barcode scanning quality, adjust the distance between the camera and the barcode so that the border around the barcode (if any) is not visible. Otherwise the vertical lines of the border could be wrongly considered as part of the code.
</string>
</resources>

View File

@@ -0,0 +1,109 @@
<resources>
<string name="ID_Store">ID del negocio</string>
<string name="ID_not_found">ID %s no está encontrado</string>
<string name="app_activ">Aplicación está activada</string>
<string name="ask_change_store">Os realmente quiereis acabarse una sesión y dar otro DIN del negocio</string>
<string name="buyer">El comprador</string>
<string name="card">Tarjeta</string>
<string name="card_scaner">El escaneo de tarjeta</string>
<string name="carry_purchase">Realizar la compra</string>
<string name="complite_activ">Terminar el registro</string>
<string name="complite_purchase">Terminar la compra</string>
<string name="confirm_purchase">Confirmais la compra por %s %s</string>
<string name="confirmation">Confirmacón</string>
<string name="no">No</string>
<string name="purchase_complite">La compra por %s %s está realizada</string>
<string name="registration">El registro</string>
<string name="usage">Explotación</string>
<string name="support">Los contactos del soporte técnico</string>
<string name="request_sent_wait_activ">El requieremento de activación de aplicación esta mandado, esperad la activación por el administrador</string>
<string name="reward">Gratificación</string>
<string name="bonus">Bono por cuenta</string>
<string name="discount_rate">Tasa de descuento</string>
<string name="discount_sum">El monto del descuento</string>
<string name="bonus_plus">Puntos de bonificación</string>
<string name="bonus_minus">El bono fue cobrado</string>
<string name="bonus_hint">Cuántas puntuaciones se cancelan</string>
<string name="coupons_used">Los cupones fueron canjeados</string>
<string name="bonus_explanation">Si no especifica cuántos puntos cancelar, se agregarán puntos</string>
<string name="scan">Escanear</string>
<string name="sign_up">Registrarse</string>
<string name="specify_din_store">Hay que dar ID del negocio</string>
<string name="sum">Suma</string>
<string name="update_activ_status">Actualizar la condición de activación</string>
<string name="user_name">Un nombre de usario</string>
<string name="yes">Si</string>
<string name="settings">Las configuraciones</string>
<string name="help">La Ayuda</string>
<string name="exit">Salir</string>
<string name="logout">Log Out</string>
<string name="currency">La Moneda</string>
<string name="locale">La lengua</string>
<string name="nominative_ruble">Rublo</string>
<string name="singular_ruble">Rublo</string>
<string name="plural_ruble">Rublos</string>
<string name="nominative_dollar">Dólar Dolares</string>
<string name="singular_dollar">Dólar Dolares</string>
<string name="plural_dollar">Dólar Dolares</string>
<string name="nominative_hryvna">Hryvnia</string>
<string name="singular_hryvna">Hryvnia</string>
<string name="plural_hryvna">Hryvnia</string>
<string name="nominative_tenge">Tenge</string>
<string name="singular_tenge">Tenge</string>
<string name="plural_tenge">Tenge</string>
<string name="nominative_euro">Euro</string>
<string name="singular_euro">Euro</string>
<string name="plural_euro">Euro</string>
<string name="user_card_not_found">User with card number %@ not found</string>
<string name="user_phone_not_found">User with phone number %@ not found</string>
<string name="error">Error</string>
<string name="dismiss">Dismiss</string>
<string name="registration_guide">
Store log in screen is the first thing you will see after starting the application.
Enter the store number (DIN). You can look it up in the loyalty program control panel. If you do
not have access to the control panel, ask the administrator.
Click the ""Login"" button.
Please wait while the administrator activates your request. You can refresh your store activation
status by pressing the ""Update activation status"" button.
After the administrator activates your request, click the ""Complete activation"" button. The
application is ready to use.
If you want to log in as another store, click the Menu button (upper right corner of the screen)
and select "Exit".
</string>
<string name="usage_guide">
Step 1:
Launch this application and scan your customer's loyalty card using the built in scanner.
If the scan is successful, the customer's information will appear on the screen.
Step 2:
Enter the purchase amount and click the ""Create a purchase"" button.
In a pop-up window press ""YES"" to confirm the amount and allot the points to a customer.
If you want to correct the amount, press ""NO"" and you will return back to the purchase screen
where you can adjust the amount.
</string>
<string name="support_guide">
Always recommend your customers to install your loyalty card app, so they can participate in your
loyalty program.
If you have any problems with the application, feel free to contact the support.
Phone:
%s
Our website:
%s
</string>
<string name="common_guide">
To improve barcode scanning quality, adjust the distance between the camera and the barcode so
that the border around the barcode (if any) is not visible. Otherwise the vertical lines of the
border could be wrongly considered as part of the code.</string>
</resources>

View File

@@ -0,0 +1,115 @@
<resources>
<string name="app_name">Dinect</string>
<string name="scanner_title">Сканер карты</string>
<string name="scan">Сканировать</string>
<string name="faq">Справка</string>
<string name="exit">Закрыть приложение</string>
<string name="settings">Настройки</string>
<string name="identifier_not_found">"Идентификатор %s не найден"</string>
<string name="enter_manual">Введите номер карты</string>
<string name="enter_phone">Телефон 79XXXXXXXXX</string>
<string name="error_contact_support">Можете воспользоваться ручным вводом или позвонить на номер:%s</string>
<string name="ID_Store">ID магазина</string>
<string name="ID_not_found">Идентификатор %s не найден</string>
<string name="app_activ">Приложение активировано</string>
<string name="ask_change_store">Вы действительно хотите выйти и ввести другой номер магазина?</string>
<string name="buyer">Покупатель</string>
<string name="card">Карта</string>
<string name="card_scaner">Сканер карты</string>
<string name="carry_purchase">Проведение покупки</string>
<string name="complite_activ">Завершить регистрацию</string>
<string name="complite_purchase">Завершить покупку</string>
<string name="confirm_purchase">Вы подтверждаете покупку на %s %s</string>
<string name="confirmation">Подтверждение</string>
<string name="no">Нет</string>
<string name="purchase_complite">Покупка на сумму %s %s проведена</string>
<string name="registration">Регистрация</string>
<string name="usage">Использование</string>
<string name="support">Контакты поддержки</string>
<string name="common">Общая информация</string>
<string name="request_sent_wait_activ">Запрос на активацию приложения отправлен, дождитесь подтверждения активации администратором</string>
<string name="reward">Вознаграждение</string>
<string name="bonus">Бонусов на счету</string>
<string name="discount_rate">Процент скидки</string>
<string name="discount_sum">Сумма скидки</string>
<string name="bonus_plus">Бонусов начислено</string>
<string name="bonus_minus">Бонусов списано</string>
<string name="bonus_hint">Сколько баллов списать?</string>
<string name="coupons_used">Были погашены купоны</string>
<string name="select_coupons">Выберите купоны для гашения</string>
<string name="bonus_explanation">Если не указано сколько баллов списать, баллы будут начислены</string>
<string name="scan">Сканировать</string>
<string name="sign_up">Зарегистрироваться</string>
<string name="specify_din_store">Необходимо указать ID магазина</string>
<string name="sum">Сумма</string>
<string name="update_activ_status">Обновить статус активации</string>
<string name="yes">Да</string>
<string name="settings">Настройки</string>
<string name="help">Справка</string>
<string name="exit">Закрыть приложение</string>
<string name="logout">Отозвать токен</string>
<string name="currency">Валюта</string>
<string name="locale">Язык</string>
<string name="nominative_ruble">Рубль</string>
<string name="singular_ruble">Рубля</string>
<string name="plural_ruble">Рублей</string>
<string name="nominative_dollar">Доллар США</string>
<string name="singular_dollar">Доллара США</string>
<string name="plural_dollar">Долларов США</string>
<string name="nominative_hryvna">Гривна</string>
<string name="singular_hryvna">Гривны</string>
<string name="plural_hryvna">Гривен</string>
<string name="nominative_tenge">Тенге</string>
<string name="singular_tenge">Тенге</string>
<string name="plural_tenge">Тенге</string>
<string name="nominative_euro">Евро</string>
<string name="singular_euro">Евро</string>
<string name="plural_euro">Евро</string>
<string name="user_card_not_found">Пользователь с номером карты %@ не найден</string>
<string name="user_phone_not_found">Пользователь с номером телефона %@ не найден</string>
<string name="error">Ошибка</string>
<string name="dismiss">Скрыть</string>
<string name="registration_guide">
После запуска приложения вы окажетесь на странице регистрации магазина.
Введите ID код магазина (выдается при подключении к системе лояльности)
Кликните по кнопке: «Зарегистрировать»
Дождитесь подтверждение активации программы, нажатием по кнопке «Обновите статус активации» обновите статус.
После подтверждения запроса на активацию программы Партнером/менеджером кликните по кнопке «Завершить регистрацию», приложение готово к использованию.
При желании изменить ID магазина, необходимо нажать на кнопку Меню (верхний правый угол экрана) и выбрать "Выход".
</string>
<string name="usage_guide">
Шаг 1:
Запустите приложение для сканирования карты участника системы лояльности.
При успешном сканировании на вашем экране появятся данные покупателя.
Шаг 2:
Введите сумму покупки данного покупателя и нажмите на кнопку «Проведение покупки».
Во всплывающем окне нажмите ""ДА"", для подтверждения суммы покупки
Если вы хотите поправить сумму, нажмите «НЕТ» и Вы вернетесь на экран покупки и сможете её скорректировать.
</string>
<string name="support_guide">
Рекомендуйте покупателям установить мобильное приложение дисконтной системы и получайте новых лояльных покупателей.
При некорректной работе приложения просьба сразу обратиться по телефону нашей технической поддержки.
Телефон:
%s
Наш сайт:
%s
</string>
<string name="common_guide">
Для эффективного считывания штрих-кода карты участника системы лояльности необходимо камеру сканера поднести так, чтобы в неё не попадали вертикальные полосы рамки (если они есть). Они расцениваются сканером как часть штрих-кода.
</string>
</resources>

View File

@@ -0,0 +1,113 @@
<resources>
<string name="app_name">Dinect</string>
<string name="scanner_title">Сканер карти</string>
<string name="scan">Сканувати</string>
<string name="faq">Допомога</string>
<string name="exit">Закрыть приложение</string>
<string name="settings">Налаштування</string>
<string name="identifier_not_found">"Ідентифікатор %s не знайден</string>
<string name="enter_manual">Введіть штрихкод вручну</string>
<string name="enter_phone">Телефон 79XXXXXXXXX</string>
<string name="error_contact_support">Можете скористатися ручним введенням або зателефонувати на номер:\n%s</string>
<string name="ID_Store">ID магазину</string>
<string name="ID_not_found">Ідентифікатор %s не знайден</string>
<string name="app_activ">Додаток активований</string>
<string name="ask_change_store">Ви дійсно хочете вийти і ввести інший номер магазину</string>
<string name="buyer">Покупець</string>
<string name="card">Карта</string>
<string name="card_scaner">Сканер карти</string>
<string name="carry_purchase">Проведення покупки</string>
<string name="complite_activ">Завершити реєстрацію</string>
<string name="complite_purchase">Завершити купівлю</string>
<string name="confirm_purchase">Ви підтверджуєте покупку на %s %s</string>
<string name="confirmation">Підтвердження</string>
<string name="no">Ні</string>
<string name="purchase_complite">Купівля на суму %s %s проведена</string>
<string name="registration">Реєстрація</string>
<string name="usage">Використання</string>
<string name="support">Контакти підтримки</string>
<string name="common">Загальна інформація</string>
<string name="request_sent_wait_activ">Запит на активацію додатку відправлений, дочекайтеся підтвердження активації адміністратором</string>
<string name="reward">Винагорода</string>
<string name="bonus">Бонусів на рахунку</string>
<string name="discount_rate">Відсоток знижки</string>
<string name="discount_sum">Сума знижки</string>
<string name="bonus_plus">Бонусів нараховано</string>
<string name="bonus_minus">Бонусів списано</string>
<string name="bonus_hint">Скільки балів списати?</string>
<string name="coupons_used">Були погашені купони</string>
<string name="bonus_explanation">Якщо не вказано скільки балів списати, бали будуть нараховані</string>
<string name="scan">Сканувати</string>
<string name="sign_up">Зареєструватися</string>
<string name="specify_din_store">Необхідно вказати ID магазину</string>
<string name="sum">Сума</string>
<string name="update_activ_status">Оновити статус активації</string>
<string name="yes">Так</string>
<string name="settings">Налаштування</string>
<string name="help">Допомога</string>
<string name="exit">Вихід</string>
<string name="logout">Log Out</string>
<string name="currency">Валюта</string>
<string name="locale">Мова</string>
<string name="nominative_ruble">Рубль</string>
<string name="singular_ruble">Рубль</string>
<string name="plural_ruble">Рубль</string>
<string name="nominative_dollar">Доллар США</string>
<string name="singular_dollar">Доллар США</string>
<string name="plural_dollar">Доллар США</string>
<string name="nominative_hryvna">Гривня</string>
<string name="singular_hryvna">Гривня</string>
<string name="plural_hryvna">Гривня</string>
<string name="nominative_tenge">Тенге</string>
<string name="singular_tenge">Тенге</string>
<string name="plural_tenge">Тенге</string>
<string name="nominative_euro">Євро</string>
<string name="singular_euro">Євро</string>
<string name="plural_euro">Євро</string>
<string name="user_card_not_found">User with card number %@ not found</string>
<string name="user_phone_not_found">User with phone number %@ not found</string>
<string name="error">Error</string>
<string name="dismiss">Dismiss</string>
<string name="registration_guide">
Після запуску програми ви опинитеся на сторінці реєстрації магазина.
Введіть DIN код магазину (видається при підключенні до системи лояльності)
Натисніть на кнопку «Зареєструвати»
Дочекайтеся підтвердження активації програми, натисканням на кнопку «Оновлення статус активації» поновіть статус.
    
Після підтвердження запиту на активацію програми Партнером / менеджером клікніть по кнопці «Завершити реєстрацію», додаток готове до використання.
При бажанні змінити номер каси, необхідно натиснути на кнопку Меню (верхній правий кут екрану) і вибрати "Вихід".
</string>
<string name="usage_guide">
Крок 1:
    
При пред'явленні покупцем картки учасника системи лояльності, запустіть цю програму.
На екрані з'явиться сканер штрих кодів. Відскануте штрих-код карти сканером.
При успішному скануванні на вашому екрані з'являться дані покупця.
    
Крок 2:
    
Необхідно ввести суму покупки даного покупця і клікнути на кнопку «Проведення покупки».
Спливе вікно підтвердження правильності введення суми. У разі правильного введення суми, натисніть «ТАК», сума буде проведена і винагороду буде нараховано учаснику системи лояльності.
Якщо сума введена з помилкою, натисніть «НІ» і Ви повернетеся на крок введення суми і зможете її скорегувати.
</string>
<string name="support_guide">
Рекомендуйте покупцям встановити мобільний додаток дисконтної системи і отримуйте нових лояльних покупців.
При некоректній роботі програми прохання відразу звернутися за телефоном нашої технічної підтримки.
Телефон:
%s
Наш сайт:
%s
</string>
<string name="common_guide">
Для ефективного зчитування штрих-коду карти учасника системи лояльності необхідно камеру сканера піднести так, щоб в неї не потрапляли вертикальні смуги рамки. Вони розцінюються сканером як частина штрих-коду.
</string>
</resources>

View File

@@ -4,7 +4,6 @@
.svn/
.DS_Store
*.swp
profile
DerivedData/
@@ -12,30 +11,22 @@ build/
GeneratedPluginRegistrant.h
GeneratedPluginRegistrant.m
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
xcuserdata
Runner.xcodeproj/xcuserdata
Runner.xcworkspace/xcuserdata
*.moved-aside
*.pyc
*sync/
Icon?
.tags*
/Flutter/app.flx
/Flutter/app.zip
/Flutter/App.framework
/Flutter/Flutter.framework
/Flutter/Generated.xcconfig
/ServiceDefinitions.json
Flutter/app.flx
Flutter/app.zip
Flutter/App.framework
Flutter/Flutter.framework
Flutter/Generated.xcconfig
ServiceDefinitions.json
Pods/

Binary file not shown.

View File

@@ -8,6 +8,26 @@
/**
BREAKING CHANGES:
January 15, 2018: Marked "initWithFLXArchive" and
"initWithFLXArchiveWithScriptSnapshot" as unavailable following the
deprecation from December 11, 2017. Scheduled to be removed on February
19, 2018.
January 09, 2018: Deprecated "FlutterStandardBigInteger" and its use in
"FlutterStandardMessageCodec" and "FlutterStandardMethodCodec". Scheduled to
be marked as unavailable once the deprecation has been available on the
flutter/flutter alpha branch for four weeks. "FlutterStandardBigInteger" was
needed because the Dart 1.0 int type had no size limit. With Dart 2.0, the
int type is a fixed-size, 64-bit signed integer. If you need to communicate
larger integers, use NSString encoding instead.
December 11, 2017: Deprecated "initWithFLXArchive" and
"initWithFLXArchiveWithScriptSnapshot" and scheculed the same to be marked as
unavailable on January 15, 2018. Instead, "initWithFlutterAssets" and
"initWithFlutterAssetsWithScriptSnapshot" should be used. The reason for this
change is that the FLX archive will be deprecated and replaced with a flutter
assets directory containing the same files as the FLX did.
November 29, 2017: Added a BREAKING CHANGES section.
*/

View File

@@ -91,7 +91,6 @@ FLUTTER_EXPORT
- `nil` or `NSNull`
- `NSNumber` (including their representation of Boolean values)
- `FlutterStandardBigInteger`
- `NSString`
- `FlutterStandardTypedData`
- `NSArray` of supported values
@@ -101,11 +100,17 @@ FLUTTER_EXPORT
- `nil` or `NSNull`: null
- `NSNumber`: `bool`, `int`, or `double`, depending on the contained value.
- `FlutterStandardBigInteger`: `int`
- `NSString`: `String`
- `FlutterStandardTypedData`: `Uint8List`, `Int32List`, `Int64List`, or `Float64List`
- `NSArray`: `List`
- `NSDictionary`: `Map`
Support for `FlutterStandardBigInteger` has been deprecated on 2018-01-09 to be
made unavailable four weeks after this change is available on the Flutter alpha
branch. `FlutterStandardBigInteger` were needed because the Dart 1.0 `int` type
had no size limit. With Dart 2.0, the `int` type is a fixed-size, 64-bit signed
integer. If you need to communicate larger integers, use `NSString` encoding
instead.
*/
FLUTTER_EXPORT
@interface FlutterStandardMessageCodec : NSObject<FlutterMessageCodec>
@@ -253,6 +258,13 @@ FLUTTER_EXPORT
and `FlutterStandardMethodCodec`.
*/
FLUTTER_EXPORT
FLUTTER_DEPRECATED(
"Deprecated on 2018-01-09 to be made unavailable four weeks after the "
"deprecation is available on the flutter/flutter alpha branch. "
"FlutterStandardBigInteger was needed because the Dart 1.0 int type had no "
"size limit. With Dart 2.0, the int type is a fixed-size, 64-bit signed "
"integer. If you need to communicate larger integers, use NSString encoding "
"instead.")
@interface FlutterStandardBigInteger : NSObject
/**
Creates a `FlutterStandardBigInteger` from a hexadecimal representation.

View File

@@ -15,10 +15,23 @@ FLUTTER_EXPORT
- (instancetype)initWithPrecompiledDartBundle:(NSBundle*)bundle NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithFLXArchive:(NSURL*)archiveURL
dartMain:(NSURL*)dartMainURL
packages:(NSURL*)dartPackages NS_DESIGNATED_INITIALIZER
FLUTTER_UNAVAILABLE(
"This initializer is no longer available. See the deprecation message from "
"December 11, 2017 in Flutter.h. Instead, use [initWithFlutterAssets].");
- (instancetype)initWithFLXArchiveWithScriptSnapshot:(NSURL*)archiveURL NS_DESIGNATED_INITIALIZER
FLUTTER_UNAVAILABLE(
"This initializer is no longer available. See the deprecation message from "
"December 11, 2017 in Flutter.h. Instead, use [initWithFlutterAssetsWithScriptSnapshot].");
- (instancetype)initWithFlutterAssets:(NSURL*)flutterAssetsURL
dartMain:(NSURL*)dartMainURL
packages:(NSURL*)dartPackages NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithFLXArchiveWithScriptSnapshot:(NSURL*)archiveURL NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithFlutterAssetsWithScriptSnapshot:(NSURL*)flutterAssetsURL
NS_DESIGNATED_INITIALIZER;
- (instancetype)initFromDefaultSourceForConfiguration;

View File

@@ -127,7 +127,8 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (BOOL)application:(UIApplication*)application
performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
completionHandler:(void (^)(BOOL succeeded))completionHandler;
completionHandler:(void (^)(BOOL succeeded))completionHandler
API_AVAILABLE(ios(9.0));
@end

View File

@@ -1,9 +1,9 @@
// This is a generated file; do not edit or check into version control.
FLUTTER_ROOT=/Users/dinect/projects/flutter
FLUTTER_APPLICATION_PATH=/Users/dinect/projects/checker
FLUTTER_ROOT=/Users/kifio/flutter
FLUTTER_APPLICATION_PATH=/Users/kifio/Desktop/FlutterProjects/checker
FLUTTER_TARGET=lib/main.dart
FLUTTER_BUILD_MODE=release
FLUTTER_BUILD_MODE=debug
FLUTTER_BUILD_DIR=build
SYMROOT=${SOURCE_ROOT}/../build/ios
FLUTTER_FRAMEWORK_DIR=/Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release
FLUTTER_FRAMEWORK_DIR=/Users/kifio/flutter/bin/cache/artifacts/engine/ios
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"

Binary file not shown.

View File

@@ -1,5 +1,6 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'ZXingObjC', '~> 3.2.2'
if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')

View File

@@ -10,30 +10,35 @@ PODS:
- sqflite (0.0.1):
- Flutter
- FMDB
- ZXingObjC (3.2.2):
- ZXingObjC/All (= 3.2.2)
- ZXingObjC/All (3.2.2)
DEPENDENCIES:
- Flutter (from `/Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release`)
- image_picker (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios`)
- path_provider (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios`)
- sqflite (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/sqflite-0.6.2/ios`)
- Flutter (from `/Users/kifio/flutter/bin/cache/artifacts/engine/ios`)
- image_picker (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios`)
- path_provider (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios`)
- sqflite (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/sqflite-0.6.2+2/ios`)
- ZXingObjC (~> 3.2.2)
EXTERNAL SOURCES:
Flutter:
:path: /Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release
:path: /Users/kifio/flutter/bin/cache/artifacts/engine/ios
image_picker:
:path: /Users/dinect/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios
:path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios
path_provider:
:path: /Users/dinect/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios
:path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios
sqflite:
:path: /Users/dinect/.pub-cache/hosted/pub.dartlang.org/sqflite-0.6.2/ios
:path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/sqflite-0.6.2+2/ios
SPEC CHECKSUMS:
Flutter: d674e78c937094a75ac71dd77e921e840bea3dbf
Flutter: 7eb41cd1fd524b90d7f22bceb20da2c39338b089
FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa
image_picker: a211f28b95a560433c00f5cd3773f4710a20404d
path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259
sqflite: 8e2d9fe1e7cdc95d4d537fc7eb2d23c8dc428e3c
image_picker: ee00aab0487cedc80a304085219503cc6d0f2e22
path_provider: 09407919825bfe3c2deae39453b7a5b44f467873
sqflite: edb0e4df7640c26fea6a107c21ed1542219e761a
ZXingObjC: 2c95a0dc52daac69b23ec78fad8fa2fec05f8981
PODFILE CHECKSUM: 351e02e34b831289961ec3558a535cbd2c4965d2
PODFILE CHECKSUM: 9f4cf0c4c102f6176b37e2c4c913e0544612cec5
COCOAPODS: 1.4.0.beta.2
COCOAPODS: 1.4.0

View File

@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; };
ACE8612B1F9F745B006FEF38 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
ACE8612C1F9F745B006FEF38 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
ACE8612D1F9F745B006FEF38 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
@@ -20,22 +21,15 @@
ACE861361F9F745B006FEF38 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA9BB311F1792570053B6EA /* AVFoundation.framework */; };
ACE861371F9F745B006FEF38 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
ACE861381F9F745B006FEF38 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
ACE861391F9F745B006FEF38 /* libzbar.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ACE103AB1F8FCC6000D17794 /* libzbar.a */; };
ACE8613A1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28B464359F9DDCC3EF756D7D /* libPods-Runner.a */; };
ACE8613B1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AC45BF661F9E3F97009713E2 /* libPods-Runner.a */; };
ACE8613C1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AC45BF661F9E3F97009713E2 /* libPods-Runner.a */; };
ACE8613E1F9F745B006FEF38 /* app.flx in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB71CF902C7004384FC /* app.flx */; };
ACE8613F1F9F745B006FEF38 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
ACE861401F9F745B006FEF38 /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; };
ACE861411F9F745B006FEF38 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
ACE861421F9F745B006FEF38 /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
ACE861431F9F745B006FEF38 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
ACE861441F9F745B006FEF38 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
ACE861461F9F745B006FEF38 /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
ACE861471F9F745B006FEF38 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
AFFEFA1AD31BC8D9EA04CFCB /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AC45BF661F9E3F97009713E2 /* libPods-Runner.a */; };
BAE7FF4D875B996672385844 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AC45BF661F9E3F97009713E2 /* libPods-Runner.a */; };
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378261FAA1A9400D5DBA9 /* flutter_assets */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -66,8 +60,8 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
2D5378261FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; };
28B464359F9DDCC3EF756D7D /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; };
32DA147B1FBC3DCE008F0388 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
@@ -85,27 +79,6 @@
AC45BF661F9E3F97009713E2 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
AC45BF911F9E408E009713E2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = /Users/ntrlab/semyon/apps/checker/ios/Runner/Info.plist; sourceTree = "<absolute>"; };
AC73A4241F9F7F920026EBA4 /* Dinect.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Dinect.plist; path = /Users/ntrlab/semyon/apps/checker/ios/Runner/Dinect.plist; sourceTree = "<absolute>"; };
ACE103AB1F8FCC6000D17794 /* libzbar.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzbar.a; path = ZBarSDK/libzbar.a; sourceTree = "<group>"; };
ACE103AD1F8FCC6F00D17794 /* zbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zbar.h; path = ZBarSDK/Headers/zbar.h; sourceTree = "<group>"; };
ACE103AE1F8FCC6F00D17794 /* ZBarCaptureReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarCaptureReader.h; path = ZBarSDK/Headers/ZBarCaptureReader.h; sourceTree = "<group>"; };
ACE103AF1F8FCC6F00D17794 /* ZBarReaderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarReaderViewController.h; path = ZBarSDK/Headers/ZBarReaderViewController.h; sourceTree = "<group>"; };
ACE103B01F8FCC6F00D17794 /* ZBarImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarImage.h; path = ZBarSDK/Headers/ZBarImage.h; sourceTree = "<group>"; };
ACE103B11F8FCC7000D17794 /* ZBarCameraSimulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarCameraSimulator.h; path = ZBarSDK/Headers/ZBarCameraSimulator.h; sourceTree = "<group>"; };
ACE103B21F8FCC7000D17794 /* ZBarReaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarReaderView.h; path = ZBarSDK/Headers/ZBarReaderView.h; sourceTree = "<group>"; };
ACE103B31F8FCC7000D17794 /* ZBarSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarSDK.h; path = ZBarSDK/Headers/ZBarSDK.h; sourceTree = "<group>"; };
ACE103B41F8FCC7000D17794 /* ZBarHelpController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarHelpController.h; path = ZBarSDK/Headers/ZBarHelpController.h; sourceTree = "<group>"; };
ACE103B51F8FCC7000D17794 /* ZBarImageScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarImageScanner.h; path = ZBarSDK/Headers/ZBarImageScanner.h; sourceTree = "<group>"; };
ACE103B61F8FCC7100D17794 /* ZBarReaderController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarReaderController.h; path = ZBarSDK/Headers/ZBarReaderController.h; sourceTree = "<group>"; };
ACE103B71F8FCC7100D17794 /* ZBarSymbol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZBarSymbol.h; path = ZBarSDK/Headers/ZBarSymbol.h; sourceTree = "<group>"; };
ACE103BE1F8FCD1400D17794 /* Window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Window.h; path = ZBarSDK/Headers/zbar/Window.h; sourceTree = "<group>"; };
ACE103BF1F8FCD1500D17794 /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Decoder.h; path = ZBarSDK/Headers/zbar/Decoder.h; sourceTree = "<group>"; };
ACE103C01F8FCD1500D17794 /* Processor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Processor.h; path = ZBarSDK/Headers/zbar/Processor.h; sourceTree = "<group>"; };
ACE103C11F8FCD1500D17794 /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Exception.h; path = ZBarSDK/Headers/zbar/Exception.h; sourceTree = "<group>"; };
ACE103C21F8FCD1500D17794 /* Symbol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Symbol.h; path = ZBarSDK/Headers/zbar/Symbol.h; sourceTree = "<group>"; };
ACE103C31F8FCD1500D17794 /* Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Image.h; path = ZBarSDK/Headers/zbar/Image.h; sourceTree = "<group>"; };
ACE103C41F8FCD1500D17794 /* Video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Video.h; path = ZBarSDK/Headers/zbar/Video.h; sourceTree = "<group>"; };
ACE103C51F8FCD1500D17794 /* ImageScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageScanner.h; path = ZBarSDK/Headers/zbar/ImageScanner.h; sourceTree = "<group>"; };
ACE103C61F8FCD1500D17794 /* Scanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Scanner.h; path = ZBarSDK/Headers/zbar/Scanner.h; sourceTree = "<group>"; };
ACE861531F9F745B006FEF38 /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
BBA9BAFD1F176DD10053B6EA /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
BBA9BAFE1F176DD10053B6EA /* ScannerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScannerViewController.swift; sourceTree = "<group>"; };
@@ -132,12 +105,8 @@
ACE861361F9F745B006FEF38 /* AVFoundation.framework in Frameworks */,
ACE861371F9F745B006FEF38 /* Flutter.framework in Frameworks */,
ACE861381F9F745B006FEF38 /* App.framework in Frameworks */,
ACE861391F9F745B006FEF38 /* libzbar.a in Frameworks */,
ACE8613A1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */,
ACE8613B1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */,
ACE8613C1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */,
BAE7FF4D875B996672385844 /* libPods-Runner.a in Frameworks */,
AFFEFA1AD31BC8D9EA04CFCB /* libPods-Runner.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -154,6 +123,7 @@
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
2D5378251FAA1A9400D5DBA9 /* flutter_assets */,
9740EEB71CF902C7004384FC /* app.flx */,
3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
@@ -161,7 +131,6 @@
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
2D5378261FAA1A9400D5DBA9 /* flutter_assets */,
);
name = Flutter;
sourceTree = "<group>";
@@ -169,7 +138,6 @@
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
ACE103BB1F8FCCA500D17794 /* ZBarSDK */,
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
@@ -214,50 +182,6 @@
name = "Supporting Files";
sourceTree = "<group>";
};
ACE103BB1F8FCCA500D17794 /* ZBarSDK */ = {
isa = PBXGroup;
children = (
ACE103AB1F8FCC6000D17794 /* libzbar.a */,
ACE103BC1F8FCCD000D17794 /* Headers */,
);
name = ZBarSDK;
sourceTree = "<group>";
};
ACE103BC1F8FCCD000D17794 /* Headers */ = {
isa = PBXGroup;
children = (
ACE103BD1F8FCCF300D17794 /* zbar */,
ACE103AD1F8FCC6F00D17794 /* zbar.h */,
ACE103AE1F8FCC6F00D17794 /* ZBarCaptureReader.h */,
ACE103AF1F8FCC6F00D17794 /* ZBarReaderViewController.h */,
ACE103B31F8FCC7000D17794 /* ZBarSDK.h */,
ACE103B71F8FCC7100D17794 /* ZBarSymbol.h */,
ACE103B11F8FCC7000D17794 /* ZBarCameraSimulator.h */,
ACE103B41F8FCC7000D17794 /* ZBarHelpController.h */,
ACE103B01F8FCC6F00D17794 /* ZBarImage.h */,
ACE103B51F8FCC7000D17794 /* ZBarImageScanner.h */,
ACE103B61F8FCC7100D17794 /* ZBarReaderController.h */,
ACE103B21F8FCC7000D17794 /* ZBarReaderView.h */,
);
name = Headers;
sourceTree = "<group>";
};
ACE103BD1F8FCCF300D17794 /* zbar */ = {
isa = PBXGroup;
children = (
ACE103BF1F8FCD1500D17794 /* Decoder.h */,
ACE103C11F8FCD1500D17794 /* Exception.h */,
ACE103C31F8FCD1500D17794 /* Image.h */,
ACE103C51F8FCD1500D17794 /* ImageScanner.h */,
ACE103C01F8FCD1500D17794 /* Processor.h */,
ACE103C61F8FCD1500D17794 /* Scanner.h */,
ACE103C21F8FCD1500D17794 /* Symbol.h */,
ACE103C41F8FCD1500D17794 /* Video.h */,
ACE103BE1F8FCD1400D17794 /* Window.h */,
);
name = zbar;
sourceTree = "<group>";
};
BBA9BB001F1786510053B6EA /* Frameworks */ = {
isa = PBXGroup;
children = (
@@ -308,11 +232,11 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0900;
LastUpgradeCheck = 0830;
LastUpgradeCheck = 0920;
ORGANIZATIONNAME = "The Chromium Authors";
TargetAttributes = {
ACE861271F9F745B006FEF38 = {
DevelopmentTeam = 926V94K5Q8;
DevelopmentTeam = SU33AJBF5T;
ProvisioningStyle = Automatic;
SystemCapabilities = {
com.apple.Push = {
@@ -345,14 +269,12 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
ACE8613E1F9F745B006FEF38 /* app.flx in Resources */,
ACE8613F1F9F745B006FEF38 /* LaunchScreen.storyboard in Resources */,
ACE861401F9F745B006FEF38 /* Generated.xcconfig in Resources */,
ACE861411F9F745B006FEF38 /* AppFrameworkInfo.plist in Resources */,
ACE861421F9F745B006FEF38 /* Debug.xcconfig in Resources */,
ACE861431F9F745B006FEF38 /* Assets.xcassets in Resources */,
ACE861441F9F745B006FEF38 /* Main.storyboard in Resources */,
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -412,7 +334,7 @@
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${PODS_ROOT}/../../../flutter/bin/cache/artifacts/engine/ios-release/Flutter.framework",
"${PODS_ROOT}/../../../../../flutter/bin/cache/artifacts/engine/ios/Flutter.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
@@ -484,14 +406,20 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -532,14 +460,20 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -559,6 +493,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@@ -569,12 +504,6 @@
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ARCHS = (
"$(ARCHS_STANDARD)",
arm7s,
armv7,
arm64,
);
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
@@ -582,7 +511,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 926V94K5Q8;
DEVELOPMENT_TEAM = SU33AJBF5T;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -593,7 +522,6 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
"$(PROJECT_DIR)/ZBarSDK",
);
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.dinect.checker.autoclub.app;
@@ -613,12 +541,6 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ARCHS = (
"$(ARCHS_STANDARD)",
arm7s,
armv7,
arm64,
);
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
@@ -626,7 +548,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 926V94K5Q8;
DEVELOPMENT_TEAM = SU33AJBF5T;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -637,7 +559,6 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
"$(PROJECT_DIR)/ZBarSDK",
);
PRODUCT_BUNDLE_IDENTIFIER = com.dinect.checker.autoclub.app;
PRODUCT_NAME = "$(TARGET_NAME)";

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildLocationStyle</key>
<string>UseTargetSettings</string>
</dict>
</plist>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0900"
LastUpgradeVersion = "0920"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>ACE861271F9F745B006FEF38</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View File

@@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Autobonus copy.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
</dict>
<key>Dinect copy.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>5</integer>
</dict>
<key>Runner copy.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>13</integer>
</dict>
<key>Runner.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>97C146ED1CF9000F007C117D</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>AC45BF1B1F9E386C009713E2</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>AC45BF691F9E408E009713E2</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>AC45BF921F9E574C009713E2</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>AC73A3CE1F9F79760026EBA4</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>AC73A3F61F9F7F910026EBA4</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>ACE860F91F9F716A006FEF38</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>ACE861271F9F745B006FEF38</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Runner.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array/>
</plist>

View File

@@ -1,151 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "0"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/AppDelegate.m"
timestampString = "534682467.345685"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "78"
endingLineNumber = "78"
landmarkName = "-application:didFinishLaunchingWithOptions:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/AppDelegate.m"
timestampString = "534682467.346198"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "10"
endingLineNumber = "10"
landmarkName = "-application:didFinishLaunchingWithOptions:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/AppDelegate.m"
timestampString = "534682467.346423"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
landmarkName = "-application:didFinishLaunchingWithOptions:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/AppDelegate.m"
timestampString = "534682467.34663"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "15"
endingLineNumber = "15"
landmarkName = "-application:didFinishLaunchingWithOptions:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/AppDelegate.m"
timestampString = "534682467.346835"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "9"
endingLineNumber = "9"
landmarkName = "-application:didFinishLaunchingWithOptions:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/ScannerViewController.swift"
timestampString = "533143176.371374"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "88"
endingLineNumber = "88"
landmarkName = "viewDidLoad()"
landmarkType = "7">
<Locations>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "Runner.ScannerViewController.imagePickerController(__ObjC.UIImagePickerController, didFinishPickingMediaWithInfo: Swift.Dictionary&lt;Swift.String, Any&gt;) -&gt; ()"
moduleName = "Runner"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ntrlab/semyon/apps/checker/ios/Runner/ScannerViewController.swift"
timestampString = "530035394.220038"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "48"
endingLineNumber = "48"
offsetFromSymbolStart = "1112">
</Location>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 () -&gt; () in Runner.ScannerViewController.imagePickerController(__ObjC.UIImagePickerController, didFinishPickingMediaWithInfo: Swift.Dictionary&lt;Swift.String, Any&gt;) -&gt; ()"
moduleName = "Runner"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ntrlab/semyon/apps/checker/ios/Runner/ScannerViewController.swift"
timestampString = "530035394.222527"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "49"
endingLineNumber = "49"
offsetFromSymbolStart = "28">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Runner/ScannerViewController.swift"
timestampString = "533143176.371475"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "89"
endingLineNumber = "89"
landmarkName = "viewDidLoad()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "0"
version = "2.0">
</Bucket>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "0"
version = "2.0">
</Bucket>

View File

@@ -1,8 +1,6 @@
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
#import "Autobonus-Swift.h"
#import "ZBarSDK.h"
@implementation AppDelegate
@@ -90,14 +88,9 @@
} else if ([@"getCurrency" isEqualToString:call.method]) {
result(buildSettings[@"currency"]);
} else if ([@"startScanner" isEqualToString:call.method]) {
NSString *locale = call.arguments[@"locale"];
NSLog(@"locale is %@", locale);
ScannerViewController *modalViewController = [[ScannerViewController alloc] initWithLocale:locale];
ScannerViewController *modalViewController = [[ScannerViewController alloc] initWithStrings:call.arguments];
modalViewController.platformChannel = weekPlatformChannel;
[controller presentViewController:modalViewController animated:YES completion:nil];
// [weekPlatformChannel invokeMethod:(@"findUserAndPurchase") arguments: @[@"79039441628", @"phone"]];
} else if ([@"isOnline" isEqualToString:call.method]) {
result(@YES);
} else if ([@"getSupportPhone" isEqualToString:call.method]) {

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

View File

@@ -2,5 +2,4 @@
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "ZBarSDK.h"
#import "ZBarImageScanner.h"
#import "ZXingObjC/ZXingObjC.h"

View File

@@ -1,24 +1,7 @@
//
// ScannerViewController.swift
// Runner
//
// Created by Ivan Murashov on 13/07/2017.
// Copyright © 2017 The Chromium Authors. All rights reserved.
//
import UIKit
import Flutter
extension ZBarSymbolSet: Sequence {
//public typealias Element = ZBarSymbol
//public typealias Iterator = NSFastEnumerationIterator
public func makeIterator() -> NSFastEnumerationIterator {
return NSFastEnumerationIterator(self)
}
}
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate, UITextFieldDelegate {
@objc class ScannerViewController: UIViewController, ZXCaptureDelegate, UITextFieldDelegate {
enum AppLocale {
case ru
@@ -45,12 +28,16 @@ extension ZBarSymbolSet: Sequence {
}
}
var appLocale: AppLocale
// @IBOutlet weak var decodedLabel: UILabel!
private var captureSizeTransform: CGAffineTransform?
var buttonState: ButtonState = .card
var platformChannel: FlutterMethodChannel?
let readerViewController = ZBarReaderViewController()
// Квадрат для наведения на цель (надеюсь)
let scanRectView = UIView()
//Вьюшка для верхнего меню
let topView = UIView()
@@ -61,105 +48,74 @@ extension ZBarSymbolSet: Sequence {
//Кнопка настроек
var settingButton: UIButton!
var strings = [String:String]()
required init?(coder aDecoder: NSCoder) {
self.appLocale = .en
super.init(coder: aDecoder)
}
init(locale: String) {
switch locale {
case "ru": self.appLocale = .ru; break
default: self.appLocale = .en
}
init(strings: [String: String]) {
super.init(nibName: nil, bundle: nil)
}
func getCardHint() -> String {
switch self.appLocale {
case .ru: return "Ввести номер карты"
default: return "Enter the barcode"
}
}
func getPhoneHint() -> String {
switch self.appLocale {
case .ru: return "Телефон 79XXXXXXXXX"
default: return "Phone 79XXXXXXXXX"
}
strings.forEach { (k,v) in self.strings[k] = v }
}
func getInputHint() -> String {
switch self.buttonState {
case .card: return self.getCardHint()
case .phone: return self.getPhoneHint()
}
}
func getErrorTitle() -> String {
switch self.appLocale {
case .ru: return "Ошибка"
default: return "Error"
}
}
func getCardErrorText() -> String {
switch self.appLocale {
case .ru: return "Пользователь с номером карты %@ не найден"
default: return "User with card number %@ not found"
}
}
func getPhoneErrorText() -> String {
switch self.appLocale {
case .ru: return "Пользователь с номером телефона %@ не найден"
default: return "User with phone number %@ not found"
case .card: return strings["enter_manual"]!
case .phone: return strings["enter_phone"]!
}
}
func getErrorText() -> String {
switch self.buttonState {
case .card: return self.getCardErrorText()
case .phone: return self.getPhoneErrorText()
case .card: return strings["user_card_not_found"]!
case .phone: return strings["user_phone_not_found"]!
}
}
func getDismissText() -> String {
switch self.appLocale {
case .ru: return "Скрыть"
default: return "Dismiss"
}
}
let capture: ZXCapture = ZXCapture()
override func viewDidLoad() {
super.viewDidLoad()
readerViewController.readerDelegate = self
readerViewController.readerView.zoom = 1.0
readerViewController.showsZBarControls = false
capture.camera = capture.back()
capture.focusMode = .continuousAutoFocus
view.layer.addSublayer((capture.layer)!)
view.addSubview(scanRectView)
settingButton = UIButton(type: .system)
settingButton.addTarget(self, action: #selector(ScannerViewController.buttonTouch), for: .touchUpInside)
self.addChildViewController(readerViewController)
self.view.addSubview(readerViewController.view)
readerViewController.didMove(toParentViewController: self)
readerViewController.view.addSubview(topView)
topView.addSubview(textField)
topView.addSubview(settingButton)
view.addSubview(topView)
view.bringSubview(toFront: topView)
textField.delegate = self
//textField.keyboardType = .numberPad
//Looks for single or multiple taps.
let tap = UITapGestureRecognizer(target: self, action: #selector(ScannerViewController.hideKeyboard))
readerViewController.view.addGestureRecognizer(tap)
view.addGestureRecognizer(tap)
settingButton.setImage(self.buttonState.icon, for: .normal)
textField.placeholder = self.getInputHint()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
topView.backgroundColor = UIColor.white
textField.borderStyle = .roundedRect
capture.delegate = self
applyOrientation()
}
override func viewWillLayoutSubviews() {
scanRectView.frame = view.bounds
topView.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: 56)
settingButton.frame = CGRect(x: 8, y: 26, width: 20, height: 20)
textField.frame = CGRect(x: settingButton.frame.maxX + 8, y: 21,
width: view.frame.size.width - settingButton.frame.maxX - 16, height: 30)
}
func hideKeyboard() {
view.endEditing(false)
}
@@ -198,53 +154,155 @@ extension ZBarSymbolSet: Sequence {
func showErrorAlert(_ str: String) {
let alertController = UIAlertController(
title: self.getErrorTitle(),
title: strings["error"]!,
message: String(format: self.getErrorText(), str),
preferredStyle: UIAlertControllerStyle.alert
)
alertController.addAction(UIAlertAction(title: self.getDismissText(), style: UIAlertActionStyle.default,handler: nil))
// if let appDelegate = UIApplication.shared.delegate as? FlutterAppDelegate {
// appDelegate.window.rootViewController?.present(alertController, animated: true, completion: nil)
// }
alertController.addAction(UIAlertAction(title: strings["dismiss"]!, style: UIAlertActionStyle.default,handler: nil))
self.present(alertController, animated: true, completion: nil)
}
override func viewWillAppear(_ animated: Bool) {
topView.backgroundColor = UIColor.white
textField.borderStyle = .roundedRect
super.viewWillAppear(animated)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
override func viewWillLayoutSubviews() {
readerViewController.view.frame = view.bounds
topView.frame = CGRect(x: 0, y: 0, width: readerViewController.view.frame.size.width, height: 40)
textField.frame = CGRect(x: settingButton.frame.maxX + 8 + 20 + 5, y: 5, width: readerViewController.view.frame.size.width - 50, height: 30)
settingButton.frame = CGRect(x: 8, y: 10, width: 20, height: 20)
}
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 {
sendResult(data)
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
deinit {
capture.layer.removeFromSuperlayer()
}
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: {(_ context: UIViewControllerTransitionCoordinatorContext) -> Void in
}, completion: {(_ context: UIViewControllerTransitionCoordinatorContext) -> Void in
self.applyOrientation()
})
}
func applyOrientation() {
print("APPLY ORIENTATION")
let orientation: UIInterfaceOrientation = UIApplication.shared.statusBarOrientation
var scanRectRotation: Float
var captureRotation: Float
switch orientation {
case .portrait:
captureRotation = 0
scanRectRotation = 90
case .landscapeLeft:
captureRotation = 90
scanRectRotation = 180
case .landscapeRight:
captureRotation = 270
scanRectRotation = 0
case .portraitUpsideDown:
captureRotation = 180
scanRectRotation = 270
default:
captureRotation = 0
scanRectRotation = 90
}
applyRectOfInterest(orientation)
let transform = CGAffineTransform(rotationAngle: CGFloat(captureRotation / 180 * .pi))
capture.transform = transform
capture.rotation = CGFloat(scanRectRotation)
capture.layer.frame = view.frame
}
func applyRectOfInterest(_ orientation: UIInterfaceOrientation) {
var scaleVideo: CGFloat
var scaleVideoX: CGFloat
var scaleVideoY: CGFloat
var videoSizeX: CGFloat
var videoSizeY: CGFloat
var transformedVideoRect: CGRect = scanRectView.frame
videoSizeX = 720
videoSizeY = 1280
if UIInterfaceOrientationIsPortrait(orientation) {
scaleVideoX = view.frame.size.width / videoSizeX
scaleVideoY = view.frame.size.height / videoSizeY
scaleVideo = max(scaleVideoX, scaleVideoY)
if scaleVideoX > scaleVideoY {
transformedVideoRect.origin.y += (scaleVideo * videoSizeY - view.frame.size.height) / 2
}
else {
transformedVideoRect.origin.x += (scaleVideo * videoSizeX - view.frame.size.width) / 2
}
}
else {
scaleVideoX = view.frame.size.width / videoSizeY
scaleVideoY = view.frame.size.height / videoSizeX
scaleVideo = max(scaleVideoX, scaleVideoY)
if scaleVideoX > scaleVideoY {
transformedVideoRect.origin.y += (scaleVideo * videoSizeX - view.frame.size.height) / 2
}
else {
transformedVideoRect.origin.x += (scaleVideo * videoSizeY - view.frame.size.width) / 2
}
}
captureSizeTransform = CGAffineTransform(scaleX: 1 / scaleVideo, y: 1 / scaleVideo)
capture.scanRect = transformedVideoRect.applying(captureSizeTransform!)
}
// MARK: - Private Methods
func barcodeFormat(toString format: ZXBarcodeFormat) -> String {
switch format {
case kBarcodeFormatAztec:
return "Aztec"
case kBarcodeFormatCodabar:
return "CODABAR"
case kBarcodeFormatCode39:
return "Code 39"
case kBarcodeFormatCode93:
return "Code 93"
case kBarcodeFormatCode128:
return "Code 128"
case kBarcodeFormatDataMatrix:
return "Data Matrix"
case kBarcodeFormatEan8:
return "EAN-8"
case kBarcodeFormatEan13:
return "EAN-13"
case kBarcodeFormatITF:
return "ITF"
case kBarcodeFormatPDF417:
return "PDF417"
case kBarcodeFormatQRCode:
return "QR Code"
case kBarcodeFormatRSS14:
return "RSS 14"
case kBarcodeFormatRSSExpanded:
return "RSS Expanded"
case kBarcodeFormatUPCA:
return "UPCA"
case kBarcodeFormatUPCE:
return "UPCE"
case kBarcodeFormatUPCEANExtension:
return "UPC/EAN extension"
default:
return "Unknown"
}
}
// MARK: - ZXCaptureDelegate Methods
func captureResult(_ capture: ZXCapture, result: ZXResult) {
let inverse: CGAffineTransform = captureSizeTransform!.inverted()
var points = [AnyHashable]()
var location = ""
for resultPoint in result.resultPoints {
let p = resultPoint as! ZXResultPoint
let cgPoint = CGPoint(x: CGFloat(p.x), y: CGFloat(p.y))
var transformedPoint: CGPoint = cgPoint.applying(inverse)
transformedPoint = scanRectView.convert(transformedPoint, to: scanRectView.window)
let windowPointValue = NSValue(cgPoint: transformedPoint)
location = "\(location) (\(transformedPoint.x), \(transformedPoint.y))"
points.append(windowPointValue)
}
// We got a result. Display information about the result onscreen.
let formatString: String = barcodeFormat(toString: result.barcodeFormat)
sendResult(result.text)
print(result.text)
self.capture.stop()
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(2 * Double(NSEC_PER_SEC)) / Double(NSEC_PER_SEC), execute: {() -> Void in
self.capture.start()
})
}
}

View File

@@ -69,10 +69,12 @@ abstract class BaseState<T extends StatefulWidget> extends State<T> {
child: getMenuItem(help_png, StringsLocalization.help())
));
if (Theme.of(context).platform != TargetPlatform.iOS) {
menuItemList.add(new PopupMenuItem(
value: 2,
child: getMenuItem(exit_png, StringsLocalization.exit())
));
}
return <Widget>[
new PopupMenuButton<int>(

View File

@@ -4,7 +4,8 @@ import 'package:checker/db.dart';
import 'package:checker/strings.dart';
import 'package:flutter/material.dart';
abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T> {
abstract class SettingsBaseState<T extends StatefulWidget>
extends BaseState<T> {
SettingsBaseState(SqliteHelper helper, String app) {
this.helper = helper;
@@ -45,14 +46,15 @@ abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T>
return new Container(
height: 56.0,
child: (new FlatButton(onPressed: () {
saveOption();
setState(() {
saveOption();
selectedItem = getOptions().indexOf(option);
});
},
child: new Row(children: <Widget>[
new Expanded(child: new Text(option)),
getCheckMark(getOptions().indexOf(option))]))));
getCheckMark(getOptions().indexOf(option))
]))));
}
Widget getCheckMark(int index) {

View File

@@ -5,7 +5,6 @@ import 'package:checker/screens/splash.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:image_picker/image_picker.dart';
import 'package:intl/intl.dart';
import 'db.dart';
import 'dart:convert';
@@ -47,8 +46,7 @@ logout(BuildContext context, SqliteHelper helper) async {
// helper.close().then((_) {
// Navigator.of(context).pop();
// Navigator.of(context).pop();
pushRouteReplacement(
context, new SplashScreen()); // Запускаем регистрацию
pushRouteReplacement(context, new SplashScreen()); // Запускаем регистрацию
// });
});
}).catchError((error) {
@@ -162,13 +160,16 @@ startScanner(BuildContext context, String app, SqliteHelper helper) async {
}
});
platform.invokeMethod('startScanner', {
Map<String, String> args = StringsLocalization.strings;
args.addAll({
'token': token,
'url': await platform.invokeMethod('getEndpoint'),
'appToken': await platform.invokeMethod('getAppToken'),
'locale': Intl.defaultLocale,
'color': Resources.getPrimaryColor(app).value
'localeCode': StringsLocalization.localeCode,
'color': Resources.getPrimaryColor(app).value.toString()
});
platform.invokeMethod('startScanner', args);
}
}
}

View File

@@ -1,62 +0,0 @@
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that looks up messages for specific locales by
// delegating to the appropriate library.
import 'dart:async';
import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';
import 'package:intl/src/intl_helpers.dart';
import 'messages_en.dart' as messages_messages_en;
import 'messages_es.dart' as messages_messages_es;
import 'messages_ru.dart' as messages_messages_ru;
import 'messages_ua.dart' as messages_messages_ua;
typedef Future<dynamic> LibraryLoader();
Map<String, LibraryLoader> _deferredLibraries = {
'en': () => new Future.value(null),
'es': () => new Future.value(null),
'ru': () => new Future.value(null),
'ua': () => new Future.value(null),
};
MessageLookupByLibrary _findExact(localeName) {
switch (localeName) {
case 'en':
return messages_messages_en.messages;
case 'es':
return messages_messages_es.messages;
case 'ru':
return messages_messages_ru.messages;
case 'ua':
return messages_messages_ua.messages;
default:
return null;
}
}
/// User programs should call this before using [localeName] for messages.
Future initializeMessages(String localeName) {
var lib = _deferredLibraries[Intl.canonicalizedLocale(localeName)];
var load = lib == null ? new Future.value(false) : lib();
return load.then((_) {
initializeInternalMessageLookup(() => new CompositeMessageLookup());
messageLookup.addLocale(localeName, _findGeneratedMessagesFor);
});
}
bool _messagesExistFor(String locale) {
var messages;
try {
messages = _findExact(locale);
} catch (e) {}
return messages != null;
}
MessageLookupByLibrary _findGeneratedMessagesFor(locale) {
var actualLocale = Intl.verifiedLocale(locale, _messagesExistFor,
onFailure: (_) => null);
if (actualLocale == null) return null;
return _findExact(actualLocale);
}

View File

@@ -1,112 +0,0 @@
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that provides messages for a messages_en locale. All the
// messages from the main program should be duplicated here with the same
// function name.
import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';
final messages = new MessageLookup();
final _keepAnalysisHappy = Intl.defaultLocale;
class MessageLookup extends MessageLookupByLibrary {
get localeName => 'messages_en';
final messages = _notInlinedMessages(_notInlinedMessages);
static _notInlinedMessages(_) => {
"ID_Store" : MessageLookupByLibrary.simpleMessage("Store ID"),
"ID_not_found" : MessageLookupByLibrary.simpleMessage("Identifier %s is not found"),
"app_activ" : MessageLookupByLibrary.simpleMessage("The application is activated"),
"ask_change_store" : MessageLookupByLibrary.simpleMessage("Do you really want to log out and enter a different store number?"),
"buyer" : MessageLookupByLibrary.simpleMessage("Buyer"),
"card" : MessageLookupByLibrary.simpleMessage("Card"),
"card_scaner" : MessageLookupByLibrary.simpleMessage("Card Scanner"),
"carry_purchase" : MessageLookupByLibrary.simpleMessage("Create a purchase"),
"complite_activ" : MessageLookupByLibrary.simpleMessage("Complete registration"),
"complite_purchase" : MessageLookupByLibrary.simpleMessage("Complete the purchase"),
"confirm_purchase" : MessageLookupByLibrary.simpleMessage("You confirm the purchase for %s %s"),
"confirmation" : MessageLookupByLibrary.simpleMessage("Сonfirmation"),
"no" : MessageLookupByLibrary.simpleMessage("No"),
"purchase_complite" : MessageLookupByLibrary.simpleMessage("A purchase of %s %s was completed"),
"registration" : MessageLookupByLibrary.simpleMessage("Registration"),
"usage" : MessageLookupByLibrary.simpleMessage("Usage"),
"support" : MessageLookupByLibrary.simpleMessage("Support contacts"),
"common" : MessageLookupByLibrary.simpleMessage("General information"),
"request_sent_wait_activ" : MessageLookupByLibrary.simpleMessage("Activation request for the application has been sent, please wait for administrator approval"),
"reward" : MessageLookupByLibrary.simpleMessage("Reward"),
"bonus" : MessageLookupByLibrary.simpleMessage("Bonus on account"),
"discount_rate" : MessageLookupByLibrary.simpleMessage("Dicount Rate"),
"discount_sum" : MessageLookupByLibrary.simpleMessage("Dicount Sum"),
"bonus_plus" : MessageLookupByLibrary.simpleMessage("Bonus points"),
"bonus_minus" : MessageLookupByLibrary.simpleMessage("Bonus was charged"),
"bonus_hint" : MessageLookupByLibrary.simpleMessage("Points to charge"),
"coupons_used" : MessageLookupByLibrary.simpleMessage("Coupons were used"),
"select_coupons" : MessageLookupByLibrary.simpleMessage("Select coupons for using in purchase"),
"bonus_explanation" : MessageLookupByLibrary.simpleMessage("If not set, points will be added"),
"scan" : MessageLookupByLibrary.simpleMessage("Scan"),
"sign_up" : MessageLookupByLibrary.simpleMessage("Sign Up"),
"specify_din_store" : MessageLookupByLibrary.simpleMessage("Specify the store ID"),
"sum" : MessageLookupByLibrary.simpleMessage("Sum"),
"update_activ_status" : MessageLookupByLibrary.simpleMessage("Update activation status"),
"yes" : MessageLookupByLibrary.simpleMessage("Yes"),
"settings" : MessageLookupByLibrary.simpleMessage("Settings"),
"help" : MessageLookupByLibrary.simpleMessage("Help"),
"exit" : MessageLookupByLibrary.simpleMessage("Exit"),
"logout" : MessageLookupByLibrary.simpleMessage("Log Out"),
"currency" : MessageLookupByLibrary.simpleMessage("Currency"),
"locale" : MessageLookupByLibrary.simpleMessage("Language"),
"nominative_ruble": MessageLookupByLibrary.simpleMessage("Ruble"),
"singular_ruble": MessageLookupByLibrary.simpleMessage("Ruble"),
"plural_ruble": MessageLookupByLibrary.simpleMessage("Rubles"),
"nominative_dollar": MessageLookupByLibrary.simpleMessage("US Dollar"),
"singular_dollar": MessageLookupByLibrary.simpleMessage("US Dollar"),
"plural_dollar": MessageLookupByLibrary.simpleMessage("US Dollars"),
"nominative_hryvna": MessageLookupByLibrary.simpleMessage("Hryvnia"),
"singular_hryvna": MessageLookupByLibrary.simpleMessage("Hryvnia"),
"plural_hryvna": MessageLookupByLibrary.simpleMessage("Hryvnia"),
"nominative_tenge": MessageLookupByLibrary.simpleMessage("Tenge"),
"singular_tenge": MessageLookupByLibrary.simpleMessage("Tenge"),
"plural_tenge": MessageLookupByLibrary.simpleMessage("Tenge"),
"nominative_euro": MessageLookupByLibrary.simpleMessage("Euro"),
"singular_euro": MessageLookupByLibrary.simpleMessage("Euro"),
"plural_euro": MessageLookupByLibrary.simpleMessage("Euro"),
"registration_guide": MessageLookupByLibrary.simpleMessage('''
Store log in screen is the first thing you will see after starting the application.
Enter the store number (ID). You can look it up in the loyalty program control panel. If you do not have access to the control panel, ask the administrator.
Click the ""Login"" button.
Please wait while the administrator activates your request. You can refresh your store activation status by pressing the ""Update activation status"" button.
After the administrator activates your request, click the ""Complete activation"" button. The application is ready to use.
If you want to log in as another store, click the Menu button (upper right corner of the screen) and select "Exit".
'''),
"usage_guide": MessageLookupByLibrary.simpleMessage('''
Step 1:
Launch this application and scan your customer's loyalty card using the built in scanner.
If the scan is successful, the customer's information will appear on the screen.
Step 2:
Enter the purchase amount and click the ""Create a purchase"" button.
In a pop-up window press ""YES"" to confirm the amount and allot the points to a customer.
If you want to correct the amount, press ""NO"" and you will return back to the purchase screen where you can adjust the amount.
'''),
"support_guide": MessageLookupByLibrary.simpleMessage('''
Always recommend your customers to install your loyalty card app, so they can participate in your loyalty program.
If you have any problems with the application, feel free to contact the support.
Phone:\n%s\n
Our website:\n%s'''),
"common_guide": MessageLookupByLibrary.simpleMessage('''
To improve barcode scanning quality, adjust the distance between the camera and the barcode so that the border around the barcode (if any) is not visible. Otherwise the vertical lines of the border could be wrongly considered as part of the code.''')
};
}

View File

@@ -1,111 +0,0 @@
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that provides messages for a messages_es locale. All the
// messages from the main program should be duplicated here with the same
// function name.
import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';
final messages = new MessageLookup();
final _keepAnalysisHappy = Intl.defaultLocale;
class MessageLookup extends MessageLookupByLibrary {
get localeName => 'messages_es';
final messages = _notInlinedMessages(_notInlinedMessages);
static _notInlinedMessages(_) => {
"ID_Store" : MessageLookupByLibrary.simpleMessage("ID del negocio "),
"ID_not_found" : MessageLookupByLibrary.simpleMessage("ID %s no está encontrado"),
"app_activ" : MessageLookupByLibrary.simpleMessage("Aplicación está activada"),
"ask_change_store" : MessageLookupByLibrary.simpleMessage("¿Os realmente quiereis acabarse una sesión y dar otro DIN del negocio?"),
"buyer" : MessageLookupByLibrary.simpleMessage("El comprador"),
"card" : MessageLookupByLibrary.simpleMessage("Tarjeta"),
"card_scaner" : MessageLookupByLibrary.simpleMessage("El escaneo de tarjeta"),
"carry_purchase" : MessageLookupByLibrary.simpleMessage("Realizar la compra"),
"complite_activ" : MessageLookupByLibrary.simpleMessage("Terminar el registro"),
"complite_purchase" : MessageLookupByLibrary.simpleMessage("Terminar la compra"),
"confirm_purchase" : MessageLookupByLibrary.simpleMessage("¿Confirmais la compra por %s %s"),
"confirmation" : MessageLookupByLibrary.simpleMessage("Confirmacón"),
"no" : MessageLookupByLibrary.simpleMessage("No"),
"purchase_complite" : MessageLookupByLibrary.simpleMessage("La compra por %s %s está realizada"),
"registration" : MessageLookupByLibrary.simpleMessage("El registro"),
"usage" : MessageLookupByLibrary.simpleMessage("Explotación"),
"support" : MessageLookupByLibrary.simpleMessage("Los contactos del soporte técnico"),
"request_sent_wait_activ" : MessageLookupByLibrary.simpleMessage("El requieremento de activación de aplicación esta mandado, esperad la activación por el administrador."),
"reward" : MessageLookupByLibrary.simpleMessage("Gratificación"),
"bonus" : MessageLookupByLibrary.simpleMessage("Bono por cuenta"),
"discount_rate" : MessageLookupByLibrary.simpleMessage("Tasa de descuento"),
"discount_sum" : MessageLookupByLibrary.simpleMessage("El monto del descuento"),
"bonus_plus" : MessageLookupByLibrary.simpleMessage("Puntos de bonificación"),
"bonus_minus" : MessageLookupByLibrary.simpleMessage("El bono fue cobrado"),
"bonus_hint" : MessageLookupByLibrary.simpleMessage("¿Cuántas puntuaciones se cancelan?"),
"coupons_used" : MessageLookupByLibrary.simpleMessage("Los cupones fueron canjeados"),
"bonus_explanation" : MessageLookupByLibrary.simpleMessage("Si no especifica cuántos puntos cancelar, se agregarán puntos"),
"scan" : MessageLookupByLibrary.simpleMessage("Escanear"),
"sign_up" : MessageLookupByLibrary.simpleMessage("Registrarse"),
"specify_din_store" : MessageLookupByLibrary.simpleMessage("Hay que dar ID del negocio"),
"sum" : MessageLookupByLibrary.simpleMessage("Suma"),
"update_activ_status" : MessageLookupByLibrary.simpleMessage("Actualizar la condición de activación"),
"user_name" : MessageLookupByLibrary.simpleMessage("Un nombre de usario"),
"yes" : MessageLookupByLibrary.simpleMessage("Si"),
"settings" : MessageLookupByLibrary.simpleMessage("Las configuraciones"),
"help" : MessageLookupByLibrary.simpleMessage("La Ayuda"),
"exit" : MessageLookupByLibrary.simpleMessage("Salir"),
"logout" : MessageLookupByLibrary.simpleMessage("Log Out"),
"currency" : MessageLookupByLibrary.simpleMessage("La Moneda"),
"locale" : MessageLookupByLibrary.simpleMessage("La lengua"),
"nominative_ruble": MessageLookupByLibrary.simpleMessage("Rublo"),
"singular_ruble": MessageLookupByLibrary.simpleMessage("Rublo"),
"plural_ruble": MessageLookupByLibrary.simpleMessage("Rublos"),
"nominative_dollar": MessageLookupByLibrary.simpleMessage("Dólar Dolares"),
"singular_dollar": MessageLookupByLibrary.simpleMessage("Dólar Dolares"),
"plural_dollar": MessageLookupByLibrary.simpleMessage("Dólar Dolares"),
"nominative_hryvna": MessageLookupByLibrary.simpleMessage("Hryvnia"),
"singular_hryvna": MessageLookupByLibrary.simpleMessage("Hryvnia"),
"plural_hryvna": MessageLookupByLibrary.simpleMessage("Hryvnia"),
"nominative_tenge": MessageLookupByLibrary.simpleMessage("Tenge"),
"singular_tenge": MessageLookupByLibrary.simpleMessage("Tenge"),
"plural_tenge": MessageLookupByLibrary.simpleMessage("Tenge"),
"nominative_euro": MessageLookupByLibrary.simpleMessage("Euro"),
"singular_euro": MessageLookupByLibrary.simpleMessage("Euro"),
"plural_euro": MessageLookupByLibrary.simpleMessage("Euro"),
"registration_guide": MessageLookupByLibrary.simpleMessage('''
Store log in screen is the first thing you will see after starting the application.
Enter the store number (DIN). You can look it up in the loyalty program control panel. If you do not have access to the control panel, ask the administrator.
Click the ""Login"" button.
Please wait while the administrator activates your request. You can refresh your store activation status by pressing the ""Update activation status"" button.
After the administrator activates your request, click the ""Complete activation"" button. The application is ready to use.
If you want to log in as another store, click the Menu button (upper right corner of the screen) and select "Exit".
'''),
"usage_guide": MessageLookupByLibrary.simpleMessage('''
Step 1:
Launch this application and scan your customer's loyalty card using the built in scanner.
If the scan is successful, the customer's information will appear on the screen.
Step 2:
Enter the purchase amount and click the ""Create a purchase"" button.
In a pop-up window press ""YES"" to confirm the amount and allot the points to a customer.
If you want to correct the amount, press ""NO"" and you will return back to the purchase screen where you can adjust the amount.
'''),
"support_guide": MessageLookupByLibrary.simpleMessage('''
Always recommend your customers to install your loyalty card app, so they can participate in your loyalty program.
If you have any problems with the application, feel free to contact the support.
Phone:\n%s\n
Our website:\n%s'''),
"common_guide": MessageLookupByLibrary.simpleMessage('''
To improve barcode scanning quality, adjust the distance between the camera and the barcode so that the border around the barcode (if any) is not visible. Otherwise the vertical lines of the border could be wrongly considered as part of the code.''')
};
}

View File

@@ -1,113 +0,0 @@
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that provides messages for a messages_ru locale. All the
// messages from the main program should be duplicated here with the same
// function name.
import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';
final messages = new MessageLookup();
final _keepAnalysisHappy = Intl.defaultLocale;
class MessageLookup extends MessageLookupByLibrary {
get localeName => 'messages_ru';
final messages = _notInlinedMessages(_notInlinedMessages);
static _notInlinedMessages(_) => {
"ID_Store" : MessageLookupByLibrary.simpleMessage("ID магазина"),
"ID_not_found" : MessageLookupByLibrary.simpleMessage("Идентификатор %s не найден"),
"app_activ" : MessageLookupByLibrary.simpleMessage("Приложение активировано"),
"ask_change_store" : MessageLookupByLibrary.simpleMessage("Вы действительно хотите выйти и ввести другой номер магазина?"),
"buyer" : MessageLookupByLibrary.simpleMessage("Покупатель"),
"card" : MessageLookupByLibrary.simpleMessage("Карта"),
"card_scaner" : MessageLookupByLibrary.simpleMessage("Сканер карты"),
"carry_purchase" : MessageLookupByLibrary.simpleMessage("Проведение покупки"),
"complite_activ" : MessageLookupByLibrary.simpleMessage("Завершить регистрацию"),
"complite_purchase" : MessageLookupByLibrary.simpleMessage("Завершить покупку"),
"confirm_purchase" : MessageLookupByLibrary.simpleMessage("Вы подтверждаете покупку на %s %s"),
"confirmation" : MessageLookupByLibrary.simpleMessage("Подтверждение"),
"no" : MessageLookupByLibrary.simpleMessage("Нет"),
"purchase_complite" : MessageLookupByLibrary.simpleMessage("Покупка на сумму %s %s проведена"),
"registration" : MessageLookupByLibrary.simpleMessage("Регистрация"),
"usage" : MessageLookupByLibrary.simpleMessage("Использование"),
"support" : MessageLookupByLibrary.simpleMessage("Контакты поддержки"),
"common" : MessageLookupByLibrary.simpleMessage("Общая информация"),
"request_sent_wait_activ" : MessageLookupByLibrary.simpleMessage("Запрос на активацию приложения отправлен, дождитесь подтверждения активации администратором"),
"reward" : MessageLookupByLibrary.simpleMessage("Вознаграждение"),
"bonus" : MessageLookupByLibrary.simpleMessage("Бонусов на счету"),
"discount_rate" : MessageLookupByLibrary.simpleMessage("Процент скидки"),
"discount_sum" : MessageLookupByLibrary.simpleMessage("Сумма скидки"),
"bonus_plus" : MessageLookupByLibrary.simpleMessage("Бонусов начислено"),
"bonus_minus" : MessageLookupByLibrary.simpleMessage("Бонусов списано"),
"bonus_hint" : MessageLookupByLibrary.simpleMessage("Сколько баллов списать?"),
"coupons_used" : MessageLookupByLibrary.simpleMessage("Были погашены купоны"),
"select_coupons" : MessageLookupByLibrary.simpleMessage("Выберите купоны для гашения"),
"bonus_explanation" : MessageLookupByLibrary.simpleMessage("Если не указано сколько баллов списать, баллы будут начислены"),
"scan" : MessageLookupByLibrary.simpleMessage("Сканировать"),
"sign_up" : MessageLookupByLibrary.simpleMessage("Зарегистрироваться"),
"specify_din_store" : MessageLookupByLibrary.simpleMessage("Необходимо указать ID магазина"),
"sum" : MessageLookupByLibrary.simpleMessage("Сумма"),
"update_activ_status" : MessageLookupByLibrary.simpleMessage("Обновить статус активации"),
"yes" : MessageLookupByLibrary.simpleMessage("Да"),
"settings" : MessageLookupByLibrary.simpleMessage("Настройки"),
"help" : MessageLookupByLibrary.simpleMessage("Справка"),
"exit" : MessageLookupByLibrary.simpleMessage("Закрыть приложение"),
"logout" : MessageLookupByLibrary.simpleMessage("Выйти из аккаунта"),
"currency" : MessageLookupByLibrary.simpleMessage("Валюта"),
"locale" : MessageLookupByLibrary.simpleMessage("Язык"),
"nominative_ruble": MessageLookupByLibrary.simpleMessage("Рубль"),
"singular_ruble": MessageLookupByLibrary.simpleMessage("Рубля"),
"plural_ruble": MessageLookupByLibrary.simpleMessage("Рублей"),
"nominative_dollar": MessageLookupByLibrary.simpleMessage("Доллар США"),
"singular_dollar": MessageLookupByLibrary.simpleMessage("Доллара США"),
"plural_dollar": MessageLookupByLibrary.simpleMessage("Долларов США"),
"nominative_hryvna": MessageLookupByLibrary.simpleMessage("Гривна"),
"singular_hryvna": MessageLookupByLibrary.simpleMessage("Гривны"),
"plural_hryvna": MessageLookupByLibrary.simpleMessage("Гривен"),
"nominative_tenge": MessageLookupByLibrary.simpleMessage("Тенге"),
"singular_tenge": MessageLookupByLibrary.simpleMessage("Тенге"),
"plural_tenge": MessageLookupByLibrary.simpleMessage("Тенге"),
"nominative_euro": MessageLookupByLibrary.simpleMessage("Евро"),
"singular_euro": MessageLookupByLibrary.simpleMessage("Евро"),
"plural_euro": MessageLookupByLibrary.simpleMessage("Евро"),
"registration_guide": MessageLookupByLibrary.simpleMessage('''
После запуска приложения вы окажетесь на странице регистрации магазина.
Введите ID код магазина (выдается при подключении к системе лояльности)
Кликните по кнопке: «Зарегистрировать»
Дождитесь подтверждение активации программы, нажатием по кнопке «Обновите статус активации» обновите статус.
После подтверждения запроса на активацию программы Партнером/менеджером кликните по кнопке «Завершить регистрацию», приложение готово к использованию.
При желании изменить ID магазина, необходимо нажать на кнопку Меню (верхний правый угол экрана) и выбрать ""Выход"".
'''),
"usage_guide": MessageLookupByLibrary.simpleMessage('''
Шаг 1:
Запустите приложение для сканирования карты участника системы лояльности.
При успешном сканировании на вашем экране появятся данные покупателя.
Шаг 2:
Введите сумму покупки данного покупателя и нажмите на кнопку «Проведение покупки».
Во всплывающем окне нажмите ""ДА"", для подтверждения суммы покупки
Если вы хотите поправить сумму, нажмите «НЕТ» и Вы вернетесь на экран покупки и сможете её скорректировать.
'''),
"support_guide": MessageLookupByLibrary.simpleMessage('''
Рекомендуйте покупателям установить мобильное приложение дисконтной системы и получайте новых лояльных покупателей.
При некорректной работе приложения просьба сразу обратиться по телефону нашей технической поддержки.
Телефон:\n%s\n
Наш сайт:\n%s
'''),
"common_guide": MessageLookupByLibrary.simpleMessage('''
Для эффективного считывания штрих-кода карты участника системы лояльности необходимо камеру сканера поднести так, чтобы в неё не попадали вертикальные полосы рамки (если они есть). Они расцениваются сканером как часть штрих-кода.
''')
};
}

View File

@@ -1,114 +0,0 @@
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that provides messages for a messages_ua locale. All the
// messages from the main program should be duplicated here with the same
// function name.
import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';
final messages = new MessageLookup();
final _keepAnalysisHappy = Intl.defaultLocale;
class MessageLookup extends MessageLookupByLibrary {
get localeName => 'messages_ua';
final messages = _notInlinedMessages(_notInlinedMessages);
static _notInlinedMessages(_) => {
"ID_Store" : MessageLookupByLibrary.simpleMessage("ID магазину"),
"ID_not_found" : MessageLookupByLibrary.simpleMessage("Ідентифікатор %s не знайден"),
"app_activ" : MessageLookupByLibrary.simpleMessage("Додаток активований"),
"ask_change_store" : MessageLookupByLibrary.simpleMessage("Ви дійсно хочете вийти і ввести інший номер магазину"),
"buyer" : MessageLookupByLibrary.simpleMessage("Покупець"),
"card" : MessageLookupByLibrary.simpleMessage("Карта"),
"card_scaner" : MessageLookupByLibrary.simpleMessage("Сканер карти"),
"carry_purchase" : MessageLookupByLibrary.simpleMessage("Проведення покупки"),
"complite_activ" : MessageLookupByLibrary.simpleMessage("Завершити реєстрацію"),
"complite_purchase" : MessageLookupByLibrary.simpleMessage("Завершити купівлю"),
"confirm_purchase" : MessageLookupByLibrary.simpleMessage("Ви підтверджуєте покупку на %s %s"),
"confirmation" : MessageLookupByLibrary.simpleMessage("Підтвердження"),
"no" : MessageLookupByLibrary.simpleMessage("Ні"),
"purchase_complite" : MessageLookupByLibrary.simpleMessage("Купівля на суму %s %s проведена"),
"registration" : MessageLookupByLibrary.simpleMessage("Реєстрація"),
"usage" : MessageLookupByLibrary.simpleMessage("Використання"),
"support" : MessageLookupByLibrary.simpleMessage("Контакти підтримки"),
"common" : MessageLookupByLibrary.simpleMessage("Загальна інформація"),
"request_sent_wait_activ" : MessageLookupByLibrary.simpleMessage("Запит на активацію додатку відправлений, дочекайтеся підтвердження активації адміністратором"),
"reward" : MessageLookupByLibrary.simpleMessage("Винагорода"),
"bonus" : MessageLookupByLibrary.simpleMessage("Бонусів на рахунку"),
"discount_rate" : MessageLookupByLibrary.simpleMessage("Відсоток знижки"),
"discount_sum" : MessageLookupByLibrary.simpleMessage("Сума знижки"),
"bonus_plus" : MessageLookupByLibrary.simpleMessage("Бонусів нараховано"),
"bonus_minus" : MessageLookupByLibrary.simpleMessage("Бонусів списано"),
"bonus_hint" : MessageLookupByLibrary.simpleMessage("Скільки балів списати?"),
"coupons_used" : MessageLookupByLibrary.simpleMessage("Були погашені купони"),
"bonus_explanation" : MessageLookupByLibrary.simpleMessage("Якщо не вказано скільки балів списати, бали будуть нараховані"),
"scan" : MessageLookupByLibrary.simpleMessage("Сканувати"),
"sign_up" : MessageLookupByLibrary.simpleMessage("Зареєструватися"),
"specify_din_store" : MessageLookupByLibrary.simpleMessage("Необхідно вказати ID магазину"),
"sum" : MessageLookupByLibrary.simpleMessage("Сума"),
"update_activ_status" : MessageLookupByLibrary.simpleMessage("Оновити статус активації"),
"yes" : MessageLookupByLibrary.simpleMessage("Так"),
"settings" : MessageLookupByLibrary.simpleMessage("Налаштування"),
"help" : MessageLookupByLibrary.simpleMessage("Допомога"),
"exit" : MessageLookupByLibrary.simpleMessage("Вихід"),
"logout" : MessageLookupByLibrary.simpleMessage("Log Out"),
"currency" : MessageLookupByLibrary.simpleMessage("Валюта"),
"locale" : MessageLookupByLibrary.simpleMessage("Мова"),
"nominative_ruble": MessageLookupByLibrary.simpleMessage("Рубль"),
"singular_ruble": MessageLookupByLibrary.simpleMessage("Рубль"),
"plural_ruble": MessageLookupByLibrary.simpleMessage("Рубль"),
"nominative_dollar": MessageLookupByLibrary.simpleMessage("Доллар США"),
"singular_dollar": MessageLookupByLibrary.simpleMessage("Доллар США"),
"plural_dollar": MessageLookupByLibrary.simpleMessage("Доллар США"),
"nominative_hryvna": MessageLookupByLibrary.simpleMessage("Гривня"),
"singular_hryvna": MessageLookupByLibrary.simpleMessage("Гривня"),
"plural_hryvna": MessageLookupByLibrary.simpleMessage("Гривня"),
"nominative_tenge": MessageLookupByLibrary.simpleMessage("Тенге"),
"singular_tenge": MessageLookupByLibrary.simpleMessage("Тенге"),
"plural_tenge": MessageLookupByLibrary.simpleMessage("Тенге"),
"nominative_euro": MessageLookupByLibrary.simpleMessage("Євро"),
"singular_euro": MessageLookupByLibrary.simpleMessage("Євро"),
"plural_euro": MessageLookupByLibrary.simpleMessage("Євро"),
"registration_guide": MessageLookupByLibrary.simpleMessage('''
Після запуску програми ви опинитеся на сторінці реєстрації магазина.
Введіть DIN код магазину (видається при підключенні до системи лояльності)
Натисніть на кнопку «Зареєструвати»
Дочекайтеся підтвердження активації програми, натисканням на кнопку «Оновлення статус активації» поновіть статус.
    
Після підтвердження запиту на активацію програми Партнером / менеджером клікніть по кнопці «Завершити реєстрацію», додаток готове до використання.
При бажанні змінити номер каси, необхідно натиснути на кнопку Меню (верхній правий кут екрану) і вибрати "Вихід".
'''),
"usage_guide": MessageLookupByLibrary.simpleMessage('''
Крок 1:
    
При пред'явленні покупцем картки учасника системи лояльності, запустіть цю програму.
На екрані з'явиться сканер штрих кодів. Відскануте штрих-код карти сканером.
При успішному скануванні на вашому екрані з'являться дані покупця.
    
Крок 2:
    
Необхідно ввести суму покупки даного покупця і клікнути на кнопку «Проведення покупки».
Спливе вікно підтвердження правильності введення суми. У разі правильного введення суми, натисніть «ТАК», сума буде проведена і винагороду буде нараховано учаснику системи лояльності.
Якщо сума введена з помилкою, натисніть «НІ» і Ви повернетеся на крок введення суми і зможете її скорегувати.
'''),
"support_guide": MessageLookupByLibrary.simpleMessage('''
Рекомендуйте покупцям встановити мобільний додаток дисконтної системи і отримуйте нових лояльних покупців.
При некоректній роботі програми прохання відразу звернутися за телефоном нашої технічної підтримки.
Телефон:\n%s\n
Наш сайт:\n%s
'''),
"common_guide": MessageLookupByLibrary.simpleMessage('''
Для ефективного зчитування штрих-коду карти учасника системи лояльності необхідно камеру сканера піднести так, щоб в неї не потрапляли вертикальні смуги рамки. Вони розцінюються сканером як частина штрих-коду.
''')
};
}

View File

@@ -1,16 +1,9 @@
import 'package:flutter/material.dart';
import 'package:checker/screens/splash.dart';
import 'package:checker/consts.dart';
import 'package:flutter/services.dart';
const platform = const MethodChannel('com.dinect.checker/instance_id');
/// Точка входа в приложение.
///
/// some changes
void main() {
platform.invokeMethod('getAppTitle').then((title) {
runApp(new Checker(appName: title));
@@ -22,7 +15,6 @@ class Checker extends StatelessWidget {
final String appName;
@override Widget build (BuildContext context) {
print('app name = ${appName}');
return new MaterialApp(
title: appName,
home: new SplashScreen()

View File

@@ -1,6 +1,5 @@
import 'package:checker/db.dart';
import 'package:checker/strings.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'common.dart';
@@ -14,7 +13,7 @@ getCreateTokenRequest(Map httpBody) async {
return httpClient.post(
await getEndpoint() + 'tokens/?_dmapptoken=' + await getToken(),
body: httpBody,
headers: {'Accept-Language': Intl.defaultLocale});
headers: {'Accept-Language': StringsLocalization.localeCode});
}
// Проверка статуса токена. В ответе приходит параметр active, который может быть либо true, либо false,.
@@ -25,21 +24,21 @@ getCheckTokenStatusRequest(String token) async {
token +
'?_dmapptoken=' +
await getToken(),
headers: {'Accept-Language': Intl.defaultLocale});
headers: {'Accept-Language': StringsLocalization.localeCode});
}
// Удаление токена на сервере.
getDeleteTokenRequest(String token) async {
return httpClient.delete(
await getEndpoint() + 'tokens/' + token + '?_dmapptoken=' +
await getToken(), headers: {'Accept-Language': Intl.defaultLocale});
await getToken(), headers: {'Accept-Language': StringsLocalization.localeCode});
}
getLoyaltyRequest(String endpoint, String token) async {
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
'Authorization': 'dmtoken $token',
'Accept-Language': StringsLocalization.localeCode
};
return httpClient.get(endpoint, headers: headers);
@@ -49,8 +48,8 @@ getPurchaseRequest(String endpoint, Map body, String token) async {
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
'Authorization': 'dmtoken $token',
'Accept-Language': StringsLocalization.localeCode
};
return httpClient.post(endpoint, body: body, headers: headers);
@@ -60,8 +59,8 @@ getCouponsRequest(String endpoint, String token) async {
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
'Authorization': 'dmtoken $token',
'Accept-Language': StringsLocalization.localeCode
};
print(headers);
@@ -73,8 +72,8 @@ getUserByCard(String card, String token) async {
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
'Authorization': 'dmtoken $token',
'Accept-Language': StringsLocalization.localeCode
};
@@ -88,8 +87,8 @@ getUserByPhone(String phone, String token) async {
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
'Authorization': 'dmtoken $token',
'Accept-Language': StringsLocalization.localeCode
};

View File

@@ -8,8 +8,6 @@ import 'package:checker/db.dart';
import 'package:checker/network.dart';
import 'package:checker/strings.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
class FinishRegistrationScreen extends BaseScreen {

View File

@@ -4,7 +4,6 @@ import 'package:checker/db.dart';
import 'package:flutter/material.dart';
import 'package:checker/strings.dart';
import 'package:checker/common.dart';
import 'package:intl/intl.dart';
class LanguagesScreen extends BaseScreen {
@@ -39,14 +38,13 @@ class LanguagesState extends SettingsBaseState<LanguagesScreen> {
@override
saveOption() async {
await helper.saveLocale(languages[selectedItem]);
Intl.defaultLocale = languages[selectedItem];
await StringsLocalization.load(languages[selectedItem]);
}
@override
void getSelectedValue() {
setState(() {
selectedItem = getOptions().indexOf(getLocaleTitle(Intl.defaultLocale));
selectedItem = getOptions().indexOf(getLocaleTitle(StringsLocalization.localeCode));
});
}
}

View File

@@ -274,7 +274,7 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
if (fractionalPart.length > 2) {
fractionalPart = fractionalPart.substring(0, 2);
}
return '${integerPart}.${fractionalPart}';
return '$integerPart.$fractionalPart';
} catch (exception) {
print(exception);
}

View File

@@ -7,7 +7,6 @@ import 'package:checker/screens/currencies.dart';
import 'package:checker/screens/languages.dart';
import 'package:checker/strings.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class SettingsScreen extends BaseScreen {
@@ -51,7 +50,7 @@ class SettingsState extends BaseState<SettingsScreen> {
menuItems[2].title = StringsLocalization.logout();
menuItems[0].selectedValue = info['currency'].toString();
menuItems[1].selectedValue =
info['locale'] == null ? Intl.defaultLocale : info['locale'];
info['locale'] == null ? StringsLocalization.localeCode : info['locale'];
menuItems[2].selectedValue =
info['token'] == null ? '' : getTokenSuffix(info['token']);
});
@@ -84,6 +83,7 @@ class SettingsState extends BaseState<SettingsScreen> {
List<Widget> widgets = new List();
for (int i = 0; i < menuItems.length; i++) {
if (menuItems[i].selectedValue.toString() != '') {
print('title : ${menuItems[i].title}');
widgets.add(
getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])),
menuItems[i].title,
@@ -98,6 +98,7 @@ class SettingsState extends BaseState<SettingsScreen> {
case 0 :
return getCurrencyTitle(int.parse(menuItems[position].selectedValue));
case 1 :
print('val : ${menuItems[position].selectedValue}');
return getLocaleTitle(menuItems[position].selectedValue);
default :
return null;

View File

@@ -12,7 +12,6 @@ import 'package:checker/screens/registration.dart';
import 'package:checker/strings.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:intl/intl.dart';
class SplashScreen extends StatefulWidget {
@override
@@ -78,7 +77,6 @@ class _SplashScreenState extends BaseState<SplashScreen> {
}
void initLocale<T>(String locale, Future<T> onValue()) {
Intl.defaultLocale = locale;
StringsLocalization.load(locale).then((_) {
onValue();
});

View File

@@ -1,16 +1,29 @@
import 'package:intl/intl.dart';
import 'i18n/messages_all.dart';
import 'package:sprintf/sprintf.dart';
import 'dart:async';
import 'package:sprintf/sprintf.dart';
import 'package:xml/xml.dart' as xml;
import 'package:flutter/services.dart';
class StringsLocalization {
static Future load(String locale) async {
return initializeMessages(locale);
static String localeCode;
static Map<String, String> strings = new Map<String, String>();
static Future load(String l) async {
localeCode = l;
var document = xml.parse(await loadStrings(l));
strings.clear();
document.findAllElements('string').forEach((node) {
print("${node.attributes} : ${node.text.toString()}");
strings[node.attributes[0].value] = node.text.toString();
});
return strings;
}
static Future<String> loadStrings(String locale) async {
return await rootBundle.loadString('assets/values-$locale/strings.xml');
}
static String declineCurrency(int num, int code) {
int residual = num % 100;
if (residual >= 20) {
residual %= 10;
@@ -31,7 +44,6 @@ class StringsLocalization {
}
static List<String> currencies(int code) {
String nominative, singular, plural;
switch (code) {
@@ -62,88 +74,76 @@ class StringsLocalization {
break;
}
return [nominative, singular, plural];
}
static String confirmPurchase(String val, int code) {
String trimmedVal = val.substring(0, val.length - 3);
return sprintf(Intl.message('confirm_purchase', name: 'confirm_purchase', locale: Intl.defaultLocale), [val, declineCurrency(int.parse(trimmedVal), code)]);
return sprintf(strings['confirm_purchase'], [val, declineCurrency(int.parse(trimmedVal), code)]);
}
static String purchaseCompleted(String val, int code) {
String trimmedVal = val.substring(0, val.length - 3);
return sprintf(Intl.message('purchase_complite', name: 'purchase_complite', locale: Intl.defaultLocale), [val, declineCurrency(int.parse(trimmedVal), code)]);
return sprintf(strings['purchase_complite'], [val, declineCurrency(int.parse(trimmedVal), code)]);
}
static String registration() => Intl.message('registration', name: 'registration', locale: Intl.defaultLocale);
static String usage() => Intl.message('usage', name: 'usage', locale: Intl.defaultLocale);
static String support() => Intl.message('support', name: 'support', locale: Intl.defaultLocale);
static String common() => Intl.message('common', name: 'common', locale: Intl.defaultLocale);
static String idStore() => Intl.message('ID_Store', name: 'ID_Store', locale: Intl.defaultLocale);
static String signUp() => Intl.message('sign_up', name: 'sign_up', locale: Intl.defaultLocale);
static String specifyDinStore() => Intl.message('specify_din_store', name: 'specify_din_store', locale: Intl.defaultLocale);
static String confirmation() => Intl.message('confirmation', name: 'confirmation', locale: Intl.defaultLocale);
static String askChangeStore() => Intl.message('ask_change_store', name: 'ask_change_store', locale: Intl.defaultLocale);
static String yes() => Intl.message('yes', name: 'yes', locale: Intl.defaultLocale);
static String no() => Intl.message('no', name: 'no', locale: Intl.defaultLocale);
static String requestSentWaitActivation() => Intl.message('request_sent_wait_activ', name: 'request_sent_wait_activ', locale: Intl.defaultLocale);
static String refreshActivationStatus() => Intl.message('update_activ_status', name: 'update_activ_status', locale: Intl.defaultLocale);
static String appActivated() => Intl.message('app_activ', name: 'app_activ', locale: Intl.defaultLocale);
static String completeRegistration() => Intl.message('complite_activ', name: 'complite_activ', locale: Intl.defaultLocale);
static String cardScanner() => Intl.message('card_scaner', name: 'card_scaner', locale: Intl.defaultLocale);
static String card() => Intl.message('card', name: 'card', locale: Intl.defaultLocale);
static String reward() => Intl.message('reward', name: 'reward', locale: Intl.defaultLocale);
static String sum() => Intl.message('sum', name: 'sum', locale: Intl.defaultLocale);
static String bonus() => Intl.message('bonus', name: 'bonus', locale: Intl.defaultLocale);
static String couponsUsed() => Intl.message('coupons_used', name: 'coupons_used', locale: Intl.defaultLocale);
static String selectCoupons() => Intl.message('select_coupons', name: 'select_coupons', locale: Intl.defaultLocale);
static String carryingPurchase() => Intl.message('carry_purchase', name: 'carry_purchase', locale: Intl.defaultLocale);
static String completePurchase() => Intl.message('complite_purchase', name: 'complite_purchase', locale: Intl.defaultLocale);
static String scan() => Intl.message('scan', name: 'scan', locale: Intl.defaultLocale);
static String buyer() => Intl.message('buyer', name: 'buyer', locale: Intl.defaultLocale);
static String bonusHint() => Intl.message('bonus_hint', name: 'bonus_hint', locale: Intl.defaultLocale);
static String bonusExplanation() => Intl.message('bonus_explanation', name: 'bonus_explanation', locale: Intl.defaultLocale);
static String discountRate() => Intl.message('discount_rate', name: 'discount_rate', locale: Intl.defaultLocale);
static String discountSum() => Intl.message('discount_sum', name: 'discount_sum', locale: Intl.defaultLocale);
static String bonusPlus() => Intl.message('bonus_plus', name: 'bonus_plus', locale: Intl.defaultLocale);
static String bonusMinus() => Intl.message('bonus_minus', name: 'bonus_minus', locale: Intl.defaultLocale);
static String idNotFound() => Intl.message('ID_not_found', name: 'ID_not_found', locale: Intl.defaultLocale);
static String settings() => Intl.message('settings', name: 'settings', locale: Intl.defaultLocale);
static String help() => Intl.message('help', name: 'help', locale: Intl.defaultLocale);
static String exit() => Intl.message('exit', name: 'exit', locale: Intl.defaultLocale);
static String logout() => Intl.message('logout', name: 'logout', locale: Intl.defaultLocale);
static String currency() => Intl.message('currency', name: 'currency', locale: Intl.defaultLocale);
static String locale() => Intl.message('locale', name: 'locale', locale: Intl.defaultLocale);
// Валюты
static String nominativeRuble() => Intl.message('nominative_ruble', name: 'nominative_ruble', locale: Intl.defaultLocale);
static String singularRuble() => Intl.message('singular_ruble', name: 'singular_ruble', locale: Intl.defaultLocale);
static String pluralRuble() => Intl.message('plural_ruble', name: 'plural_ruble', locale: Intl.defaultLocale);
static String nominativeEuro() => Intl.message('nominative_euro', name: 'nominative_euro', locale: Intl.defaultLocale);
static String singularEuro() => Intl.message('singular_euro', name: 'singular_euro', locale: Intl.defaultLocale);
static String pluralEuro() => Intl.message('plural_euro', name: 'plural_euro', locale: Intl.defaultLocale);
static String nominativeDollar() => Intl.message('nominative_dollar', name: 'nominative_dollar', locale: Intl.defaultLocale);
static String singularDollar() => Intl.message('singular_dollar', name: 'singular_dollar', locale: Intl.defaultLocale);
static String pluralDollar() => Intl.message('plural_dollar', name: 'plural_dollar', locale: Intl.defaultLocale);
static String nominativeHryvna() => Intl.message('nominative_hryvna', name: 'nominative_hryvna', locale: Intl.defaultLocale);
static String singularHryvna() => Intl.message('singular_hryvna', name: 'singular_hryvna', locale: Intl.defaultLocale);
static String pluralHryvna() => Intl.message('plural_hryvna', name: 'plural_hryvna', locale: Intl.defaultLocale);
static String nominativeTenge() => Intl.message('nominative_tenge', name: 'nominative_tenge', locale: Intl.defaultLocale);
static String singularTenge() => Intl.message('singular_tenge', name: 'singular_tenge', locale: Intl.defaultLocale);
static String pluralTenge() => Intl.message('plural_tenge', name: 'plural_tenge', locale: Intl.defaultLocale);
static String registrationGuide() => Intl.message('registration_guide', name: 'registration_guide', locale: Intl.defaultLocale);
static String usageGuide() => Intl.message('usage_guide', name: 'usage_guide', locale: Intl.defaultLocale);
static String commonGuide() => Intl.message('common_guide', name: 'common_guide', locale: Intl.defaultLocale);
static String supportGuide(String phone, String url) {
return sprintf(Intl.message('support_guide', name: 'support_guide', locale: Intl.defaultLocale), [phone, url]);
}
static String registration() => strings['registration'];
static String usage() => strings['usage'];
static String support() => strings['support'];
static String common() => strings['common'];
static String idStore() => strings['ID_Store'];
static String signUp() => strings['sign_up'];
static String specifyDinStore() => strings['specify_din_store'];
static String confirmation() => strings['confirmation'];
static String askChangeStore() => strings['ask_change_store'];
static String yes() => strings['yes'];
static String no() => strings['no'];
static String requestSentWaitActivation() => strings['request_sent_wait_activ'];
static String refreshActivationStatus() => strings['update_activ_status'];
static String appActivated() => strings['app_activ'];
static String completeRegistration() => strings['complite_activ'];
static String cardScanner() => strings['card_scaner'];
static String card() => strings['card'];
static String reward() => strings['reward'];
static String sum() => strings['sum'];
static String bonus() => strings['bonus'];
static String couponsUsed() => strings['coupons_used'];
static String selectCoupons() => strings['select_coupons'];
static String carryingPurchase() => strings['carry_purchase'];
static String completePurchase() => strings['complite_purchase'];
static String scan() => strings['scan'];
static String buyer() => strings['buyer'];
static String bonusHint() => strings['bonus_hint'];
static String bonusExplanation() => strings['bonus_explanation'];
static String discountRate() => strings['discount_rate'];
static String discountSum() => strings['discount_sum'];
static String bonusPlus() => strings['bonus_plus'];
static String bonusMinus() => strings['bonus_minus'];
static String idNotFound() => strings['ID_not_found'];
static String settings() => strings['settings'];
static String help() => strings['help'];
static String exit() => strings['exit'];
static String logout() => strings['logout'];
static String currency() => strings['currency'];
static String locale() => strings['locale'];
static String nominativeRuble() => strings['nominative_ruble'];
static String singularRuble() => strings['singular_ruble'];
static String pluralRuble() => strings['plural_ruble'];
static String nominativeEuro() => strings['nominative_euro'];
static String singularEuro() => strings['singular_euro'];
static String pluralEuro() => strings['plural_euro'];
static String nominativeDollar() => strings['nominative_dollar'];
static String singularDollar() => strings['singular_dollar'];
static String pluralDollar() => strings['plural_dollar'];
static String nominativeHryvna() => strings['nominative_hryvna'];
static String singularHryvna() => strings['singular_hryvna'];
static String pluralHryvna() => strings['plural_hryvna'];
static String nominativeTenge() => strings['nominative_tenge'];
static String singularTenge() => strings['singular_tenge'];
static String pluralTenge() => strings['plural_tenge'];
static String registrationGuide() => strings['registration_guide'];
static String usageGuide() => strings['usage_guide'];
static String commonGuide() => strings['common_guide'].replaceAll('\n', "\n");
static String supportGuide(String phone, String url) => sprintf(strings['support_guide'], [phone, url]);
}

View File

@@ -1,20 +1,6 @@
# Generated by pub
# See http://pub.dartlang.org/doc/glossary.html#lockfile
packages:
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "0.30.0+4"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.7"
async:
dependency: transitive
description:
@@ -22,13 +8,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
barback:
dependency: transitive
description:
name: barback
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.2+14"
charcode:
dependency: transitive
description:
@@ -36,13 +15,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2+1"
collection:
dependency: transitive
description:
@@ -50,60 +22,11 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.5"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2+1"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.1"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.9+1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
front_end:
dependency: transitive
description:
name: front_end
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0-alpha.4.1"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.5"
html:
dependency: transitive
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.2+2"
http:
dependency: "direct main"
description:
@@ -125,41 +48,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.5"
intl:
dependency: "direct main"
description:
name: intl
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.2"
intl_translation:
dependency: "direct main"
description:
name: intl_translation
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.0"
isolate:
dependency: transitive
description:
name: isolate
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
kernel:
dependency: transitive
description:
name: kernel
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0-alpha.1.1"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.3+1"
matcher:
dependency: transitive
description:
@@ -174,13 +62,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
path:
dependency: transitive
description:
@@ -202,20 +83,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
plugin:
dependency: transitive
description:
name: plugin
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0+2"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.4"
sky_engine:
dependency: transitive
description: flutter
@@ -241,7 +108,7 @@ packages:
name: sqflite
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.2+1"
version: "0.6.2+2"
stack_trace:
dependency: transitive
description:
@@ -270,13 +137,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.4"
utf:
dependency: transitive
description:
name: utf
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.0+3"
vector_math:
dependency: transitive
description:
@@ -284,19 +144,12 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
watcher:
dependency: transitive
xml:
dependency: "direct main"
description:
name: watcher
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.7+6"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.13"
version: "2.6.0"
sdks:
dart: ">=2.0.0-dev.15.0 <=2.0.0-dev.19.0"

View File

@@ -3,12 +3,11 @@ description: A new Flutter project.
dependencies:
http: '>=0.11.3+12'
intl: '>=0.14.0 <0.16.0'
intl_translation: '>=0.14.0 <0.16.0'
sprintf: "^3.0.2"
path_provider: "^0.2.1+1"
sqflite: any
image_picker: '^0.1.3' # use for ask permissions @ iOS
xml: "^2.6.0"
flutter:
sdk: flutter
@@ -46,6 +45,10 @@ flutter:
- assets/powered_by_dinect_splash.png
- assets/powered_by_dinect.png
- assets/splash_text.png
- assets/values-ru/strings.xml
- assets/values-ua/strings.xml
- assets/values-en/strings.xml
- assets/values-es/strings.xml
# To add assets from package dependencies, first ensure the asset
# is in the lib/ directory of the dependency. Then,