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 ca879f2..9c48946 100644 --- a/android/app/src/main/java/com/dinect/checker/MainActivity.java +++ b/android/app/src/main/java/com/dinect/checker/MainActivity.java @@ -19,6 +19,7 @@ import android.Manifest; import android.content.pm.PackageManager; import android.support.v4.content.ContextCompat; import android.support.v4.app.ActivityCompat; +import android.content.pm.PackageInfo; import java.util.*; @@ -99,12 +100,25 @@ public class MainActivity extends FlutterActivity { Log.d("kifio", call.method); finish(); break; + case "getVersionName": + result.success(getVersion()); + break; default: result.notImplemented(); break; } } + private String getVersion() { + try { + PackageInfo pInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0); + return pInfo.versionName; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return ""; + } + } + private String getLanguage() { List availableLanguages = Arrays.asList("ru", "en"); if (availableLanguages.contains(Locale.getDefault().getLanguage())) { @@ -233,6 +247,10 @@ public class MainActivity extends FlutterActivity { } + public void getVersionName() { + + } + public void setStrings() { } diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9e2dd10..a099549 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3,6 +3,8 @@ PODS: - FMDB (2.7.2): - FMDB/standard (= 2.7.2) - FMDB/standard (2.7.2) + - image_picker (0.0.1): + - Flutter - path_provider (0.0.1): - Flutter - sqflite (0.0.1): @@ -14,6 +16,7 @@ PODS: DEPENDENCIES: - Flutter (from `/Users/kifio/flutter/bin/cache/artifacts/engine/ios`) + - image_picker (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios`) - path_provider (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios`) - sqflite (from `/Users/kifio/.pub-cache/hosted/pub.dartlang.org/sqflite-0.8.2/ios`) - ZXingObjC (~> 3.2.2) @@ -21,6 +24,8 @@ DEPENDENCIES: EXTERNAL SOURCES: Flutter: :path: /Users/kifio/flutter/bin/cache/artifacts/engine/ios + image_picker: + :path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/image_picker-0.1.5/ios path_provider: :path: /Users/kifio/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.2/ios sqflite: @@ -29,6 +34,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Flutter: 9d0fac939486c9aba2809b7982dfdbb47a7b0296 FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa + image_picker: ee00aab0487cedc80a304085219503cc6d0f2e22 path_provider: 09407919825bfe3c2deae39453b7a5b44f467873 sqflite: edb0e4df7640c26fea6a107c21ed1542219e761a ZXingObjC: 2c95a0dc52daac69b23ec78fad8fa2fec05f8981 diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 69618bb..494e68f 100644 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -98,19 +98,21 @@ [controller presentViewController:modalViewController animated:YES completion:nil]; } else if ([@"isOnline" isEqualToString:call.method]) { result(@YES); - } else if ([@"getSupportPhone" isEqualToString:call.method]) { + } else if ([@"getSupportPhone" isEqualToString:call.method]) { result(buildSettings[@"supportPhone"]); } else if ([@"getSupportUrl" isEqualToString:call.method]) { result(buildSettings[@"supportUrl"]); - } else if ([@"getEndpoint" isEqualToString:call.method]) { + } else if ([@"getEndpoint" isEqualToString:call.method]) { result(buildSettings[@"endPoint"]); - } else if ([@"getAppToken" isEqualToString:call.method]) { + } else if ([@"getAppToken" isEqualToString:call.method]) { result(buildSettings[@"appToken"]); - } else if ([@"getAppTitle" isEqualToString:call.method]) { + } else if ([@"getAppTitle" isEqualToString:call.method]) { result(buildSettings[@"appTitle"]); - } else if ([@"showBonus" isEqualToString:call.method]) { + } else if ([@"showBonus" isEqualToString:call.method]) { result(buildSettings[@"showBonus"]); - } else { + } else if ([@"getVersionName" isEqualToString:call.method]) { + result([[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"]); + } else { result(FlutterMethodNotImplemented); } diff --git a/lib/screens/purchase.dart b/lib/screens/purchase.dart index 6c86a85..3c40b6c 100644 --- a/lib/screens/purchase.dart +++ b/lib/screens/purchase.dart @@ -386,6 +386,9 @@ class PurchaseScreenState extends BaseState { } if (purchase.containsKey('errors')) { + setState(() { + loading = false; + }); List errors = purchase['errors']; purchaseInProgress = false; apiErrorAlert(errors[0]); diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 3bb12a3..3491441 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -39,6 +39,7 @@ class SettingsState extends BaseState { ]; bool returnToScanner; + String versionName = ""; bool isAutomaticallyImplyLeading() => true; @@ -46,12 +47,14 @@ class SettingsState extends BaseState { this.returnToScanner = returnToScanner; } - @override - void initState() { - super.initState(); - } - @override Widget build(BuildContext ctx) { + if (this.versionName == "") { + platform.invokeMethod('getVersionName').then((versionName) { + setState(() { + this.versionName = versionName; + }); + }); + } // TODO: Перенести в initStater helper.getSettings(true).then((info) { setState(() { @@ -204,6 +207,6 @@ class SettingsState extends BaseState { @override String getTitle() { - return StringsLocalization.settings(); + return StringsLocalization.settings() + " ($versionName)"; } }