diff --git a/android/app/src/main/java/com/dinect/checker/AbstractScannerActivity.java b/android/app/src/main/java/com/dinect/checker/AbstractScannerActivity.java index 807e220..d85f8c8 100644 --- a/android/app/src/main/java/com/dinect/checker/AbstractScannerActivity.java +++ b/android/app/src/main/java/com/dinect/checker/AbstractScannerActivity.java @@ -71,7 +71,6 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme public static final String SCAN_MODES = "SCAN_MODES"; public static final String ERROR_INFO = "ERROR_INFO"; - protected LogoutDialogFragment logoutDialog; private ApiClient mClient; private StatedImageButton statedImageButton; @@ -167,7 +166,7 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme EditText manualInput = (EditText) findViewById(R.id.manual_input); // для удобства, чтоб не вводить постоянно руками при разработке - //manualInput.setText("4620011139016317023320337"); + manualInput.setText("4620011139016337050236302"); manualInput.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override @@ -287,7 +286,7 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme public boolean onPrepareOptionsMenu(Menu menu) { menu.findItem(R.id.settings).setIcon(getResources().getDrawable(R.drawable.settings)); menu.findItem(R.id.faq).setIcon(getResources().getDrawable(R.drawable.help)); - menu.findItem(R.id.logout).setIcon(getResources().getDrawable(R.drawable.logout)); + menu.findItem(R.id.exit).setIcon(getResources().getDrawable(R.drawable.exit)); return super.onPrepareOptionsMenu(menu); } @@ -299,10 +298,8 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme setResult(RESULT_OK, intent); finish(); return true; - } else if (item.getItemId() == R.id.logout) { - int color = (int) getIntent().getLongExtra(MainActivity.PREF_APP_BAR_COLOR, 0xffffff); - logoutDialog = LogoutDialogFragment.newInstance(color); - logoutDialog.show(getFragmentManager(), "logout"); + } else if (item.getItemId() == R.id.exit) { + exit(); return true; } else if (item.getItemId() == R.id.faq) { final Intent intent = new Intent(); @@ -314,57 +311,10 @@ public abstract class AbstractScannerActivity extends AppCompatActivity impleme return super.onOptionsItemSelected(item); } - void dismissDialog() { - if (logoutDialog != null) { - logoutDialog.dismiss(); - logoutDialog = null; - } - } - - void logout() { + void exit() { final Intent intent = new Intent(); - intent.putExtra("item", "logout"); + intent.putExtra("item", "exit"); setResult(RESULT_OK, intent); finish(); } - - public static class LogoutDialogFragment extends DialogFragment { - - static LogoutDialogFragment newInstance(int color) { - LogoutDialogFragment f = new LogoutDialogFragment(); - Bundle bundle = new Bundle(); - bundle.putInt(MainActivity.PREF_APP_BAR_COLOR, color); - f.setArguments(bundle); - return f; - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - final LayoutInflater inflater = getActivity().getLayoutInflater(); - final View content = inflater.inflate(R.layout.f_logout_dialog, null); - builder.setView(content); - final TextView positiveButton = (TextView) content.findViewById(R.id.positiveButton); - final TextView negativeButton = (TextView) content.findViewById(R.id.negativeButton); - // Можно делать через стили, но я не уверен, что необходимо в нашем случае - positiveButton.setTextColor(getArguments().getInt(MainActivity.PREF_APP_BAR_COLOR)); - negativeButton.setTextColor(getArguments().getInt(MainActivity.PREF_APP_BAR_COLOR)); - - negativeButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - ((AbstractScannerActivity) getActivity()).dismissDialog(); - } - }); - - positiveButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - ((AbstractScannerActivity) getActivity()).logout(); - } - }); - - return builder.create(); - } - } } diff --git a/android/app/src/main/java/com/dinect/checker/MainActivity.java b/android/app/src/main/java/com/dinect/checker/MainActivity.java index 49a106a..d1a968d 100644 --- a/android/app/src/main/java/com/dinect/checker/MainActivity.java +++ b/android/app/src/main/java/com/dinect/checker/MainActivity.java @@ -6,6 +6,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.os.Bundle; import android.widget.Toast; +import android.util.Log; import com.dinect.checker.zbar.CameraActivity; import com.dinect.checker.zxing.ScannerActivity; import io.flutter.app.FlutterActivity; @@ -89,6 +90,10 @@ public class MainActivity extends FlutterActivity { case "showBonus": result.success(BuildConfig.showBonus); break; + case "finish": + Log.d("kifio", call.method); + finish(); + break; default: result.notImplemented(); break; @@ -148,7 +153,11 @@ public class MainActivity extends FlutterActivity { } else { String menuItem = data.getExtras().getString("item", null); if (menuItem != null) { + if (menuItem.equals("exit")) { + finish(); + } else { mChannel.invokeMethod(menuItem, null); + } } } } else { diff --git a/android/app/src/main/res/drawable-xxxhdpi/logout.png b/android/app/src/main/res/drawable-xxxhdpi/exit.png similarity index 100% rename from android/app/src/main/res/drawable-xxxhdpi/logout.png rename to android/app/src/main/res/drawable-xxxhdpi/exit.png diff --git a/android/app/src/main/res/menu/menu.xml b/android/app/src/main/res/menu/menu.xml index a89d3df..6562c33 100644 --- a/android/app/src/main/res/menu/menu.xml +++ b/android/app/src/main/res/menu/menu.xml @@ -19,10 +19,10 @@ android:title="@string/faq" android:icon="@drawable/help"/> - + - \ No newline at end of file + diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml index 0e0b80f..4f5a97b 100644 --- a/android/app/src/main/res/values-ru/strings.xml +++ b/android/app/src/main/res/values-ru/strings.xml @@ -3,12 +3,8 @@ Сканер карты Сканировать Справка - Выход + Закрыть приложение Настройки - Подтверждение - Вы действительно хотите выйти и ввести другой номер магазина? - Да - Нет "Идентификатор %s не найден" Введите номер карты Телефон 79XXXXXXXXX diff --git a/android/app/src/main/res/values-ua/strings.xml b/android/app/src/main/res/values-ua/strings.xml index ab72b38..805694c 100644 --- a/android/app/src/main/res/values-ua/strings.xml +++ b/android/app/src/main/res/values-ua/strings.xml @@ -3,12 +3,8 @@ Сканер карти Сканувати Допомога - Вихід + Закрыть приложение Налаштування - Підтвердження - Ви дійсно хочете вийти і ввести інший номер магазину? - Так - Ні "Ідентифікатор %s не знайден" Введіть штрихкод вручну Телефон 79XXXXXXXXX diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 57c7474..0b7e185 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -3,12 +3,8 @@ Card Scanner Scan Help - Logout + Exit Settings - Сonfirmation - Do you really want to log out and enter a different store number? - Yes - No "Identifier %s is not found" Enter the card number Phone 79XXXXXXXXX diff --git a/assets/logout.png b/assets/exit.png similarity index 100% rename from assets/logout.png rename to assets/exit.png diff --git a/lib/base/base_state.dart b/lib/base/base_state.dart index 6eb2e20..f0f4205 100644 --- a/lib/base/base_state.dart +++ b/lib/base/base_state.dart @@ -1,6 +1,5 @@ import 'package:checker/resources.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:checker/common.dart'; import 'package:checker/consts.dart'; @@ -70,14 +69,10 @@ abstract class BaseState extends State { child: getMenuItem(help_png, StringsLocalization.help()) )); - helper.getToken().then((token){ - if (token != null) { // пользователь авторизован - menuItemList.add(new PopupMenuItem( - value: 2, - child: getMenuItem(logout_png, StringsLocalization.logout()) - )); - } - }); + menuItemList.add(new PopupMenuItem( + value: 2, + child: getMenuItem(exit_png, StringsLocalization.exit()) + )); return [ new PopupMenuButton( @@ -100,7 +95,8 @@ abstract class BaseState extends State { break; } case 2: { - logout(context, helper); + platform.invokeMethod('finish'); + break; } } } diff --git a/lib/common.dart b/lib/common.dart index cc05687..6035ed0 100644 --- a/lib/common.dart +++ b/lib/common.dart @@ -45,8 +45,8 @@ logout(BuildContext context, SqliteHelper helper) async { getDeleteTokenRequest(token).then((response) { helper.clear().then((result) { // helper.close().then((_) { - Navigator.of(context).pop(); - Navigator.of(context).pop(); +// Navigator.of(context).pop(); +// Navigator.of(context).pop(); pushRouteReplacement( context, new SplashScreen()); // Запускаем регистрацию // }); @@ -93,15 +93,13 @@ startScanner(BuildContext context, String app, SqliteHelper helper) async { } else { String token = await helper.getToken(); // Канал ловит вызовы методов из "нативной" части приложения. - // Могут быть вызваны либо logout либо faq, либо purchase. + // Могут быть вызваны либо exit либо faq, либо purchase. if (token != null) { platform.setMethodCallHandler((MethodCall call) async { print('flutter handler'); print(call.method); - if (call.method == 'logout') { - forceLogout(token, context); - } else if (call.method == 'findUser') { + if (call.method == 'findUser') { var userResponse; String cardPhone = call.arguments[0]; diff --git a/lib/consts.dart b/lib/consts.dart index 813b9cc..1c3d193 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; const String appName = "Dinect"; // Assets -const String logout_png = 'assets/logout.png'; +const String exit_png = 'assets/exit.png'; const String help_png = 'assets/help.png'; const String settings_png = 'assets/settings.png'; const String settings_arrow_png = 'assets/settings_arrow.png'; @@ -23,8 +23,9 @@ const Color greenBackground = const Color(0xff8ae28a); const Color faqGrey = const Color(0xff5b5b5b); const Color faqTitlesColor = const Color(0xff404040); const Color inputFieldBackground = const Color(0xffefefef); +const Color logoutRed = const Color(0xffeb0004); // Dimens const double verticalMargin = 28.0; const double buttonHeight = 48.0; -const double iconHeight = 20.0; \ No newline at end of file +const double iconHeight = 20.0; diff --git a/lib/db.dart b/lib/db.dart index bcdb658..704cca3 100644 --- a/lib/db.dart +++ b/lib/db.dart @@ -75,8 +75,17 @@ class SqliteHelper { } } - Future getSettings() async { - return await selectAll(tableSettings); + Future getSettings(bool withSession) async { + Map settings = await selectAll(tableSettings); + + if (withSession) { + Map session = await selectAll(tableSession); + if (settings != null && session != null) { + settings.addAll(session); + } + } + + return settings; } Future getToken() async { @@ -137,4 +146,4 @@ class SqliteHelper { Future clear() async { return await db.delete(tableSession, where: null); } -} \ No newline at end of file +} diff --git a/lib/i18n/messages_en.dart b/lib/i18n/messages_en.dart index d556bbb..405a6be 100644 --- a/lib/i18n/messages_en.dart +++ b/lib/i18n/messages_en.dart @@ -52,7 +52,8 @@ class MessageLookup extends MessageLookupByLibrary { "yes" : MessageLookupByLibrary.simpleMessage("Yes"), "settings" : MessageLookupByLibrary.simpleMessage("Settings"), "help" : MessageLookupByLibrary.simpleMessage("Help"), - "logout" : MessageLookupByLibrary.simpleMessage("Exit"), + "exit" : MessageLookupByLibrary.simpleMessage("Exit"), + "logout" : MessageLookupByLibrary.simpleMessage("Log Out"), "currency" : MessageLookupByLibrary.simpleMessage("Currency"), "locale" : MessageLookupByLibrary.simpleMessage("Language"), "nominative_ruble": MessageLookupByLibrary.simpleMessage("Ruble"), diff --git a/lib/i18n/messages_es.dart b/lib/i18n/messages_es.dart index c8c9baf..33e18c2 100644 --- a/lib/i18n/messages_es.dart +++ b/lib/i18n/messages_es.dart @@ -51,7 +51,8 @@ class MessageLookup extends MessageLookupByLibrary { "yes" : MessageLookupByLibrary.simpleMessage("Si"), "settings" : MessageLookupByLibrary.simpleMessage("Las configuraciones"), "help" : MessageLookupByLibrary.simpleMessage("La Ayuda"), - "logout" : MessageLookupByLibrary.simpleMessage("Salir"), + "exit" : MessageLookupByLibrary.simpleMessage("Salir"), + "logout" : MessageLookupByLibrary.simpleMessage("Log Out"), "currency" : MessageLookupByLibrary.simpleMessage("La Moneda"), "locale" : MessageLookupByLibrary.simpleMessage("La lengua"), "nominative_ruble": MessageLookupByLibrary.simpleMessage("Rublo"), diff --git a/lib/i18n/messages_ru.dart b/lib/i18n/messages_ru.dart index 22960cf..4fb408a 100644 --- a/lib/i18n/messages_ru.dart +++ b/lib/i18n/messages_ru.dart @@ -52,7 +52,8 @@ class MessageLookup extends MessageLookupByLibrary { "yes" : MessageLookupByLibrary.simpleMessage("Да"), "settings" : MessageLookupByLibrary.simpleMessage("Настройки"), "help" : MessageLookupByLibrary.simpleMessage("Справка"), - "logout" : MessageLookupByLibrary.simpleMessage("Выход"), + "exit" : MessageLookupByLibrary.simpleMessage("Закрыть приложение"), + "logout" : MessageLookupByLibrary.simpleMessage("Выйти из аккаунта"), "currency" : MessageLookupByLibrary.simpleMessage("Валюта"), "locale" : MessageLookupByLibrary.simpleMessage("Язык"), "nominative_ruble": MessageLookupByLibrary.simpleMessage("Рубль"), diff --git a/lib/i18n/messages_ua.dart b/lib/i18n/messages_ua.dart index f40b1d2..9e956d3 100644 --- a/lib/i18n/messages_ua.dart +++ b/lib/i18n/messages_ua.dart @@ -51,7 +51,8 @@ class MessageLookup extends MessageLookupByLibrary { "yes" : MessageLookupByLibrary.simpleMessage("Так"), "settings" : MessageLookupByLibrary.simpleMessage("Налаштування"), "help" : MessageLookupByLibrary.simpleMessage("Допомога"), - "logout" : MessageLookupByLibrary.simpleMessage("Вихід"), + "exit" : MessageLookupByLibrary.simpleMessage("Вихід"), + "logout" : MessageLookupByLibrary.simpleMessage("Log Out"), "currency" : MessageLookupByLibrary.simpleMessage("Валюта"), "locale" : MessageLookupByLibrary.simpleMessage("Мова"), "nominative_ruble": MessageLookupByLibrary.simpleMessage("Рубль"), diff --git a/lib/resources.dart b/lib/resources.dart index 23dee4f..f0d80fc 100644 --- a/lib/resources.dart +++ b/lib/resources.dart @@ -7,7 +7,8 @@ class Resources { } static String getSplash(String app) { - return 'assets/${app != null ? app : 'pip'}_splash.png'; +// app != null ? app : + return 'assets/${'pip'}_splash.png'; } static Color getPrimaryColor(String app) { @@ -27,4 +28,4 @@ class Resources { default: return new Color(0xffffffff); } } -} \ No newline at end of file +} diff --git a/lib/screens/finish_registration.dart b/lib/screens/finish_registration.dart index 977a985..7919515 100644 --- a/lib/screens/finish_registration.dart +++ b/lib/screens/finish_registration.dart @@ -59,10 +59,11 @@ class RegistrationScreenState extends BaseState { ]); } - // Если токен активирован, то открывается экран со сканером, + // Если токен активирован, то открывается экран со сканером, // Если нет, то отправляется запрос на проверку статуса токена. handleTap() async { if (_tokenActive) { + Navigator.of(context).pop(); startScanner(context, app, helper); } else { if (await platform.invokeMethod('isOnline')) { @@ -90,7 +91,7 @@ class RegistrationScreenState extends BaseState { ]); } - /// Метод возвращает контейнер с текстом сообщения и бэкграундом. + /// Метод возвращает контейнер с текстом сообщения и бэкграундом. getMessage() { return new Container(height: _tokenActive ? 72.0 : 108.0, decoration: _getDecorationForMessageField(), @@ -99,7 +100,7 @@ class RegistrationScreenState extends BaseState { child: new Center(child: getMessageTextWidget())); } - /// Метод возвращает виджет с текстом сообщения, всеми его привязками и стилями. + /// Метод возвращает виджет с текстом сообщения, всеми его привязками и стилями. getMessageTextWidget() { return new Text(getMessageString(), textAlign: TextAlign.center, style: new TextStyle( @@ -123,4 +124,4 @@ class RegistrationScreenState extends BaseState { _tokenActive ? active_token_bg_png : activate_token_bg_png), fit: _tokenActive ? BoxFit.fitWidth : BoxFit.fill)); } -} \ No newline at end of file +} diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 58f1ee7..8786c2f 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -15,7 +15,8 @@ class SettingsScreen extends BaseScreen { SettingsScreen(helper, app, this.returnToScanner) : super(helper, app); - @override State createState() => new SettingsState(helper, app, returnToScanner); + @override State createState() => + new SettingsState(helper, app, returnToScanner); } class MenuItem { @@ -29,6 +30,7 @@ class MenuItem { class SettingsState extends BaseState { List menuItems = [ + new MenuItem('', ''), new MenuItem('', ''), new MenuItem('', '') ]; @@ -42,27 +44,35 @@ class SettingsState extends BaseState { } @override Widget build(BuildContext ctx) { - helper.getSettings().then((info) { + helper.getSettings(true).then((info) { setState(() { menuItems[0].title = StringsLocalization.currency(); menuItems[1].title = StringsLocalization.locale(); + menuItems[2].title = StringsLocalization.logout(); menuItems[0].selectedValue = info['currency'].toString(); - menuItems[1].selectedValue = info['locale'] == null ? Intl.defaultLocale : info['locale'].toString(); + menuItems[1].selectedValue = + info['locale'] == null ? Intl.defaultLocale : info['locale']; + menuItems[2].selectedValue = + info['token'] == null ? '' : getTokenSuffix(info['token']); }); }); return new WillPopScope(onWillPop: onWillPop, child: getMainWidget()); } + String getTokenSuffix(String token) { + return token.substring(token.length - 4, token.length); + } + Widget getMainWidget() { return new Scaffold(appBar: getAppBar(), - body: getScreenContent()); + body: getScreenContent()); } @override Widget getScreenContent() { return new Container( - margin: new EdgeInsets.only(top: 16.0), - child: new ListView(children: getSettings())); + margin: new EdgeInsets.only(top: 16.0), + child: new ListView(children: getSettings())); } @override @@ -73,33 +83,58 @@ class SettingsState extends BaseState { List getSettings() { List widgets = new List(); for (int i = 0; i < menuItems.length; i++) { - if (menuItems[i].selectedValue != '') { - widgets.add(getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])), + if (menuItems[i].selectedValue.toString() != '') { + widgets.add( + getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])), menuItems[i].title, - i == 0 ? getCurrencyTitle(int.parse(menuItems[i].selectedValue)) : getLocaleTitle(menuItems[i].selectedValue))); + getValue(i))); } } return widgets; } + String getValue(int position) { + switch (position) { + case 0 : + return getCurrencyTitle(int.parse(menuItems[position].selectedValue)); + case 1 : + return getLocaleTitle(menuItems[position].selectedValue); + default : + return null; + } + } + Widget getSettingsItem(VoidCallback onPressed, String title, String value) { return new Container( - height: 56.0, - padding: new EdgeInsets.only(left: 8.0), - child: (new FlatButton( - onPressed: onPressed, - child: new Row(children: [ - new Expanded(child: new Text(title, style: new TextStyle( - fontWeight: FontWeight.w600, - color: faqGrey, - fontSize: 14.0))), - new Text(value, - style: new TextStyle( - fontWeight: FontWeight.w400, - color: faqGrey, - fontSize: 14.0)), - getArrow() - ])))); + height: 56.0, + padding: new EdgeInsets.only(left: 8.0), + child: (new FlatButton( + onPressed: onPressed, + child: getRow(title, value)))); + } + + Widget getRow(String title, String value) { + if (value == null) { + return new Row(children: [ + new Text(title, style: new TextStyle( + fontWeight: FontWeight.w600, + color: faqGrey, + fontSize: 14.0)) + ]); + } else { + return new Row(children: [ + new Expanded(child: new Text(title, style: new TextStyle( + fontWeight: FontWeight.w600, + color: faqGrey, + fontSize: 14.0))), + new Text(value, + style: new TextStyle( + fontWeight: FontWeight.w400, + color: faqGrey, + fontSize: 14.0)), + getArrow() + ]); + } } void onPressed(int position) { @@ -108,12 +143,14 @@ class SettingsState extends BaseState { return pushRoute(context, new CurrenciesScreen(helper, app)); case 1 : return pushRoute(context, new LanguagesScreen(helper, app)); + case 2 : + return logout(context, helper); } } Widget getArrow() { return new Container(margin: new EdgeInsets.only(left: 8.0), - child: new Image.asset(settings_arrow_png, height: 42.0)); + child: new Image.asset(settings_arrow_png, height: 42.0)); } @override @@ -122,10 +159,10 @@ class SettingsState extends BaseState { } onWillPop() { - if(returnToScanner) { + if (returnToScanner) { return startScanner(context, app, helper); } else { return true; } } -} \ No newline at end of file +} diff --git a/lib/screens/splash.dart b/lib/screens/splash.dart index 45d5c3c..b007733 100644 --- a/lib/screens/splash.dart +++ b/lib/screens/splash.dart @@ -50,7 +50,7 @@ class _SplashScreenState extends BaseState { void initWithSystemValue() { platform.invokeMethod('getLocale').then((locale) { - helper.getSettings().then((settings) { + helper.getSettings(false).then((settings) { if (settings == null) { createSettingsTable(locale); } else { diff --git a/lib/strings.dart b/lib/strings.dart index 4bb19c0..9d2cc33 100644 --- a/lib/strings.dart +++ b/lib/strings.dart @@ -112,6 +112,7 @@ class StringsLocalization { static String idNotFound() => Intl.message('ID_not_found', name: 'ID_not_found', locale: Intl.defaultLocale); static String settings() => Intl.message('settings', name: 'settings', locale: Intl.defaultLocale); static String help() => Intl.message('help', name: 'help', locale: Intl.defaultLocale); + static String exit() => Intl.message('exit', name: 'exit', locale: Intl.defaultLocale); static String logout() => Intl.message('logout', name: 'logout', locale: Intl.defaultLocale); static String currency() => Intl.message('currency', name: 'currency', locale: Intl.defaultLocale); static String locale() => Intl.message('locale', name: 'locale', locale: Intl.defaultLocale); diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..da40990 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,302 @@ +# Generated by pub +# See http://pub.dartlang.org/doc/glossary.html#lockfile +packages: + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "0.30.0+4" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.7" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + barback: + dependency: transitive + description: + name: barback + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.2+14" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + cli_util: + dependency: transitive + description: + name: cli_util + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2+1" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.14.5" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2+1" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.14.1" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.9+1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + front_end: + dependency: transitive + description: + name: front_end + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0-alpha.4.1" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.5" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.2+2" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.11.3+16" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.1" + image_picker: + dependency: "direct main" + description: + name: image_picker + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.2" + intl_translation: + dependency: "direct main" + description: + name: intl_translation + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.0" + isolate: + dependency: transitive + description: + name: isolate + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + kernel: + dependency: transitive + description: + name: kernel + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0-alpha.1.1" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "0.11.3+1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.1+4" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.1" + path_provider: + dependency: "direct main" + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.2" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + plugin: + dependency: transitive + description: + name: plugin + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0+2" + pool: + dependency: transitive + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.4" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" + sprintf: + dependency: "direct main" + description: + name: sprintf + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" + sqflite: + dependency: "direct main" + description: + name: sqflite + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.2+1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + synchronized: + dependency: transitive + description: + name: synchronized + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.4" + utf: + dependency: transitive + description: + name: utf + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0+3" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7+6" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.13" +sdks: + dart: ">=2.0.0-dev.15.0 <=2.0.0-dev.19.0" diff --git a/pubspec.yaml b/pubspec.yaml index ef8f21a..357839f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,7 +39,7 @@ flutter: - assets/settings_arrow.png - assets/help.png - assets/check.png - - assets/logout.png + - assets/exit.png - assets/activate_token_message_background.png - assets/active_token_message_background.png - assets/faq_expansion_icon.png