Merge changes to default branch
Hg: changed android/app/src/main/java/com/dinect/checker/AbstractScannerActivity.java
This commit is contained in:
13
android/.gitignore
vendored
13
android/.gitignore
vendored
@@ -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
14
android/.hgignore
Normal 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
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">AutoBonus</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">AutoBonus</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect Crypto</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect Crypto</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (INT)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (INT)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (OTE)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (OTE)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (STAGING)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (STAGING)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (TESTING)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">Dinect (TESTING)</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.dinect.checker"
|
package="com.dinect.checker"
|
||||||
android:versionCode="3"
|
android:versionCode="5"
|
||||||
android:versionName="1.1.5">
|
android:versionName="1.1.7">
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
android:minSdkVersion="16"
|
android:minSdkVersion="16"
|
||||||
|
|||||||
@@ -154,10 +154,10 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme
|
|||||||
EditText manualInput = (EditText) findViewById(R.id.manual_input);
|
EditText manualInput = (EditText) findViewById(R.id.manual_input);
|
||||||
switch (searchType) {
|
switch (searchType) {
|
||||||
case CARD:
|
case CARD:
|
||||||
manualInput.setHint(getResources().getString(R.string.enter_manual));
|
manualInput.setHint(getIntent().getStringExtra("enter_manual"));
|
||||||
break;
|
break;
|
||||||
case PHONE_NUMBER:
|
case PHONE_NUMBER:
|
||||||
manualInput.setHint(getResources().getString(R.string.enter_phone));
|
manualInput.setHint(getIntent().getStringExtra("enter_phone"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -268,9 +268,9 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme
|
|||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
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"
|
+ ".\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();
|
Toast.makeText(AbstractScannerActivity.this, message, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -284,9 +284,19 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
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));
|
MenuItem settings = menu.findItem(R.id.settings);
|
||||||
menu.findItem(R.id.exit).setIcon(getResources().getDrawable(R.drawable.exit));
|
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);
|
return super.onPrepareOptionsMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,11 @@ public class MainActivity extends FlutterActivity {
|
|||||||
private static final int START_SCANNER_REQUEST_CODE = 2017;
|
private static final int START_SCANNER_REQUEST_CODE = 2017;
|
||||||
private static final String FLUTTER_CHANNEL_NAME = "com.dinect.checker/instance_id";
|
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_API_URL = "url";
|
||||||
static final String PREF_APP_TOKEN = "pres_app_token";
|
static final String PREF_APP_TOKEN = "appToken";
|
||||||
static final String PREF_POS_TOKEN = "pref_pos_token";
|
static final String PREF_POS_TOKEN = "token";
|
||||||
static final String PREF_APP_BAR_COLOR = "pref_app_bar_color";
|
static final String PREF_APP_BAR_COLOR = "color";
|
||||||
|
|
||||||
static final String SCANNER_BACKEND_KEY = "scanner_backend_idx";
|
static final String SCANNER_BACKEND_KEY = "scanner_backend_idx";
|
||||||
|
|
||||||
static final int ZXING = 0;
|
static final int ZXING = 0;
|
||||||
@@ -66,7 +67,6 @@ public class MainActivity extends FlutterActivity {
|
|||||||
break;
|
break;
|
||||||
case "startScanner":
|
case "startScanner":
|
||||||
mScannerArgs = call.arguments();
|
mScannerArgs = call.arguments();
|
||||||
System.out.println(mScannerArgs.toString());
|
|
||||||
startScannerActivity();
|
startScannerActivity();
|
||||||
break;
|
break;
|
||||||
case "isOnline":
|
case "isOnline":
|
||||||
@@ -128,11 +128,17 @@ public class MainActivity extends FlutterActivity {
|
|||||||
private void startScannerActivity() {
|
private void startScannerActivity() {
|
||||||
final int idx = getSharedPreferences("scanner", Context.MODE_PRIVATE).getInt(SCANNER_BACKEND_KEY, 0);
|
final int idx = getSharedPreferences("scanner", Context.MODE_PRIVATE).getInt(SCANNER_BACKEND_KEY, 0);
|
||||||
Intent cameraIntent = new Intent(MainActivity.this, SCANNER_BACKEND[idx]);
|
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"));
|
for (Object key : mScannerArgs.keySet()) {
|
||||||
cameraIntent.putExtra(PREF_POS_TOKEN, (String) mScannerArgs.get("token"));
|
Log.d("kifio", "k: " + key + "; v: " + mScannerArgs.get(key).toString());
|
||||||
cameraIntent.putExtra(PREF_APP_BAR_COLOR, (Long) mScannerArgs.get("color"));
|
if (key.equals("color")) {
|
||||||
setLocale((String) mScannerArgs.get("locale"));
|
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);
|
startActivityForResult(cameraIntent, START_SCANNER_REQUEST_CODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,4 +212,8 @@ public class MainActivity extends FlutterActivity {
|
|||||||
public void getAppToken() {
|
public void getAppToken() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setStrings() {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
12
android/app/src/main/res/drawable/launch_background.xml
Normal file
12
android/app/src/main/res/drawable/launch_background.xml
Normal 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>
|
||||||
@@ -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>
|
|
||||||
@@ -14,18 +14,16 @@
|
|||||||
android:id="@+id/cardPhoneButton"
|
android:id="@+id/cardPhoneButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_marginRight="12dp"
|
android:layout_marginRight="12dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content" />
|
||||||
/>
|
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/manual_input"
|
android:id="@+id/manual_input"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:hint="@string/enter_manual"
|
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="text"
|
android:inputType="text"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:textColorHint="@android:color/white"/>
|
android:textColorHint="@android:color/white" />
|
||||||
|
|
||||||
</android.support.v7.widget.Toolbar>
|
</android.support.v7.widget.Toolbar>
|
||||||
|
|||||||
@@ -12,15 +12,15 @@
|
|||||||
<group android:id="@+id/items"/>
|
<group android:id="@+id/items"/>
|
||||||
|
|
||||||
<item android:id="@+id/settings"
|
<item android:id="@+id/settings"
|
||||||
android:title="@string/settings"
|
android:title="@null"
|
||||||
android:icon="@drawable/settings"/>
|
android:icon="@drawable/settings"/>
|
||||||
|
|
||||||
<item android:id="@+id/faq"
|
<item android:id="@+id/faq"
|
||||||
android:title="@string/faq"
|
android:title="@null"
|
||||||
android:icon="@drawable/help"/>
|
android:icon="@drawable/help"/>
|
||||||
|
|
||||||
<item android:id="@+id/exit"
|
<item android:id="@+id/exit"
|
||||||
android:title="@string/exit"
|
android:title="@null"
|
||||||
android:icon="@drawable/exit"/>
|
android:icon="@drawable/exit"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
@@ -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>
|
|
||||||
@@ -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>
|
|
||||||
@@ -1,12 +1,3 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">Dinect</string>
|
<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>
|
</resources>
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">PIP</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">PIP</string>
|
|
||||||
</resources>
|
|
||||||
117
assets/values-en/strings.xml
Normal file
117
assets/values-en/strings.xml
Normal 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>
|
||||||
109
assets/values-es/strings.xml
Normal file
109
assets/values-es/strings.xml
Normal 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>
|
||||||
115
assets/values-ru/strings.xml
Normal file
115
assets/values-ru/strings.xml
Normal 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>
|
||||||
113
assets/values-ua/strings.xml
Normal file
113
assets/values-ua/strings.xml
Normal 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>
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
.svn/
|
.svn/
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.swp
|
|
||||||
profile
|
profile
|
||||||
|
|
||||||
DerivedData/
|
DerivedData/
|
||||||
@@ -12,30 +11,22 @@ build/
|
|||||||
GeneratedPluginRegistrant.h
|
GeneratedPluginRegistrant.h
|
||||||
GeneratedPluginRegistrant.m
|
GeneratedPluginRegistrant.m
|
||||||
|
|
||||||
*.pbxuser
|
|
||||||
*.mode1v3
|
|
||||||
*.mode2v3
|
|
||||||
*.perspectivev3
|
|
||||||
|
|
||||||
!default.pbxuser
|
!default.pbxuser
|
||||||
!default.mode1v3
|
!default.mode1v3
|
||||||
!default.mode2v3
|
!default.mode2v3
|
||||||
!default.perspectivev3
|
!default.perspectivev3
|
||||||
|
|
||||||
xcuserdata
|
Runner.xcodeproj/xcuserdata
|
||||||
|
Runner.xcworkspace/xcuserdata
|
||||||
|
|
||||||
*.moved-aside
|
|
||||||
|
|
||||||
*.pyc
|
|
||||||
*sync/
|
|
||||||
Icon?
|
Icon?
|
||||||
.tags*
|
.tags*
|
||||||
|
|
||||||
/Flutter/app.flx
|
Flutter/app.flx
|
||||||
/Flutter/app.zip
|
Flutter/app.zip
|
||||||
/Flutter/App.framework
|
Flutter/App.framework
|
||||||
/Flutter/Flutter.framework
|
Flutter/Flutter.framework
|
||||||
/Flutter/Generated.xcconfig
|
Flutter/Generated.xcconfig
|
||||||
/ServiceDefinitions.json
|
ServiceDefinitions.json
|
||||||
|
|
||||||
Pods/
|
Pods/
|
||||||
Binary file not shown.
Binary file not shown.
@@ -8,6 +8,26 @@
|
|||||||
/**
|
/**
|
||||||
BREAKING CHANGES:
|
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.
|
November 29, 2017: Added a BREAKING CHANGES section.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ FLUTTER_EXPORT
|
|||||||
|
|
||||||
- `nil` or `NSNull`
|
- `nil` or `NSNull`
|
||||||
- `NSNumber` (including their representation of Boolean values)
|
- `NSNumber` (including their representation of Boolean values)
|
||||||
- `FlutterStandardBigInteger`
|
|
||||||
- `NSString`
|
- `NSString`
|
||||||
- `FlutterStandardTypedData`
|
- `FlutterStandardTypedData`
|
||||||
- `NSArray` of supported values
|
- `NSArray` of supported values
|
||||||
@@ -101,11 +100,17 @@ FLUTTER_EXPORT
|
|||||||
|
|
||||||
- `nil` or `NSNull`: null
|
- `nil` or `NSNull`: null
|
||||||
- `NSNumber`: `bool`, `int`, or `double`, depending on the contained value.
|
- `NSNumber`: `bool`, `int`, or `double`, depending on the contained value.
|
||||||
- `FlutterStandardBigInteger`: `int`
|
|
||||||
- `NSString`: `String`
|
- `NSString`: `String`
|
||||||
- `FlutterStandardTypedData`: `Uint8List`, `Int32List`, `Int64List`, or `Float64List`
|
- `FlutterStandardTypedData`: `Uint8List`, `Int32List`, `Int64List`, or `Float64List`
|
||||||
- `NSArray`: `List`
|
- `NSArray`: `List`
|
||||||
- `NSDictionary`: `Map`
|
- `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
|
FLUTTER_EXPORT
|
||||||
@interface FlutterStandardMessageCodec : NSObject<FlutterMessageCodec>
|
@interface FlutterStandardMessageCodec : NSObject<FlutterMessageCodec>
|
||||||
@@ -253,6 +258,13 @@ FLUTTER_EXPORT
|
|||||||
and `FlutterStandardMethodCodec`.
|
and `FlutterStandardMethodCodec`.
|
||||||
*/
|
*/
|
||||||
FLUTTER_EXPORT
|
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
|
@interface FlutterStandardBigInteger : NSObject
|
||||||
/**
|
/**
|
||||||
Creates a `FlutterStandardBigInteger` from a hexadecimal representation.
|
Creates a `FlutterStandardBigInteger` from a hexadecimal representation.
|
||||||
|
|||||||
@@ -16,9 +16,22 @@ FLUTTER_EXPORT
|
|||||||
|
|
||||||
- (instancetype)initWithFLXArchive:(NSURL*)archiveURL
|
- (instancetype)initWithFLXArchive:(NSURL*)archiveURL
|
||||||
dartMain:(NSURL*)dartMainURL
|
dartMain:(NSURL*)dartMainURL
|
||||||
packages:(NSURL*)dartPackages NS_DESIGNATED_INITIALIZER;
|
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;
|
- (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)initWithFlutterAssetsWithScriptSnapshot:(NSURL*)flutterAssetsURL
|
||||||
|
NS_DESIGNATED_INITIALIZER;
|
||||||
|
|
||||||
- (instancetype)initFromDefaultSourceForConfiguration;
|
- (instancetype)initFromDefaultSourceForConfiguration;
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
*/
|
*/
|
||||||
- (BOOL)application:(UIApplication*)application
|
- (BOOL)application:(UIApplication*)application
|
||||||
performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
|
performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
|
||||||
completionHandler:(void (^)(BOOL succeeded))completionHandler;
|
completionHandler:(void (^)(BOOL succeeded))completionHandler
|
||||||
|
API_AVAILABLE(ios(9.0));
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
// This is a generated file; do not edit or check into version control.
|
// This is a generated file; do not edit or check into version control.
|
||||||
FLUTTER_ROOT=/Users/dinect/projects/flutter
|
FLUTTER_ROOT=/Users/kifio/flutter
|
||||||
FLUTTER_APPLICATION_PATH=/Users/dinect/projects/checker
|
FLUTTER_APPLICATION_PATH=/Users/kifio/Desktop/FlutterProjects/checker
|
||||||
FLUTTER_TARGET=lib/main.dart
|
FLUTTER_TARGET=lib/main.dart
|
||||||
FLUTTER_BUILD_MODE=release
|
FLUTTER_BUILD_MODE=debug
|
||||||
FLUTTER_BUILD_DIR=build
|
FLUTTER_BUILD_DIR=build
|
||||||
SYMROOT=${SOURCE_ROOT}/../build/ios
|
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"
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,6 @@
|
|||||||
# Uncomment this line to define a global platform for your project
|
# Uncomment this line to define a global platform for your project
|
||||||
# platform :ios, '9.0'
|
# platform :ios, '9.0'
|
||||||
|
pod 'ZXingObjC', '~> 3.2.2'
|
||||||
|
|
||||||
if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
|
if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
|
||||||
abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
|
abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
|
||||||
|
|||||||
@@ -10,30 +10,35 @@ PODS:
|
|||||||
- sqflite (0.0.1):
|
- sqflite (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FMDB
|
- FMDB
|
||||||
|
- ZXingObjC (3.2.2):
|
||||||
|
- ZXingObjC/All (= 3.2.2)
|
||||||
|
- ZXingObjC/All (3.2.2)
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- Flutter (from `/Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release`)
|
- Flutter (from `/Users/kifio/flutter/bin/cache/artifacts/engine/ios`)
|
||||||
- image_picker (from `/Users/dinect/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios`)
|
- image_picker (from `/Users/kifio/.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`)
|
- path_provider (from `/Users/kifio/.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`)
|
- sqflite (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/sqflite-0.6.2+2/ios`)
|
||||||
|
- ZXingObjC (~> 3.2.2)
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
Flutter:
|
Flutter:
|
||||||
:path: /Users/dinect/projects/flutter/bin/cache/artifacts/engine/ios-release
|
:path: /Users/kifio/flutter/bin/cache/artifacts/engine/ios
|
||||||
image_picker:
|
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_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:
|
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:
|
SPEC CHECKSUMS:
|
||||||
Flutter: d674e78c937094a75ac71dd77e921e840bea3dbf
|
Flutter: 7eb41cd1fd524b90d7f22bceb20da2c39338b089
|
||||||
FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa
|
FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa
|
||||||
image_picker: a211f28b95a560433c00f5cd3773f4710a20404d
|
image_picker: ee00aab0487cedc80a304085219503cc6d0f2e22
|
||||||
path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259
|
path_provider: 09407919825bfe3c2deae39453b7a5b44f467873
|
||||||
sqflite: 8e2d9fe1e7cdc95d4d537fc7eb2d23c8dc428e3c
|
sqflite: edb0e4df7640c26fea6a107c21ed1542219e761a
|
||||||
|
ZXingObjC: 2c95a0dc52daac69b23ec78fad8fa2fec05f8981
|
||||||
|
|
||||||
PODFILE CHECKSUM: 351e02e34b831289961ec3558a535cbd2c4965d2
|
PODFILE CHECKSUM: 9f4cf0c4c102f6176b37e2c4c913e0544612cec5
|
||||||
|
|
||||||
COCOAPODS: 1.4.0.beta.2
|
COCOAPODS: 1.4.0
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* 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 */; };
|
ACE8612B1F9F745B006FEF38 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
|
||||||
ACE8612C1F9F745B006FEF38 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
|
ACE8612C1F9F745B006FEF38 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
|
||||||
ACE8612D1F9F745B006FEF38 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.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 */; };
|
ACE861361F9F745B006FEF38 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA9BB311F1792570053B6EA /* AVFoundation.framework */; };
|
||||||
ACE861371F9F745B006FEF38 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
|
ACE861371F9F745B006FEF38 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
|
||||||
ACE861381F9F745B006FEF38 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.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 */; };
|
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 */; };
|
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 */; };
|
ACE8613E1F9F745B006FEF38 /* app.flx in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB71CF902C7004384FC /* app.flx */; };
|
||||||
ACE8613F1F9F745B006FEF38 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
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 */; };
|
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 */; };
|
ACE861431F9F745B006FEF38 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||||
ACE861441F9F745B006FEF38 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
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, ); }; };
|
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, ); }; };
|
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 */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
@@ -66,8 +60,8 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
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>"; };
|
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; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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; };
|
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>"; };
|
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>"; };
|
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; };
|
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>"; };
|
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>"; };
|
BBA9BAFE1F176DD10053B6EA /* ScannerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScannerViewController.swift; sourceTree = "<group>"; };
|
||||||
@@ -132,12 +105,8 @@
|
|||||||
ACE861361F9F745B006FEF38 /* AVFoundation.framework in Frameworks */,
|
ACE861361F9F745B006FEF38 /* AVFoundation.framework in Frameworks */,
|
||||||
ACE861371F9F745B006FEF38 /* Flutter.framework in Frameworks */,
|
ACE861371F9F745B006FEF38 /* Flutter.framework in Frameworks */,
|
||||||
ACE861381F9F745B006FEF38 /* App.framework in Frameworks */,
|
ACE861381F9F745B006FEF38 /* App.framework in Frameworks */,
|
||||||
ACE861391F9F745B006FEF38 /* libzbar.a in Frameworks */,
|
|
||||||
ACE8613A1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */,
|
ACE8613A1F9F745B006FEF38 /* libPods-Runner.a in Frameworks */,
|
||||||
ACE8613B1F9F745B006FEF38 /* 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;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -154,6 +123,7 @@
|
|||||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
9740EEB11CF90186004384FC /* Flutter */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
2D5378251FAA1A9400D5DBA9 /* flutter_assets */,
|
||||||
9740EEB71CF902C7004384FC /* app.flx */,
|
9740EEB71CF902C7004384FC /* app.flx */,
|
||||||
3B80C3931E831B6300D905FE /* App.framework */,
|
3B80C3931E831B6300D905FE /* App.framework */,
|
||||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
|
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
|
||||||
@@ -161,7 +131,6 @@
|
|||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */,
|
9740EEB21CF90195004384FC /* Debug.xcconfig */,
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */,
|
9740EEB31CF90195004384FC /* Generated.xcconfig */,
|
||||||
2D5378261FAA1A9400D5DBA9 /* flutter_assets */,
|
|
||||||
);
|
);
|
||||||
name = Flutter;
|
name = Flutter;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -169,7 +138,6 @@
|
|||||||
97C146E51CF9000F007C117D = {
|
97C146E51CF9000F007C117D = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
ACE103BB1F8FCCA500D17794 /* ZBarSDK */,
|
|
||||||
9740EEB11CF90186004384FC /* Flutter */,
|
9740EEB11CF90186004384FC /* Flutter */,
|
||||||
97C146F01CF9000F007C117D /* Runner */,
|
97C146F01CF9000F007C117D /* Runner */,
|
||||||
97C146EF1CF9000F007C117D /* Products */,
|
97C146EF1CF9000F007C117D /* Products */,
|
||||||
@@ -214,50 +182,6 @@
|
|||||||
name = "Supporting Files";
|
name = "Supporting Files";
|
||||||
sourceTree = "<group>";
|
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 */ = {
|
BBA9BB001F1786510053B6EA /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -308,11 +232,11 @@
|
|||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastSwiftUpdateCheck = 0900;
|
LastSwiftUpdateCheck = 0900;
|
||||||
LastUpgradeCheck = 0830;
|
LastUpgradeCheck = 0920;
|
||||||
ORGANIZATIONNAME = "The Chromium Authors";
|
ORGANIZATIONNAME = "The Chromium Authors";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
ACE861271F9F745B006FEF38 = {
|
ACE861271F9F745B006FEF38 = {
|
||||||
DevelopmentTeam = 926V94K5Q8;
|
DevelopmentTeam = SU33AJBF5T;
|
||||||
ProvisioningStyle = Automatic;
|
ProvisioningStyle = Automatic;
|
||||||
SystemCapabilities = {
|
SystemCapabilities = {
|
||||||
com.apple.Push = {
|
com.apple.Push = {
|
||||||
@@ -345,14 +269,12 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
|
||||||
ACE8613E1F9F745B006FEF38 /* app.flx in Resources */,
|
ACE8613E1F9F745B006FEF38 /* app.flx in Resources */,
|
||||||
ACE8613F1F9F745B006FEF38 /* LaunchScreen.storyboard in Resources */,
|
ACE8613F1F9F745B006FEF38 /* LaunchScreen.storyboard in Resources */,
|
||||||
ACE861401F9F745B006FEF38 /* Generated.xcconfig in Resources */,
|
|
||||||
ACE861411F9F745B006FEF38 /* AppFrameworkInfo.plist in Resources */,
|
ACE861411F9F745B006FEF38 /* AppFrameworkInfo.plist in Resources */,
|
||||||
ACE861421F9F745B006FEF38 /* Debug.xcconfig in Resources */,
|
|
||||||
ACE861431F9F745B006FEF38 /* Assets.xcassets in Resources */,
|
ACE861431F9F745B006FEF38 /* Assets.xcassets in Resources */,
|
||||||
ACE861441F9F745B006FEF38 /* Main.storyboard in Resources */,
|
ACE861441F9F745B006FEF38 /* Main.storyboard in Resources */,
|
||||||
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -412,7 +334,7 @@
|
|||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
|
"${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";
|
name = "[CP] Embed Pods Frameworks";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
@@ -484,14 +406,20 @@
|
|||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_COMMA = YES;
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = 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_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
@@ -532,14 +460,20 @@
|
|||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_COMMA = YES;
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = 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_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
@@ -559,6 +493,7 @@
|
|||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
@@ -569,12 +504,6 @@
|
|||||||
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
ARCHS = (
|
|
||||||
"$(ARCHS_STANDARD)",
|
|
||||||
arm7s,
|
|
||||||
armv7,
|
|
||||||
arm64,
|
|
||||||
);
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
@@ -582,7 +511,7 @@
|
|||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = 926V94K5Q8;
|
DEVELOPMENT_TEAM = SU33AJBF5T;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
@@ -593,7 +522,6 @@
|
|||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
"$(PROJECT_DIR)/ZBarSDK",
|
|
||||||
);
|
);
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.dinect.checker.autoclub.app;
|
PRODUCT_BUNDLE_IDENTIFIER = com.dinect.checker.autoclub.app;
|
||||||
@@ -613,12 +541,6 @@
|
|||||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
ARCHS = (
|
|
||||||
"$(ARCHS_STANDARD)",
|
|
||||||
arm7s,
|
|
||||||
armv7,
|
|
||||||
arm64,
|
|
||||||
);
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
@@ -626,7 +548,7 @@
|
|||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = 926V94K5Q8;
|
DEVELOPMENT_TEAM = SU33AJBF5T;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
@@ -637,7 +559,6 @@
|
|||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
"$(PROJECT_DIR)/ZBarSDK",
|
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.dinect.checker.autoclub.app;
|
PRODUCT_BUNDLE_IDENTIFIER = com.dinect.checker.autoclub.app;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -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>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "0900"
|
LastUpgradeVersion = "0920"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
@@ -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>
|
|
||||||
@@ -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>
|
|
||||||
@@ -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>
|
|
||||||
Binary file not shown.
@@ -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>
|
|
||||||
Binary file not shown.
@@ -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<Swift.String, Any>) -> ()"
|
|
||||||
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 () -> () in Runner.ScannerViewController.imagePickerController(__ObjC.UIImagePickerController, didFinishPickingMediaWithInfo: Swift.Dictionary<Swift.String, Any>) -> ()"
|
|
||||||
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>
|
|
||||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Bucket
|
|
||||||
type = "0"
|
|
||||||
version = "2.0">
|
|
||||||
</Bucket>
|
|
||||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Bucket
|
|
||||||
type = "0"
|
|
||||||
version = "2.0">
|
|
||||||
</Bucket>
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
#include "AppDelegate.h"
|
#include "AppDelegate.h"
|
||||||
#include "GeneratedPluginRegistrant.h"
|
#include "GeneratedPluginRegistrant.h"
|
||||||
#import "Autobonus-Swift.h"
|
#import "Autobonus-Swift.h"
|
||||||
#import "ZBarSDK.h"
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AppDelegate
|
@implementation AppDelegate
|
||||||
|
|
||||||
@@ -90,14 +88,9 @@
|
|||||||
} else if ([@"getCurrency" isEqualToString:call.method]) {
|
} else if ([@"getCurrency" isEqualToString:call.method]) {
|
||||||
result(buildSettings[@"currency"]);
|
result(buildSettings[@"currency"]);
|
||||||
} else if ([@"startScanner" isEqualToString:call.method]) {
|
} else if ([@"startScanner" isEqualToString:call.method]) {
|
||||||
NSString *locale = call.arguments[@"locale"];
|
ScannerViewController *modalViewController = [[ScannerViewController alloc] initWithStrings:call.arguments];
|
||||||
NSLog(@"locale is %@", locale);
|
|
||||||
ScannerViewController *modalViewController = [[ScannerViewController alloc] initWithLocale:locale];
|
|
||||||
modalViewController.platformChannel = weekPlatformChannel;
|
modalViewController.platformChannel = weekPlatformChannel;
|
||||||
[controller presentViewController:modalViewController animated:YES completion:nil];
|
[controller presentViewController:modalViewController animated:YES completion:nil];
|
||||||
// [weekPlatformChannel invokeMethod:(@"findUserAndPurchase") arguments: @[@"79039441628", @"phone"]];
|
|
||||||
|
|
||||||
|
|
||||||
} else if ([@"isOnline" isEqualToString:call.method]) {
|
} else if ([@"isOnline" isEqualToString:call.method]) {
|
||||||
result(@YES);
|
result(@YES);
|
||||||
} else if ([@"getSupportPhone" isEqualToString:call.method]) {
|
} else if ([@"getSupportPhone" isEqualToString:call.method]) {
|
||||||
|
|||||||
23
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
vendored
Normal file
23
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
vendored
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
vendored
Normal file
BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
vendored
Normal file
BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
vendored
Normal file
BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
@@ -2,5 +2,4 @@
|
|||||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||||
//
|
//
|
||||||
|
|
||||||
#import "ZBarSDK.h"
|
#import "ZXingObjC/ZXingObjC.h"
|
||||||
#import "ZBarImageScanner.h"
|
|
||||||
|
|||||||
@@ -1,250 +1,308 @@
|
|||||||
//
|
|
||||||
// ScannerViewController.swift
|
|
||||||
// Runner
|
|
||||||
//
|
|
||||||
// Created by Ivan Murashov on 13/07/2017.
|
|
||||||
// Copyright © 2017 The Chromium Authors. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import Flutter
|
import Flutter
|
||||||
|
|
||||||
extension ZBarSymbolSet: Sequence {
|
@objc class ScannerViewController: UIViewController, ZXCaptureDelegate, UITextFieldDelegate {
|
||||||
//public typealias Element = ZBarSymbol
|
|
||||||
//public typealias Iterator = NSFastEnumerationIterator
|
|
||||||
|
|
||||||
public func makeIterator() -> NSFastEnumerationIterator {
|
|
||||||
return NSFastEnumerationIterator(self)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate, UITextFieldDelegate {
|
|
||||||
|
|
||||||
enum AppLocale {
|
enum AppLocale {
|
||||||
case ru
|
case ru
|
||||||
case en
|
case en
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ButtonState {
|
enum ButtonState {
|
||||||
case card
|
case card
|
||||||
case phone
|
case phone
|
||||||
|
|
||||||
var icon: UIImage {
|
var icon: UIImage {
|
||||||
|
|
||||||
switch self {
|
switch self {
|
||||||
case .card: return UIImage(named: "card")!
|
case .card: return UIImage(named: "card")!
|
||||||
case .phone: return UIImage(named: "phone")!
|
case .phone: return UIImage(named: "phone")!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var searchType: String {
|
var searchType: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .card: return "card"
|
case .card: return "card"
|
||||||
case .phone: return "phone"
|
case .phone: return "phone"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var appLocale: AppLocale
|
// @IBOutlet weak var decodedLabel: UILabel!
|
||||||
|
|
||||||
|
private var captureSizeTransform: CGAffineTransform?
|
||||||
|
|
||||||
var buttonState: ButtonState = .card
|
var buttonState: ButtonState = .card
|
||||||
|
|
||||||
var platformChannel: FlutterMethodChannel?
|
var platformChannel: FlutterMethodChannel?
|
||||||
let readerViewController = ZBarReaderViewController()
|
|
||||||
|
// Квадрат для наведения на цель (надеюсь)
|
||||||
|
let scanRectView = UIView()
|
||||||
|
|
||||||
//Вьюшка для верхнего меню
|
//Вьюшка для верхнего меню
|
||||||
let topView = UIView()
|
let topView = UIView()
|
||||||
|
|
||||||
//Окно ввода кода
|
//Окно ввода кода
|
||||||
let textField = UITextField()
|
let textField = UITextField()
|
||||||
|
|
||||||
//Кнопка настроек
|
//Кнопка настроек
|
||||||
var settingButton: UIButton!
|
var settingButton: UIButton!
|
||||||
|
|
||||||
|
var strings = [String:String]()
|
||||||
|
|
||||||
required init?(coder aDecoder: NSCoder) {
|
required init?(coder aDecoder: NSCoder) {
|
||||||
self.appLocale = .en
|
|
||||||
super.init(coder: aDecoder)
|
super.init(coder: aDecoder)
|
||||||
}
|
}
|
||||||
|
|
||||||
init(locale: String) {
|
init(strings: [String: String]) {
|
||||||
switch locale {
|
|
||||||
case "ru": self.appLocale = .ru; break
|
|
||||||
default: self.appLocale = .en
|
|
||||||
}
|
|
||||||
super.init(nibName: nil, bundle: nil)
|
super.init(nibName: nil, bundle: nil)
|
||||||
|
strings.forEach { (k,v) in self.strings[k] = v }
|
||||||
}
|
}
|
||||||
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func getInputHint() -> String {
|
func getInputHint() -> String {
|
||||||
switch self.buttonState {
|
switch self.buttonState {
|
||||||
case .card: return self.getCardHint()
|
case .card: return strings["enter_manual"]!
|
||||||
case .phone: return self.getPhoneHint()
|
case .phone: return strings["enter_phone"]!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func getErrorText() -> String {
|
func getErrorText() -> String {
|
||||||
switch self.buttonState {
|
switch self.buttonState {
|
||||||
case .card: return self.getCardErrorText()
|
case .card: return strings["user_card_not_found"]!
|
||||||
case .phone: return self.getPhoneErrorText()
|
case .phone: return strings["user_phone_not_found"]!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDismissText() -> String {
|
let capture: ZXCapture = ZXCapture()
|
||||||
switch self.appLocale {
|
|
||||||
case .ru: return "Скрыть"
|
|
||||||
default: return "Dismiss"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
capture.camera = capture.back()
|
||||||
readerViewController.readerDelegate = self
|
capture.focusMode = .continuousAutoFocus
|
||||||
readerViewController.readerView.zoom = 1.0
|
view.layer.addSublayer((capture.layer)!)
|
||||||
readerViewController.showsZBarControls = false
|
view.addSubview(scanRectView)
|
||||||
|
|
||||||
settingButton = UIButton(type: .system)
|
settingButton = UIButton(type: .system)
|
||||||
settingButton.addTarget(self, action: #selector(ScannerViewController.buttonTouch), for: .touchUpInside)
|
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(textField)
|
||||||
topView.addSubview(settingButton)
|
topView.addSubview(settingButton)
|
||||||
|
view.addSubview(topView)
|
||||||
|
view.bringSubview(toFront: topView)
|
||||||
|
|
||||||
textField.delegate = self
|
textField.delegate = self
|
||||||
//textField.keyboardType = .numberPad
|
|
||||||
|
|
||||||
//Looks for single or multiple taps.
|
|
||||||
let tap = UITapGestureRecognizer(target: self, action: #selector(ScannerViewController.hideKeyboard))
|
let tap = UITapGestureRecognizer(target: self, action: #selector(ScannerViewController.hideKeyboard))
|
||||||
readerViewController.view.addGestureRecognizer(tap)
|
view.addGestureRecognizer(tap)
|
||||||
|
|
||||||
settingButton.setImage(self.buttonState.icon, for: .normal)
|
settingButton.setImage(self.buttonState.icon, for: .normal)
|
||||||
textField.placeholder = self.getInputHint()
|
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() {
|
func hideKeyboard() {
|
||||||
view.endEditing(false)
|
view.endEditing(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buttonTouch(){
|
func buttonTouch(){
|
||||||
|
|
||||||
switch self.buttonState {
|
switch self.buttonState {
|
||||||
case .card: self.buttonState = .phone
|
case .card: self.buttonState = .phone
|
||||||
case .phone: self.buttonState = .card
|
case .phone: self.buttonState = .card
|
||||||
}
|
}
|
||||||
settingButton.setImage(self.buttonState.icon, for: .normal)
|
settingButton.setImage(self.buttonState.icon, for: .normal)
|
||||||
textField.placeholder = self.getInputHint()
|
textField.placeholder = self.getInputHint()
|
||||||
}
|
}
|
||||||
|
|
||||||
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||||
|
|
||||||
sendResult(textField.text!)
|
sendResult(textField.text!)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func sendResult(_ str: String) {
|
func sendResult(_ str: String) {
|
||||||
platformChannel?.invokeMethod("findUser", arguments: [str, buttonState.searchType], result: { (result: Any?) in
|
platformChannel?.invokeMethod("findUser", arguments: [str, buttonState.searchType], result: { (result: Any?) in
|
||||||
if result is FlutterError {
|
if result is FlutterError {
|
||||||
self.showErrorAlert(str)
|
self.showErrorAlert(str)
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
self.dismiss(animated: true) {
|
self.dismiss(animated: true) {
|
||||||
self.platformChannel?.invokeMethod("purchase", arguments: [result, str])
|
self.platformChannel?.invokeMethod("purchase", arguments: [result, str])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print("result: \(result.debugDescription )")
|
print("result: \(result.debugDescription )")
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func showErrorAlert(_ str: String) {
|
func showErrorAlert(_ str: String) {
|
||||||
let alertController = UIAlertController(
|
let alertController = UIAlertController(
|
||||||
title: self.getErrorTitle(),
|
title: strings["error"]!,
|
||||||
message: String(format: self.getErrorText(), str),
|
message: String(format: self.getErrorText(), str),
|
||||||
preferredStyle: UIAlertControllerStyle.alert
|
preferredStyle: UIAlertControllerStyle.alert
|
||||||
)
|
)
|
||||||
alertController.addAction(UIAlertAction(title: self.getDismissText(), style: UIAlertActionStyle.default,handler: nil))
|
alertController.addAction(UIAlertAction(title: strings["dismiss"]!, style: UIAlertActionStyle.default,handler: nil))
|
||||||
|
|
||||||
// if let appDelegate = UIApplication.shared.delegate as? FlutterAppDelegate {
|
|
||||||
// appDelegate.window.rootViewController?.present(alertController, animated: true, completion: nil)
|
|
||||||
// }
|
|
||||||
self.present(alertController, animated: true, completion: 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() {
|
override func didReceiveMemoryWarning() {
|
||||||
super.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()
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,10 +69,12 @@ abstract class BaseState<T extends StatefulWidget> extends State<T> {
|
|||||||
child: getMenuItem(help_png, StringsLocalization.help())
|
child: getMenuItem(help_png, StringsLocalization.help())
|
||||||
));
|
));
|
||||||
|
|
||||||
menuItemList.add(new PopupMenuItem(
|
if (Theme.of(context).platform != TargetPlatform.iOS) {
|
||||||
value: 2,
|
menuItemList.add(new PopupMenuItem(
|
||||||
child: getMenuItem(exit_png, StringsLocalization.exit())
|
value: 2,
|
||||||
));
|
child: getMenuItem(exit_png, StringsLocalization.exit())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
return <Widget>[
|
return <Widget>[
|
||||||
new PopupMenuButton<int>(
|
new PopupMenuButton<int>(
|
||||||
@@ -87,7 +89,7 @@ abstract class BaseState<T extends StatefulWidget> extends State<T> {
|
|||||||
void onOptionsItemClick(int index) {
|
void onOptionsItemClick(int index) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0: {
|
case 0: {
|
||||||
pushRoute(context, new SettingsScreen(helper, app, false));
|
pushRoute(context, new SettingsScreen(helper, app, false));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1: {
|
case 1: {
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ import 'package:checker/db.dart';
|
|||||||
import 'package:checker/strings.dart';
|
import 'package:checker/strings.dart';
|
||||||
import 'package:flutter/material.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) {
|
SettingsBaseState(SqliteHelper helper, String app) {
|
||||||
this.helper = helper;
|
this.helper = helper;
|
||||||
@@ -15,7 +16,7 @@ abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T>
|
|||||||
|
|
||||||
@override Widget build(BuildContext context) {
|
@override Widget build(BuildContext context) {
|
||||||
return new Scaffold(appBar: getAppBar(),
|
return new Scaffold(appBar: getAppBar(),
|
||||||
body: getScreenContent());
|
body: getScreenContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -43,26 +44,27 @@ abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T>
|
|||||||
|
|
||||||
Widget getItem(String option) {
|
Widget getItem(String option) {
|
||||||
return new Container(
|
return new Container(
|
||||||
height: 56.0,
|
height: 56.0,
|
||||||
child: (new FlatButton(onPressed: () {
|
child: (new FlatButton(onPressed: () {
|
||||||
|
setState(() {
|
||||||
saveOption();
|
saveOption();
|
||||||
setState(() {
|
selectedItem = getOptions().indexOf(option);
|
||||||
selectedItem = getOptions().indexOf(option);
|
});
|
||||||
});
|
},
|
||||||
},
|
child: new Row(children: <Widget>[
|
||||||
child: new Row(children: <Widget>[
|
new Expanded(child: new Text(option)),
|
||||||
new Expanded(child: new Text(option)),
|
getCheckMark(getOptions().indexOf(option))
|
||||||
getCheckMark(getOptions().indexOf(option))]))));
|
]))));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget getCheckMark(int index) {
|
Widget getCheckMark(int index) {
|
||||||
return index == selectedItem ? new Image.asset(check_png,
|
return index == selectedItem ? new Image.asset(check_png,
|
||||||
width: 28.0,
|
width: 28.0,
|
||||||
height: 28.0) : new Image.asset(check_png, color: new Color(0xffffff));
|
height: 28.0) : new Image.asset(check_png, color: new Color(0xffffff));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String getTitle() {
|
String getTitle() {
|
||||||
return StringsLocalization.settings();
|
return StringsLocalization.settings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:checker/screens/splash.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:image_picker/image_picker.dart';
|
import 'package:image_picker/image_picker.dart';
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
|
|
||||||
import 'db.dart';
|
import 'db.dart';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
@@ -46,9 +45,8 @@ logout(BuildContext context, SqliteHelper helper) async {
|
|||||||
helper.clear().then((result) {
|
helper.clear().then((result) {
|
||||||
// helper.close().then((_) {
|
// helper.close().then((_) {
|
||||||
// Navigator.of(context).pop();
|
// Navigator.of(context).pop();
|
||||||
// Navigator.of(context).pop();
|
// Navigator.of(context).pop();
|
||||||
pushRouteReplacement(
|
pushRouteReplacement(context, new SplashScreen()); // Запускаем регистрацию
|
||||||
context, new SplashScreen()); // Запускаем регистрацию
|
|
||||||
// });
|
// });
|
||||||
});
|
});
|
||||||
}).catchError((error) {
|
}).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,
|
'token': token,
|
||||||
'url': await platform.invokeMethod('getEndpoint'),
|
'url': await platform.invokeMethod('getEndpoint'),
|
||||||
'appToken': await platform.invokeMethod('getAppToken'),
|
'appToken': await platform.invokeMethod('getAppToken'),
|
||||||
'locale': Intl.defaultLocale,
|
'localeCode': StringsLocalization.localeCode,
|
||||||
'color': Resources.getPrimaryColor(app).value
|
'color': Resources.getPrimaryColor(app).value.toString()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
platform.invokeMethod('startScanner', args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
|
||||||
@@ -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.''')
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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.''')
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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('''
|
|
||||||
Для эффективного считывания штрих-кода карты участника системы лояльности необходимо камеру сканера поднести так, чтобы в неё не попадали вертикальные полосы рамки (если они есть). Они расцениваются сканером как часть штрих-кода.
|
|
||||||
''')
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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('''
|
|
||||||
Для ефективного зчитування штрих-коду карти учасника системи лояльності необхідно камеру сканера піднести так, щоб в неї не потрапляли вертикальні смуги рамки. Вони розцінюються сканером як частина штрих-коду.
|
|
||||||
''')
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,9 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:checker/screens/splash.dart';
|
import 'package:checker/screens/splash.dart';
|
||||||
import 'package:checker/consts.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
|
||||||
const platform = const MethodChannel('com.dinect.checker/instance_id');
|
const platform = const MethodChannel('com.dinect.checker/instance_id');
|
||||||
|
|
||||||
/// Точка входа в приложение.
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// some changes
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
platform.invokeMethod('getAppTitle').then((title) {
|
platform.invokeMethod('getAppTitle').then((title) {
|
||||||
runApp(new Checker(appName: title));
|
runApp(new Checker(appName: title));
|
||||||
@@ -22,7 +15,6 @@ class Checker extends StatelessWidget {
|
|||||||
final String appName;
|
final String appName;
|
||||||
|
|
||||||
@override Widget build (BuildContext context) {
|
@override Widget build (BuildContext context) {
|
||||||
print('app name = ${appName}');
|
|
||||||
return new MaterialApp(
|
return new MaterialApp(
|
||||||
title: appName,
|
title: appName,
|
||||||
home: new SplashScreen()
|
home: new SplashScreen()
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'package:checker/db.dart';
|
import 'package:checker/strings.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
|
|
||||||
import 'common.dart';
|
import 'common.dart';
|
||||||
|
|
||||||
@@ -14,7 +13,7 @@ getCreateTokenRequest(Map httpBody) async {
|
|||||||
return httpClient.post(
|
return httpClient.post(
|
||||||
await getEndpoint() + 'tokens/?_dmapptoken=' + await getToken(),
|
await getEndpoint() + 'tokens/?_dmapptoken=' + await getToken(),
|
||||||
body: httpBody,
|
body: httpBody,
|
||||||
headers: {'Accept-Language': Intl.defaultLocale});
|
headers: {'Accept-Language': StringsLocalization.localeCode});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Проверка статуса токена. В ответе приходит параметр active, который может быть либо true, либо false,.
|
// Проверка статуса токена. В ответе приходит параметр active, который может быть либо true, либо false,.
|
||||||
@@ -25,21 +24,21 @@ getCheckTokenStatusRequest(String token) async {
|
|||||||
token +
|
token +
|
||||||
'?_dmapptoken=' +
|
'?_dmapptoken=' +
|
||||||
await getToken(),
|
await getToken(),
|
||||||
headers: {'Accept-Language': Intl.defaultLocale});
|
headers: {'Accept-Language': StringsLocalization.localeCode});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Удаление токена на сервере.
|
// Удаление токена на сервере.
|
||||||
getDeleteTokenRequest(String token) async {
|
getDeleteTokenRequest(String token) async {
|
||||||
return httpClient.delete(
|
return httpClient.delete(
|
||||||
await getEndpoint() + 'tokens/' + token + '?_dmapptoken=' +
|
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 {
|
getLoyaltyRequest(String endpoint, String token) async {
|
||||||
var headers = {
|
var headers = {
|
||||||
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
||||||
'Authorization': 'dmtoken ${token}',
|
'Authorization': 'dmtoken $token',
|
||||||
'Accept-Language': Intl.defaultLocale
|
'Accept-Language': StringsLocalization.localeCode
|
||||||
};
|
};
|
||||||
|
|
||||||
return httpClient.get(endpoint, headers: headers);
|
return httpClient.get(endpoint, headers: headers);
|
||||||
@@ -49,8 +48,8 @@ getPurchaseRequest(String endpoint, Map body, String token) async {
|
|||||||
|
|
||||||
var headers = {
|
var headers = {
|
||||||
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
||||||
'Authorization': 'dmtoken ${token}',
|
'Authorization': 'dmtoken $token',
|
||||||
'Accept-Language': Intl.defaultLocale
|
'Accept-Language': StringsLocalization.localeCode
|
||||||
};
|
};
|
||||||
|
|
||||||
return httpClient.post(endpoint, body: body, headers: headers);
|
return httpClient.post(endpoint, body: body, headers: headers);
|
||||||
@@ -60,8 +59,8 @@ getCouponsRequest(String endpoint, String token) async {
|
|||||||
|
|
||||||
var headers = {
|
var headers = {
|
||||||
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
||||||
'Authorization': 'dmtoken ${token}',
|
'Authorization': 'dmtoken $token',
|
||||||
'Accept-Language': Intl.defaultLocale
|
'Accept-Language': StringsLocalization.localeCode
|
||||||
};
|
};
|
||||||
|
|
||||||
print(headers);
|
print(headers);
|
||||||
@@ -73,8 +72,8 @@ getUserByCard(String card, String token) async {
|
|||||||
|
|
||||||
var headers = {
|
var headers = {
|
||||||
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
||||||
'Authorization': 'dmtoken ${token}',
|
'Authorization': 'dmtoken $token',
|
||||||
'Accept-Language': Intl.defaultLocale
|
'Accept-Language': StringsLocalization.localeCode
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -88,8 +87,8 @@ getUserByPhone(String phone, String token) async {
|
|||||||
|
|
||||||
var headers = {
|
var headers = {
|
||||||
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
'DM-Authorization': 'dmapptoken ${await getToken()}',
|
||||||
'Authorization': 'dmtoken ${token}',
|
'Authorization': 'dmtoken $token',
|
||||||
'Accept-Language': Intl.defaultLocale
|
'Accept-Language': StringsLocalization.localeCode
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import 'package:checker/db.dart';
|
|||||||
import 'package:checker/network.dart';
|
import 'package:checker/network.dart';
|
||||||
import 'package:checker/strings.dart';
|
import 'package:checker/strings.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
|
|
||||||
class FinishRegistrationScreen extends BaseScreen {
|
class FinishRegistrationScreen extends BaseScreen {
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import 'package:checker/db.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:checker/strings.dart';
|
import 'package:checker/strings.dart';
|
||||||
import 'package:checker/common.dart';
|
import 'package:checker/common.dart';
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
|
|
||||||
class LanguagesScreen extends BaseScreen {
|
class LanguagesScreen extends BaseScreen {
|
||||||
|
|
||||||
@@ -39,14 +38,13 @@ class LanguagesState extends SettingsBaseState<LanguagesScreen> {
|
|||||||
@override
|
@override
|
||||||
saveOption() async {
|
saveOption() async {
|
||||||
await helper.saveLocale(languages[selectedItem]);
|
await helper.saveLocale(languages[selectedItem]);
|
||||||
Intl.defaultLocale = languages[selectedItem];
|
|
||||||
await StringsLocalization.load(languages[selectedItem]);
|
await StringsLocalization.load(languages[selectedItem]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void getSelectedValue() {
|
void getSelectedValue() {
|
||||||
setState(() {
|
setState(() {
|
||||||
selectedItem = getOptions().indexOf(getLocaleTitle(Intl.defaultLocale));
|
selectedItem = getOptions().indexOf(getLocaleTitle(StringsLocalization.localeCode));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
|||||||
if (fractionalPart.length > 2) {
|
if (fractionalPart.length > 2) {
|
||||||
fractionalPart = fractionalPart.substring(0, 2);
|
fractionalPart = fractionalPart.substring(0, 2);
|
||||||
}
|
}
|
||||||
return '${integerPart}.${fractionalPart}';
|
return '$integerPart.$fractionalPart';
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
print(exception);
|
print(exception);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import 'package:checker/screens/currencies.dart';
|
|||||||
import 'package:checker/screens/languages.dart';
|
import 'package:checker/screens/languages.dart';
|
||||||
import 'package:checker/strings.dart';
|
import 'package:checker/strings.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
|
|
||||||
class SettingsScreen extends BaseScreen {
|
class SettingsScreen extends BaseScreen {
|
||||||
|
|
||||||
@@ -51,7 +50,7 @@ class SettingsState extends BaseState<SettingsScreen> {
|
|||||||
menuItems[2].title = StringsLocalization.logout();
|
menuItems[2].title = StringsLocalization.logout();
|
||||||
menuItems[0].selectedValue = info['currency'].toString();
|
menuItems[0].selectedValue = info['currency'].toString();
|
||||||
menuItems[1].selectedValue =
|
menuItems[1].selectedValue =
|
||||||
info['locale'] == null ? Intl.defaultLocale : info['locale'];
|
info['locale'] == null ? StringsLocalization.localeCode : info['locale'];
|
||||||
menuItems[2].selectedValue =
|
menuItems[2].selectedValue =
|
||||||
info['token'] == null ? '' : getTokenSuffix(info['token']);
|
info['token'] == null ? '' : getTokenSuffix(info['token']);
|
||||||
});
|
});
|
||||||
@@ -84,6 +83,7 @@ class SettingsState extends BaseState<SettingsScreen> {
|
|||||||
List<Widget> widgets = new List();
|
List<Widget> widgets = new List();
|
||||||
for (int i = 0; i < menuItems.length; i++) {
|
for (int i = 0; i < menuItems.length; i++) {
|
||||||
if (menuItems[i].selectedValue.toString() != '') {
|
if (menuItems[i].selectedValue.toString() != '') {
|
||||||
|
print('title : ${menuItems[i].title}');
|
||||||
widgets.add(
|
widgets.add(
|
||||||
getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])),
|
getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])),
|
||||||
menuItems[i].title,
|
menuItems[i].title,
|
||||||
@@ -98,6 +98,7 @@ class SettingsState extends BaseState<SettingsScreen> {
|
|||||||
case 0 :
|
case 0 :
|
||||||
return getCurrencyTitle(int.parse(menuItems[position].selectedValue));
|
return getCurrencyTitle(int.parse(menuItems[position].selectedValue));
|
||||||
case 1 :
|
case 1 :
|
||||||
|
print('val : ${menuItems[position].selectedValue}');
|
||||||
return getLocaleTitle(menuItems[position].selectedValue);
|
return getLocaleTitle(menuItems[position].selectedValue);
|
||||||
default :
|
default :
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import 'package:checker/screens/registration.dart';
|
|||||||
import 'package:checker/strings.dart';
|
import 'package:checker/strings.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:http/http.dart';
|
import 'package:http/http.dart';
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
|
|
||||||
class SplashScreen extends StatefulWidget {
|
class SplashScreen extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
@@ -78,7 +77,6 @@ class _SplashScreenState extends BaseState<SplashScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void initLocale<T>(String locale, Future<T> onValue()) {
|
void initLocale<T>(String locale, Future<T> onValue()) {
|
||||||
Intl.defaultLocale = locale;
|
|
||||||
StringsLocalization.load(locale).then((_) {
|
StringsLocalization.load(locale).then((_) {
|
||||||
onValue();
|
onValue();
|
||||||
});
|
});
|
||||||
|
|||||||
164
lib/strings.dart
164
lib/strings.dart
@@ -1,18 +1,31 @@
|
|||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'i18n/messages_all.dart';
|
|
||||||
import 'package:sprintf/sprintf.dart';
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'package:sprintf/sprintf.dart';
|
||||||
|
import 'package:xml/xml.dart' as xml;
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
|
||||||
class StringsLocalization {
|
class StringsLocalization {
|
||||||
|
|
||||||
static Future load(String locale) async {
|
static String localeCode;
|
||||||
return initializeMessages(locale);
|
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 String declineCurrency(int num, int code) {
|
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;
|
int residual = num % 100;
|
||||||
if (residual >= 20) {
|
if (residual >= 20) {
|
||||||
residual %= 10;
|
residual %= 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,7 +44,6 @@ class StringsLocalization {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static List<String> currencies(int code) {
|
static List<String> currencies(int code) {
|
||||||
|
|
||||||
String nominative, singular, plural;
|
String nominative, singular, plural;
|
||||||
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
@@ -62,88 +74,76 @@ class StringsLocalization {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return [nominative, singular, plural];
|
return [nominative, singular, plural];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static String confirmPurchase(String val, int code) {
|
static String confirmPurchase(String val, int code) {
|
||||||
String trimmedVal =val.substring(0, val.length - 3);
|
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) {
|
static String purchaseCompleted(String val, int code) {
|
||||||
String trimmedVal =val.substring(0, val.length - 3);
|
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 registration() => strings['registration'];
|
||||||
static String usage() => Intl.message('usage', name: 'usage', locale: Intl.defaultLocale);
|
static String usage() => strings['usage'];
|
||||||
static String support() => Intl.message('support', name: 'support', locale: Intl.defaultLocale);
|
static String support() => strings['support'];
|
||||||
static String common() => Intl.message('common', name: 'common', locale: Intl.defaultLocale);
|
static String common() => strings['common'];
|
||||||
static String idStore() => Intl.message('ID_Store', name: 'ID_Store', locale: Intl.defaultLocale);
|
static String idStore() => strings['ID_Store'];
|
||||||
static String signUp() => Intl.message('sign_up', name: 'sign_up', locale: Intl.defaultLocale);
|
static String signUp() => strings['sign_up'];
|
||||||
static String specifyDinStore() => Intl.message('specify_din_store', name: 'specify_din_store', locale: Intl.defaultLocale);
|
static String specifyDinStore() => strings['specify_din_store'];
|
||||||
static String confirmation() => Intl.message('confirmation', name: 'confirmation', locale: Intl.defaultLocale);
|
static String confirmation() => strings['confirmation'];
|
||||||
static String askChangeStore() => Intl.message('ask_change_store', name: 'ask_change_store', locale: Intl.defaultLocale);
|
static String askChangeStore() => strings['ask_change_store'];
|
||||||
static String yes() => Intl.message('yes', name: 'yes', locale: Intl.defaultLocale);
|
static String yes() => strings['yes'];
|
||||||
static String no() => Intl.message('no', name: 'no', locale: Intl.defaultLocale);
|
static String no() => strings['no'];
|
||||||
static String requestSentWaitActivation() => Intl.message('request_sent_wait_activ', name: 'request_sent_wait_activ', locale: Intl.defaultLocale);
|
static String requestSentWaitActivation() => strings['request_sent_wait_activ'];
|
||||||
static String refreshActivationStatus() => Intl.message('update_activ_status', name: 'update_activ_status', locale: Intl.defaultLocale);
|
static String refreshActivationStatus() => strings['update_activ_status'];
|
||||||
static String appActivated() => Intl.message('app_activ', name: 'app_activ', locale: Intl.defaultLocale);
|
static String appActivated() => strings['app_activ'];
|
||||||
static String completeRegistration() => Intl.message('complite_activ', name: 'complite_activ', locale: Intl.defaultLocale);
|
static String completeRegistration() => strings['complite_activ'];
|
||||||
static String cardScanner() => Intl.message('card_scaner', name: 'card_scaner', locale: Intl.defaultLocale);
|
static String cardScanner() => strings['card_scaner'];
|
||||||
static String card() => Intl.message('card', name: 'card', locale: Intl.defaultLocale);
|
static String card() => strings['card'];
|
||||||
static String reward() => Intl.message('reward', name: 'reward', locale: Intl.defaultLocale);
|
static String reward() => strings['reward'];
|
||||||
static String sum() => Intl.message('sum', name: 'sum', locale: Intl.defaultLocale);
|
static String sum() => strings['sum'];
|
||||||
static String bonus() => Intl.message('bonus', name: 'bonus', locale: Intl.defaultLocale);
|
static String bonus() => strings['bonus'];
|
||||||
static String couponsUsed() => Intl.message('coupons_used', name: 'coupons_used', locale: Intl.defaultLocale);
|
static String couponsUsed() => strings['coupons_used'];
|
||||||
static String selectCoupons() => Intl.message('select_coupons', name: 'select_coupons', locale: Intl.defaultLocale);
|
static String selectCoupons() => strings['select_coupons'];
|
||||||
static String carryingPurchase() => Intl.message('carry_purchase', name: 'carry_purchase', locale: Intl.defaultLocale);
|
static String carryingPurchase() => strings['carry_purchase'];
|
||||||
static String completePurchase() => Intl.message('complite_purchase', name: 'complite_purchase', locale: Intl.defaultLocale);
|
static String completePurchase() => strings['complite_purchase'];
|
||||||
static String scan() => Intl.message('scan', name: 'scan', locale: Intl.defaultLocale);
|
static String scan() => strings['scan'];
|
||||||
static String buyer() => Intl.message('buyer', name: 'buyer', locale: Intl.defaultLocale);
|
static String buyer() => strings['buyer'];
|
||||||
static String bonusHint() => Intl.message('bonus_hint', name: 'bonus_hint', locale: Intl.defaultLocale);
|
static String bonusHint() => strings['bonus_hint'];
|
||||||
static String bonusExplanation() => Intl.message('bonus_explanation', name: 'bonus_explanation', locale: Intl.defaultLocale);
|
static String bonusExplanation() => strings['bonus_explanation'];
|
||||||
static String discountRate() => Intl.message('discount_rate', name: 'discount_rate', locale: Intl.defaultLocale);
|
static String discountRate() => strings['discount_rate'];
|
||||||
static String discountSum() => Intl.message('discount_sum', name: 'discount_sum', locale: Intl.defaultLocale);
|
static String discountSum() => strings['discount_sum'];
|
||||||
static String bonusPlus() => Intl.message('bonus_plus', name: 'bonus_plus', locale: Intl.defaultLocale);
|
static String bonusPlus() => strings['bonus_plus'];
|
||||||
static String bonusMinus() => Intl.message('bonus_minus', name: 'bonus_minus', locale: Intl.defaultLocale);
|
static String bonusMinus() => strings['bonus_minus'];
|
||||||
static String idNotFound() => Intl.message('ID_not_found', name: 'ID_not_found', locale: Intl.defaultLocale);
|
static String idNotFound() => strings['ID_not_found'];
|
||||||
static String settings() => Intl.message('settings', name: 'settings', locale: Intl.defaultLocale);
|
static String settings() => strings['settings'];
|
||||||
static String help() => Intl.message('help', name: 'help', locale: Intl.defaultLocale);
|
static String help() => strings['help'];
|
||||||
static String exit() => Intl.message('exit', name: 'exit', locale: Intl.defaultLocale);
|
static String exit() => strings['exit'];
|
||||||
static String logout() => Intl.message('logout', name: 'logout', locale: Intl.defaultLocale);
|
static String logout() => strings['logout'];
|
||||||
static String currency() => Intl.message('currency', name: 'currency', locale: Intl.defaultLocale);
|
static String currency() => strings['currency'];
|
||||||
static String locale() => Intl.message('locale', name: 'locale', locale: Intl.defaultLocale);
|
static String locale() => strings['locale'];
|
||||||
|
static String nominativeRuble() => strings['nominative_ruble'];
|
||||||
// Валюты
|
static String singularRuble() => strings['singular_ruble'];
|
||||||
static String nominativeRuble() => Intl.message('nominative_ruble', name: 'nominative_ruble', locale: Intl.defaultLocale);
|
static String pluralRuble() => strings['plural_ruble'];
|
||||||
static String singularRuble() => Intl.message('singular_ruble', name: 'singular_ruble', locale: Intl.defaultLocale);
|
static String nominativeEuro() => strings['nominative_euro'];
|
||||||
static String pluralRuble() => Intl.message('plural_ruble', name: 'plural_ruble', locale: Intl.defaultLocale);
|
static String singularEuro() => strings['singular_euro'];
|
||||||
|
static String pluralEuro() => strings['plural_euro'];
|
||||||
static String nominativeEuro() => Intl.message('nominative_euro', name: 'nominative_euro', locale: Intl.defaultLocale);
|
static String nominativeDollar() => strings['nominative_dollar'];
|
||||||
static String singularEuro() => Intl.message('singular_euro', name: 'singular_euro', locale: Intl.defaultLocale);
|
static String singularDollar() => strings['singular_dollar'];
|
||||||
static String pluralEuro() => Intl.message('plural_euro', name: 'plural_euro', locale: Intl.defaultLocale);
|
static String pluralDollar() => strings['plural_dollar'];
|
||||||
|
static String nominativeHryvna() => strings['nominative_hryvna'];
|
||||||
|
static String singularHryvna() => strings['singular_hryvna'];
|
||||||
static String nominativeDollar() => Intl.message('nominative_dollar', name: 'nominative_dollar', locale: Intl.defaultLocale);
|
static String pluralHryvna() => strings['plural_hryvna'];
|
||||||
static String singularDollar() => Intl.message('singular_dollar', name: 'singular_dollar', locale: Intl.defaultLocale);
|
static String nominativeTenge() => strings['nominative_tenge'];
|
||||||
static String pluralDollar() => Intl.message('plural_dollar', name: 'plural_dollar', locale: Intl.defaultLocale);
|
static String singularTenge() => strings['singular_tenge'];
|
||||||
|
static String pluralTenge() => strings['plural_tenge'];
|
||||||
static String nominativeHryvna() => Intl.message('nominative_hryvna', name: 'nominative_hryvna', locale: Intl.defaultLocale);
|
static String registrationGuide() => strings['registration_guide'];
|
||||||
static String singularHryvna() => Intl.message('singular_hryvna', name: 'singular_hryvna', locale: Intl.defaultLocale);
|
static String usageGuide() => strings['usage_guide'];
|
||||||
static String pluralHryvna() => Intl.message('plural_hryvna', name: 'plural_hryvna', locale: Intl.defaultLocale);
|
static String commonGuide() => strings['common_guide'].replaceAll('\n', "\n");
|
||||||
|
static String supportGuide(String phone, String url) => sprintf(strings['support_guide'], [phone, url]);
|
||||||
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]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
157
pubspec.lock
157
pubspec.lock
@@ -1,20 +1,6 @@
|
|||||||
# Generated by pub
|
# Generated by pub
|
||||||
# See http://pub.dartlang.org/doc/glossary.html#lockfile
|
# See http://pub.dartlang.org/doc/glossary.html#lockfile
|
||||||
packages:
|
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:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -22,13 +8,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.3"
|
version: "2.0.3"
|
||||||
barback:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: barback
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.15.2+14"
|
|
||||||
charcode:
|
charcode:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -36,13 +15,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.1"
|
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:
|
collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -50,60 +22,11 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.14.5"
|
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:
|
flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
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:
|
http:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -125,41 +48,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.5"
|
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:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -174,13 +62,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.1"
|
version: "1.1.1"
|
||||||
package_config:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: package_config
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.3"
|
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -202,20 +83,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.7.0"
|
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:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
@@ -241,7 +108,7 @@ packages:
|
|||||||
name: sqflite
|
name: sqflite
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.2+1"
|
version: "0.6.2+2"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -270,13 +137,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.4"
|
version: "1.1.4"
|
||||||
utf:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: utf
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.9.0+3"
|
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -284,19 +144,12 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.5"
|
version: "2.0.5"
|
||||||
watcher:
|
xml:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: watcher
|
name: xml
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.9.7+6"
|
version: "2.6.0"
|
||||||
yaml:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: yaml
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.13"
|
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.0.0-dev.15.0 <=2.0.0-dev.19.0"
|
dart: ">=2.0.0-dev.15.0 <=2.0.0-dev.19.0"
|
||||||
|
|||||||
@@ -3,12 +3,11 @@ description: A new Flutter project.
|
|||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
http: '>=0.11.3+12'
|
http: '>=0.11.3+12'
|
||||||
intl: '>=0.14.0 <0.16.0'
|
|
||||||
intl_translation: '>=0.14.0 <0.16.0'
|
|
||||||
sprintf: "^3.0.2"
|
sprintf: "^3.0.2"
|
||||||
path_provider: "^0.2.1+1"
|
path_provider: "^0.2.1+1"
|
||||||
sqflite: any
|
sqflite: any
|
||||||
image_picker: '^0.1.3' # use for ask permissions @ iOS
|
image_picker: '^0.1.3' # use for ask permissions @ iOS
|
||||||
|
xml: "^2.6.0"
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
@@ -46,6 +45,10 @@ flutter:
|
|||||||
- assets/powered_by_dinect_splash.png
|
- assets/powered_by_dinect_splash.png
|
||||||
- assets/powered_by_dinect.png
|
- assets/powered_by_dinect.png
|
||||||
- assets/splash_text.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
|
# To add assets from package dependencies, first ensure the asset
|
||||||
# is in the lib/ directory of the dependency. Then,
|
# is in the lib/ directory of the dependency. Then,
|
||||||
|
|||||||
Reference in New Issue
Block a user