Compare commits
10 Commits
d4740ab647
...
f34f020433
Author | SHA1 | Date |
---|---|---|
cgeek | f34f020433 | |
poka | 472a4c1e5d | |
guenoel | c8933fd5be | |
poka | 532a004fd9 | |
poka | 22c59613ee | |
poka | 60427463b5 | |
poka | 83764194e7 | |
pokapow | 721e26ce05 | |
atlasan | f5904e4f88 | |
atlasan | a0a3910adc |
|
@ -212,5 +212,9 @@
|
||||||
"indexer": "Indexer",
|
"indexer": "Indexer",
|
||||||
"anAutoNodeChoosed": "A secure and valid node will be automatically used from a random list.",
|
"anAutoNodeChoosed": "A secure and valid node will be automatically used from a random list.",
|
||||||
"rootWallet": "Root Wallet",
|
"rootWallet": "Root Wallet",
|
||||||
"blockN": "block N°{}"
|
"blockN": "block N°{}",
|
||||||
|
"thisIsNotAGoodCode": "This is not a good code",
|
||||||
|
"youHaveToBeConnectedToValidateChest": "You have to be connected\nto validate your chest",
|
||||||
|
"thisIdentityAlreadyExist": "This identity already exists"
|
||||||
|
|
||||||
}
|
}
|
|
@ -213,5 +213,8 @@
|
||||||
"indexer": "Indexer",
|
"indexer": "Indexer",
|
||||||
"anAutoNodeChoosed": "Se usará automáticamente un nodo seguro y valido desde una lista aleatoria.",
|
"anAutoNodeChoosed": "Se usará automáticamente un nodo seguro y valido desde una lista aleatoria.",
|
||||||
"rootWallet": "Monedero raíz",
|
"rootWallet": "Monedero raíz",
|
||||||
"blockN": "bloque N°{}"
|
"blockN": "bloque N°{}",
|
||||||
|
"thisIsNotAGoodCode": "Este codígo no es valido",
|
||||||
|
"youHaveToBeConnectedToValidateChest": "Tienes que tener conneción\npara validar tu cofre",
|
||||||
|
"thisIdentityAlreadyExist": "Esta identidad ya existe"
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
"amount": "Montant:",
|
"amount": "Montant:",
|
||||||
"choiceOfSourceWallet": "Choix du portefeuille source",
|
"choiceOfSourceWallet": "Choix du portefeuille source",
|
||||||
"extrinsicInProgress": "{} en cours",
|
"extrinsicInProgress": "{} en cours",
|
||||||
"extrinsicValidated": "{} validé !",
|
"extrinsicValidated": "{} validée !",
|
||||||
"fromMinus": "de",
|
"fromMinus": "de",
|
||||||
"toMinus": "vers",
|
"toMinus": "vers",
|
||||||
"deleteThisWallet": "Supprimer ce portefeuille",
|
"deleteThisWallet": "Supprimer ce portefeuille",
|
||||||
|
@ -212,5 +212,8 @@
|
||||||
"indexer": "Indexer",
|
"indexer": "Indexer",
|
||||||
"anAutoNodeChoosed": "Un noeud sûr et valide sera choisi automatiquement parmis une liste aléatoire.",
|
"anAutoNodeChoosed": "Un noeud sûr et valide sera choisi automatiquement parmis une liste aléatoire.",
|
||||||
"rootWallet": "Portefeuille racine",
|
"rootWallet": "Portefeuille racine",
|
||||||
"blockN": "bloc N°{}"
|
"blockN": "bloc N°{}",
|
||||||
|
"thisIsNotAGoodCode": "Ce n'est pas le bon code",
|
||||||
|
"youHaveToBeConnectedToValidateChest": "Vous devez vous connecter à internet\npour valider votre coffre",
|
||||||
|
"thisIdentityAlreadyExist": "Cette identité existe déjà"
|
||||||
}
|
}
|
||||||
|
|
|
@ -215,5 +215,6 @@
|
||||||
"rootWallet": "Portafoglio radice",
|
"rootWallet": "Portafoglio radice",
|
||||||
"blockN": "blocco N°{}",
|
"blockN": "blocco N°{}",
|
||||||
"thisIsNotAGoodCode": "Questo codice non é valido",
|
"thisIsNotAGoodCode": "Questo codice non é valido",
|
||||||
"youHaveToBeConnectedToValidateChest": "Vous devez vous connecter à internet\npour valider votre coffre"
|
"youHaveToBeConnectedToValidateChest": "Vous devez vous connecter à internet\npour valider votre coffre",
|
||||||
|
"thisIdentityAlreadyExist": "Identitá giá esistente"
|
||||||
}
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
7bd0907a4984e1ab7899edce63b2e286e8f3daad5a8e2bff40cee61ca6b036cd
|
|
@ -51,7 +51,7 @@ Future payTest2() async {
|
||||||
await tapKey(keyConfirmPayment);
|
await tapKey(keyConfirmPayment);
|
||||||
spawnBlock(duration: 500);
|
spawnBlock(duration: 500);
|
||||||
|
|
||||||
await waitFor('validé !', timeout: const Duration(seconds: 1));
|
await waitFor('validée !', timeout: const Duration(seconds: 1));
|
||||||
await tapKey(keyCloseTransactionScreen, duration: 0);
|
await tapKey(keyCloseTransactionScreen, duration: 0);
|
||||||
await waitFor('12.14');
|
await waitFor('12.14');
|
||||||
spawnBlock(duration: 500);
|
spawnBlock(duration: 500);
|
||||||
|
@ -64,7 +64,7 @@ Future certifyTest5() async {
|
||||||
await tapKey(keyCertify);
|
await tapKey(keyCertify);
|
||||||
await tapKey(keyConfirm);
|
await tapKey(keyConfirm);
|
||||||
spawnBlock(duration: 500);
|
spawnBlock(duration: 500);
|
||||||
await waitFor('validé !', timeout: const Duration(seconds: 1));
|
await waitFor('validée !', timeout: const Duration(seconds: 1));
|
||||||
await tapKey(keyCloseTransactionScreen);
|
await tapKey(keyCloseTransactionScreen);
|
||||||
await waitFor('Identité créée');
|
await waitFor('Identité créée');
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ Future certifyTest5() async {
|
||||||
await enterText(keyEnterIdentityUsername, test5.name);
|
await enterText(keyEnterIdentityUsername, test5.name);
|
||||||
await tapKey(keyConfirm);
|
await tapKey(keyConfirm);
|
||||||
spawnBlock(duration: 500);
|
spawnBlock(duration: 500);
|
||||||
await waitFor('validé !', timeout: const Duration(seconds: 1));
|
await waitFor('validée !', timeout: const Duration(seconds: 1));
|
||||||
await tapKey(keyCloseTransactionScreen);
|
await tapKey(keyCloseTransactionScreen);
|
||||||
await waitFor('Identité confirmée');
|
await waitFor('Identité confirmée');
|
||||||
humanRead(2);
|
humanRead(2);
|
||||||
|
@ -103,7 +103,7 @@ Future certifyTest5() async {
|
||||||
await tapKey(keyCertify);
|
await tapKey(keyCertify);
|
||||||
await tapKey(keyConfirm);
|
await tapKey(keyConfirm);
|
||||||
spawnBlock(duration: 500);
|
spawnBlock(duration: 500);
|
||||||
await waitFor('validé !', timeout: const Duration(seconds: 1));
|
await waitFor('validée !', timeout: const Duration(seconds: 1));
|
||||||
await tapKey(keyCloseTransactionScreen);
|
await tapKey(keyCloseTransactionScreen);
|
||||||
await waitFor('2');
|
await waitFor('2');
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ Future certifyTest5() async {
|
||||||
await tapKey(keyCertify);
|
await tapKey(keyCertify);
|
||||||
await tapKey(keyConfirm);
|
await tapKey(keyConfirm);
|
||||||
spawnBlock(duration: 500);
|
spawnBlock(duration: 500);
|
||||||
await waitFor('validé !', timeout: const Duration(seconds: 1));
|
await waitFor('validée !', timeout: const Duration(seconds: 1));
|
||||||
await tapKey(keyCloseTransactionScreen);
|
await tapKey(keyCloseTransactionScreen);
|
||||||
await waitFor('Vous devez attendre');
|
await waitFor('Vous devez attendre');
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ void main() async {
|
||||||
await tapKey(keyRevokeIdty);
|
await tapKey(keyRevokeIdty);
|
||||||
await tapKey(keyConfirm);
|
await tapKey(keyConfirm);
|
||||||
spawnBlock(duration: 2000);
|
spawnBlock(duration: 2000);
|
||||||
await waitFor('validé !', timeout: const Duration(seconds: 4));
|
await waitFor('validée !', timeout: const Duration(seconds: 4));
|
||||||
await tapKey(keyCloseTransactionScreen, duration: 0);
|
await tapKey(keyCloseTransactionScreen, duration: 0);
|
||||||
await waitFor('Aucune identité', exactMatch: true);
|
await waitFor('Aucune identité', exactMatch: true);
|
||||||
await sleep();
|
await sleep();
|
||||||
|
@ -60,7 +60,7 @@ void main() async {
|
||||||
// await waitForButtonEnabled(keyConfirm);
|
// await waitForButtonEnabled(keyConfirm);
|
||||||
// await tapKey(keyConfirm, duration: 500);
|
// await tapKey(keyConfirm, duration: 500);
|
||||||
// await spawnBlock(duration: 2000);
|
// await spawnBlock(duration: 2000);
|
||||||
// await waitFor('validé !');
|
// await waitFor('validée !');
|
||||||
// await tapKey(keyCloseTransactionScreen, duration: 0);
|
// await tapKey(keyCloseTransactionScreen, duration: 0);
|
||||||
// await sleep(5000);
|
// await sleep(5000);
|
||||||
}, timeout: testTimeout());
|
}, timeout: testTimeout());
|
||||||
|
|
|
@ -43,7 +43,7 @@ void main() async {
|
||||||
await waitForButtonEnabled(keyConfirm);
|
await waitForButtonEnabled(keyConfirm);
|
||||||
await tapKey(keyConfirm);
|
await tapKey(keyConfirm);
|
||||||
spawnBlock(duration: 2000);
|
spawnBlock(duration: 2000);
|
||||||
await waitFor('validé !');
|
await waitFor('validée !');
|
||||||
await tapKey(keyCloseTransactionScreen, duration: 0);
|
await tapKey(keyCloseTransactionScreen, duration: 0);
|
||||||
|
|
||||||
await tapKey(keyOpenWallet(test6.address), duration: 300);
|
await tapKey(keyOpenWallet(test6.address), duration: 300);
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
@ -66,7 +67,7 @@ Future restoreChest() async {
|
||||||
await enterText(keyPinForm, 'AAAAA', 0);
|
await enterText(keyPinForm, 'AAAAA', 0);
|
||||||
|
|
||||||
// Check if string "Accéder à mon coffre" is present in screen
|
// Check if string "Accéder à mon coffre" is present in screen
|
||||||
await waitFor('Accéder à mon coffre');
|
await waitFor('accessMyChest'.tr());
|
||||||
|
|
||||||
// Go to wallets home
|
// Go to wallets home
|
||||||
await tapKey(keyGoWalletsHome, duration: 0);
|
await tapKey(keyGoWalletsHome, duration: 0);
|
||||||
|
@ -84,7 +85,7 @@ Future restoreChest() async {
|
||||||
await tapKey(keyCopyAddress);
|
await tapKey(keyCopyAddress);
|
||||||
|
|
||||||
// Check if string "Cette adresse a été copié" is present in screen
|
// Check if string "Cette adresse a été copié" is present in screen
|
||||||
await waitFor('Cette adresse a été copié');
|
await waitFor('thisAddressHasBeenCopiedToClipboard'.tr());
|
||||||
|
|
||||||
// Pop screen 2 time to go back home
|
// Pop screen 2 time to go back home
|
||||||
await goBack();
|
await goBack();
|
||||||
|
@ -126,7 +127,7 @@ Future onboardingNewChest() async {
|
||||||
|
|
||||||
final askedWord = mnemonic[askedWordNumber - 1];
|
final askedWord = mnemonic[askedWordNumber - 1];
|
||||||
await enterText(keyInputWord, askedWord);
|
await enterText(keyInputWord, askedWord);
|
||||||
await waitFor('Continuer', exactMatch: true);
|
await waitFor('continue'.tr(), exactMatch: true);
|
||||||
await tapKey(keyGoNext);
|
await tapKey(keyGoNext);
|
||||||
await tapKey(keyGoNext);
|
await tapKey(keyGoNext);
|
||||||
await tapKey(keyGoNext);
|
await tapKey(keyGoNext);
|
||||||
|
@ -143,13 +144,13 @@ Future onboardingNewChest() async {
|
||||||
await enterText(keyPinForm, 'AAAAA', 0);
|
await enterText(keyPinForm, 'AAAAA', 0);
|
||||||
|
|
||||||
// Check if string "Accéder à mon coffre" is present in screen
|
// Check if string "Accéder à mon coffre" is present in screen
|
||||||
await waitFor('Accéder à mon coffre');
|
await waitFor('accessMyChest'.tr());
|
||||||
|
|
||||||
// Go to wallets home
|
// Go to wallets home
|
||||||
await tapKey(keyGoWalletsHome, duration: 0);
|
await tapKey(keyGoWalletsHome, duration: 0);
|
||||||
|
|
||||||
// Check if string "Mon portefeuille co" is present in screen
|
// Check if string "Mon portefeuille co" is present in screen
|
||||||
await waitFor('Mon portefeuille co');
|
await waitFor('currentWallet'.tr());
|
||||||
await waitFor('0.0', exactMatch: true);
|
await waitFor('0.0', exactMatch: true);
|
||||||
// await waitFor('Scanner un');
|
// await waitFor('Scanner un');
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,6 @@
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.0</string>
|
<string>1.0</string>
|
||||||
<key>MinimumOSVersion</key>
|
<key>MinimumOSVersion</key>
|
||||||
<string>8.0</string>
|
<string>11.0</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -0,0 +1,140 @@
|
||||||
|
PODS:
|
||||||
|
- barcode_scan2 (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- MTBBarcodeScanner
|
||||||
|
- SwiftProtobuf
|
||||||
|
- connectivity_plus (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- ReachabilitySwift
|
||||||
|
- Flutter (1.0.0)
|
||||||
|
- flutter_aes_ecb_pkcs5 (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- flutter_inappwebview (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- flutter_inappwebview/Core (= 0.0.1)
|
||||||
|
- OrderedSet (~> 5.0)
|
||||||
|
- flutter_inappwebview/Core (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- OrderedSet (~> 5.0)
|
||||||
|
- image_cropper (0.0.4):
|
||||||
|
- Flutter
|
||||||
|
- TOCropViewController (~> 2.6.1)
|
||||||
|
- image_picker_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- integration_test (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- MTBBarcodeScanner (5.0.11)
|
||||||
|
- OrderedSet (5.0.0)
|
||||||
|
- package_info_plus (0.4.5):
|
||||||
|
- Flutter
|
||||||
|
- path_provider_foundation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- permission_handler_apple (9.0.4):
|
||||||
|
- Flutter
|
||||||
|
- printing (1.0.0):
|
||||||
|
- Flutter
|
||||||
|
- ReachabilitySwift (5.0.0)
|
||||||
|
- Sentry/HybridSDK (7.31.5)
|
||||||
|
- sentry_flutter (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- Sentry/HybridSDK (= 7.31.5)
|
||||||
|
- shared_preferences_foundation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- SwiftProtobuf (1.21.0)
|
||||||
|
- TOCropViewController (2.6.1)
|
||||||
|
- url_launcher_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- webview_flutter_wkwebview (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`)
|
||||||
|
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
|
||||||
|
- Flutter (from `Flutter`)
|
||||||
|
- flutter_aes_ecb_pkcs5 (from `.symlinks/plugins/flutter_aes_ecb_pkcs5/ios`)
|
||||||
|
- flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
|
||||||
|
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
||||||
|
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||||
|
- integration_test (from `.symlinks/plugins/integration_test/ios`)
|
||||||
|
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||||
|
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
|
||||||
|
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||||
|
- printing (from `.symlinks/plugins/printing/ios`)
|
||||||
|
- sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`)
|
||||||
|
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
|
||||||
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||||
|
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- MTBBarcodeScanner
|
||||||
|
- OrderedSet
|
||||||
|
- ReachabilitySwift
|
||||||
|
- Sentry
|
||||||
|
- SwiftProtobuf
|
||||||
|
- TOCropViewController
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
barcode_scan2:
|
||||||
|
:path: ".symlinks/plugins/barcode_scan2/ios"
|
||||||
|
connectivity_plus:
|
||||||
|
:path: ".symlinks/plugins/connectivity_plus/ios"
|
||||||
|
Flutter:
|
||||||
|
:path: Flutter
|
||||||
|
flutter_aes_ecb_pkcs5:
|
||||||
|
:path: ".symlinks/plugins/flutter_aes_ecb_pkcs5/ios"
|
||||||
|
flutter_inappwebview:
|
||||||
|
:path: ".symlinks/plugins/flutter_inappwebview/ios"
|
||||||
|
image_cropper:
|
||||||
|
:path: ".symlinks/plugins/image_cropper/ios"
|
||||||
|
image_picker_ios:
|
||||||
|
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||||
|
integration_test:
|
||||||
|
:path: ".symlinks/plugins/integration_test/ios"
|
||||||
|
package_info_plus:
|
||||||
|
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||||
|
path_provider_foundation:
|
||||||
|
:path: ".symlinks/plugins/path_provider_foundation/ios"
|
||||||
|
permission_handler_apple:
|
||||||
|
:path: ".symlinks/plugins/permission_handler_apple/ios"
|
||||||
|
printing:
|
||||||
|
:path: ".symlinks/plugins/printing/ios"
|
||||||
|
sentry_flutter:
|
||||||
|
:path: ".symlinks/plugins/sentry_flutter/ios"
|
||||||
|
shared_preferences_foundation:
|
||||||
|
:path: ".symlinks/plugins/shared_preferences_foundation/ios"
|
||||||
|
url_launcher_ios:
|
||||||
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
|
webview_flutter_wkwebview:
|
||||||
|
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0
|
||||||
|
connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e
|
||||||
|
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||||
|
flutter_aes_ecb_pkcs5: fb682a7bb13f29cfbb33f88f7e1ed2211eacf5db
|
||||||
|
flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721
|
||||||
|
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
|
||||||
|
image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb
|
||||||
|
integration_test: a1e7d09bd98eca2fc37aefd79d4f41ad37bdbbe5
|
||||||
|
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
|
||||||
|
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
|
||||||
|
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||||
|
path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852
|
||||||
|
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
|
||||||
|
printing: eafa00acb682c0ca029d4d98d0798f55a1e27102
|
||||||
|
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
|
||||||
|
Sentry: 4c9babff9034785067c896fd580b1f7de44da020
|
||||||
|
sentry_flutter: b10ae7a5ddcbc7f04648eeb2672b5747230172f1
|
||||||
|
shared_preferences_foundation: 297b3ebca31b34ec92be11acd7fb0ba932c822ca
|
||||||
|
SwiftProtobuf: afced68785854575756db965e9da52bbf3dc45e7
|
||||||
|
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||||
|
url_launcher_ios: ae1517e5e344f5544fb090b079e11f399dfbe4d2
|
||||||
|
webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
|
||||||
|
|
||||||
|
COCOAPODS: 1.11.3
|
|
@ -13,6 +13,7 @@
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||||
|
FE317B9470ED5615CA3CB087 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0B6BDF717F540F951CBCF3B0 /* Pods_Runner.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
@ -29,12 +30,15 @@
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
0B6BDF717F540F951CBCF3B0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
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>"; };
|
||||||
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>"; };
|
||||||
|
4C6E3D6B3826D9CF6FE74C71 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||||
|
9715B8CB8C4BB6B1549A4B43 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||||
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
@ -42,6 +46,7 @@
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
B7B5EAF367303889DDE6246F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -49,6 +54,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
FE317B9470ED5615CA3CB087 /* Pods_Runner.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -72,6 +78,8 @@
|
||||||
9740EEB11CF90186004384FC /* Flutter */,
|
9740EEB11CF90186004384FC /* Flutter */,
|
||||||
97C146F01CF9000F007C117D /* Runner */,
|
97C146F01CF9000F007C117D /* Runner */,
|
||||||
97C146EF1CF9000F007C117D /* Products */,
|
97C146EF1CF9000F007C117D /* Products */,
|
||||||
|
F45015BCA13948A291A8C8E9 /* Pods */,
|
||||||
|
ADA8E12261C2D5AFC64EEABC /* Frameworks */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
@ -98,6 +106,25 @@
|
||||||
path = Runner;
|
path = Runner;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
ADA8E12261C2D5AFC64EEABC /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
0B6BDF717F540F951CBCF3B0 /* Pods_Runner.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
F45015BCA13948A291A8C8E9 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
B7B5EAF367303889DDE6246F /* Pods-Runner.debug.xcconfig */,
|
||||||
|
9715B8CB8C4BB6B1549A4B43 /* Pods-Runner.release.xcconfig */,
|
||||||
|
4C6E3D6B3826D9CF6FE74C71 /* Pods-Runner.profile.xcconfig */,
|
||||||
|
);
|
||||||
|
name = Pods;
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
|
@ -105,12 +132,14 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
BF832FA7B2681D407FBCCD35 /* [CP] Check Pods Manifest.lock */,
|
||||||
9740EEB61CF901F6004384FC /* Run Script */,
|
9740EEB61CF901F6004384FC /* Run Script */,
|
||||||
97C146EA1CF9000F007C117D /* Sources */,
|
97C146EA1CF9000F007C117D /* Sources */,
|
||||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||||
97C146EC1CF9000F007C117D /* Resources */,
|
97C146EC1CF9000F007C117D /* Resources */,
|
||||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||||
|
C7115DDDD9D931A7B2E38D5D /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -127,7 +156,7 @@
|
||||||
97C146E61CF9000F007C117D /* Project object */ = {
|
97C146E61CF9000F007C117D /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 1020;
|
LastUpgradeCheck = 1300;
|
||||||
ORGANIZATIONNAME = "";
|
ORGANIZATIONNAME = "";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
97C146ED1CF9000F007C117D = {
|
97C146ED1CF9000F007C117D = {
|
||||||
|
@ -197,6 +226,45 @@
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
||||||
};
|
};
|
||||||
|
BF832FA7B2681D407FBCCD35 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
C7115DDDD9D931A7B2E38D5D /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
@ -272,7 +340,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = iphoneos;
|
SUPPORTED_PLATFORMS = iphoneos;
|
||||||
|
@ -295,7 +363,10 @@
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
|
@ -355,7 +426,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
@ -404,7 +475,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = iphoneos;
|
SUPPORTED_PLATFORMS = iphoneos;
|
||||||
|
@ -428,7 +499,10 @@
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
|
@ -456,7 +530,10 @@
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
<Workspace
|
<Workspace
|
||||||
version = "1.0">
|
version = "1.0">
|
||||||
<FileRef
|
<FileRef
|
||||||
location = "group:Runner.xcodeproj">
|
location = "self:">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1020"
|
LastUpgradeVersion = "1300"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|
|
@ -4,4 +4,7 @@
|
||||||
<FileRef
|
<FileRef
|
||||||
location = "group:Runner.xcodeproj">
|
location = "group:Runner.xcodeproj">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|
|
@ -47,5 +47,7 @@
|
||||||
</array>
|
</array>
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||||
<false/>
|
<false/>
|
||||||
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||||
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
|
|
|
@ -253,7 +253,7 @@ Future<QueryResult> _execQuery(
|
||||||
return await client.query(options);
|
return await client.query(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map computeHistoryView(repository, lastDateDelimiter, isDouble) {
|
Map computeHistoryView(repository) {
|
||||||
bool isTody = false;
|
bool isTody = false;
|
||||||
bool isYesterday = false;
|
bool isYesterday = false;
|
||||||
bool isThisWeek = false;
|
bool isThisWeek = false;
|
||||||
|
@ -281,27 +281,26 @@ Map computeHistoryView(repository, lastDateDelimiter, isDouble) {
|
||||||
final yesterdayDate = DateTime(now.year, now.month, now.day - 1);
|
final yesterdayDate = DateTime(now.year, now.month, now.day - 1);
|
||||||
|
|
||||||
if (transactionDate == todayDate && !isTody) {
|
if (transactionDate == todayDate && !isTody) {
|
||||||
dateDelimiter = lastDateDelimiter = "today".tr();
|
dateDelimiter = "today".tr();
|
||||||
isTody = true;
|
isTody = true;
|
||||||
} else if (transactionDate == yesterdayDate && !isYesterday) {
|
} else if (transactionDate == yesterdayDate && !isYesterday) {
|
||||||
dateDelimiter = lastDateDelimiter = "yesterday".tr();
|
dateDelimiter = "yesterday".tr();
|
||||||
isYesterday = true;
|
isYesterday = true;
|
||||||
} else if (weekNumber(date) == weekNumber(now) &&
|
} else if (weekNumber(date) == weekNumber(now) &&
|
||||||
date.year == now.year &&
|
date.year == now.year &&
|
||||||
transactionDate != yesterdayDate &&
|
transactionDate != yesterdayDate &&
|
||||||
transactionDate != todayDate &&
|
transactionDate != todayDate &&
|
||||||
!isThisWeek) {
|
!isThisWeek) {
|
||||||
dateDelimiter = lastDateDelimiter = "thisWeek".tr();
|
dateDelimiter = "thisWeek".tr();
|
||||||
isThisWeek = true;
|
isThisWeek = true;
|
||||||
} else if (lastDateDelimiter != "${monthsInYear[date.month]} ${date.year}" &&
|
} else if (dateDelimiter != "${monthsInYear[date.month]} ${date.year}" &&
|
||||||
transactionDate != todayDate &&
|
transactionDate != todayDate &&
|
||||||
transactionDate != yesterdayDate &&
|
transactionDate != yesterdayDate &&
|
||||||
!(weekNumber(date) == weekNumber(now) && date.year == now.year)) {
|
!(weekNumber(date) == weekNumber(now) && date.year == now.year)) {
|
||||||
if (date.year == now.year) {
|
if (date.year == now.year) {
|
||||||
dateDelimiter = lastDateDelimiter = monthsInYear[date.month];
|
dateDelimiter = monthsInYear[date.month];
|
||||||
} else {
|
} else {
|
||||||
dateDelimiter =
|
dateDelimiter = "${monthsInYear[date.month]} ${date.year}";
|
||||||
lastDateDelimiter = "${monthsInYear[date.month]} ${date.year}";
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
isDelimiter = false;
|
isDelimiter = false;
|
||||||
|
|
|
@ -271,7 +271,6 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
// Needed for bad encoding of UTF-8
|
// Needed for bad encoding of UTF-8
|
||||||
word = word.replaceAll('é', 'é');
|
word = word.replaceAll('é', 'é');
|
||||||
word = word.replaceAll('è', 'è');
|
word = word.replaceAll('è', 'è');
|
||||||
// TODO: what about á à ó ò í ì ú ù ... ? make a function to clean data
|
|
||||||
|
|
||||||
int nbrMatch = 0;
|
int nbrMatch = 0;
|
||||||
if (bip39Words(appLang).contains(word.toLowerCase())) {
|
if (bip39Words(appLang).contains(word.toLowerCase())) {
|
||||||
|
@ -292,7 +291,6 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
// Needed for bad encoding of UTF-8
|
// Needed for bad encoding of UTF-8
|
||||||
word = word.replaceAll('é', 'é');
|
word = word.replaceAll('é', 'é');
|
||||||
word = word.replaceAll('è', 'è');
|
word = word.replaceAll('è', 'è');
|
||||||
// TODO: what about á à ó ò í ì ú ù ... ? make a function to clean data
|
|
||||||
if (!bip39Words(appLang).contains(word.toLowerCase())) {
|
if (!bip39Words(appLang).contains(word.toLowerCase())) {
|
||||||
isValid = false;
|
isValid = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,10 +96,19 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future _getStorageConst(String call) async {
|
Future<int> _getStorageConst(String call) async {
|
||||||
return (await sdk.webView!
|
final result = (await sdk.webView!
|
||||||
.evalJavascript('api.consts.$call', wrapPromise: false) ??
|
.evalJavascript('api.consts.$call', wrapPromise: false) ??
|
||||||
[null])[0];
|
[null])[0];
|
||||||
|
|
||||||
|
return checkInt(result) ?? 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int? checkInt(dynamic value) {
|
||||||
|
if (value is int) return value;
|
||||||
|
if (value is double) return value.toInt();
|
||||||
|
if (value is String) return int.tryParse(value);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<TxSenderData> _setSender(String address) async {
|
Future<TxSenderData> _setSender(String address) async {
|
||||||
|
@ -396,7 +405,7 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
currencyParameters['certValidityPeriod'] =
|
currencyParameters['certValidityPeriod'] =
|
||||||
await _getStorageConst('cert.validityPeriod.words');
|
await _getStorageConst('cert.validityPeriod.words');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log.i('error while getting storageVals (network?)');
|
log.i('error while getting storageVals (network?) :: $e');
|
||||||
}
|
}
|
||||||
log.i('currencyParameters: $currencyParameters');
|
log.i('currencyParameters: $currencyParameters');
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,7 +178,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
Consumer<WalletOptionsProvider>(builder: (context, wOptions, _) {
|
Consumer<WalletOptionsProvider>(builder: (context, wOptions, _) {
|
||||||
return Text(idtyExist ? 'Cette identité existe déjà' : '',
|
return Text(idtyExist ? "thisIdentityAlreadyExist".tr() : '',
|
||||||
style: TextStyle(color: Colors.red[500]));
|
style: TextStyle(color: Colors.red[500]));
|
||||||
})
|
})
|
||||||
]),
|
]),
|
||||||
|
|
|
@ -30,7 +30,7 @@ class WalletsProfilesProvider with ChangeNotifier {
|
||||||
try {
|
try {
|
||||||
barcode = await BarcodeScanner.scan();
|
barcode = await BarcodeScanner.scan();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log.e(e);
|
log.e("BarcodeScanner ERR: $e");
|
||||||
return 'false';
|
return 'false';
|
||||||
}
|
}
|
||||||
if (isAddress(barcode.rawContent)) {
|
if (isAddress(barcode.rawContent)) {
|
||||||
|
@ -144,6 +144,15 @@ class WalletsProfilesProvider with ChangeNotifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
snackMessage(context,
|
||||||
|
{required String message, int duration = 2, double fontSize = 16}) {
|
||||||
|
final snackBar = SnackBar(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
content: Text(message, style: TextStyle(fontSize: fontSize)),
|
||||||
|
duration: Duration(seconds: duration));
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(snackBar);
|
||||||
|
}
|
||||||
|
|
||||||
snackCopyKey(context) {
|
snackCopyKey(context) {
|
||||||
final snackBar = SnackBar(
|
final snackBar = SnackBar(
|
||||||
padding: const EdgeInsets.all(20),
|
padding: const EdgeInsets.all(20),
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import 'package:bubble/bubble.dart';
|
import 'package:bubble/bubble.dart';
|
||||||
import 'package:connectivity_plus/connectivity_plus.dart';
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/models/chest_data.dart';
|
import 'package:gecko/models/chest_data.dart';
|
||||||
import 'package:gecko/models/g1_wallets_list.dart';
|
import 'package:gecko/models/g1_wallets_list.dart';
|
||||||
|
@ -24,7 +25,6 @@ import 'package:gecko/screens/onBoarding/1.dart';
|
||||||
import 'package:gecko/screens/search.dart';
|
import 'package:gecko/screens/search.dart';
|
||||||
import 'package:gecko/screens/settings.dart';
|
import 'package:gecko/screens/settings.dart';
|
||||||
import 'package:hive_flutter/hive_flutter.dart';
|
import 'package:hive_flutter/hive_flutter.dart';
|
||||||
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:gecko/screens/my_contacts.dart';
|
import 'package:gecko/screens/my_contacts.dart';
|
||||||
|
|
||||||
|
@ -189,8 +189,22 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||||
),
|
),
|
||||||
])),
|
])),
|
||||||
Align(
|
Align(
|
||||||
alignment: FractionalOffset.bottomCenter,
|
alignment: FractionalOffset.bottomCenter,
|
||||||
child: Text('Ğecko v$appVersion')),
|
child: InkWell(
|
||||||
|
key: keyCopyAddress,
|
||||||
|
splashColor: orangeC,
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
child: Text('Ğecko v$appVersion')),
|
||||||
|
onTap: () {
|
||||||
|
Clipboard.setData(
|
||||||
|
ClipboardData(text: 'Ğecko v$appVersion'));
|
||||||
|
snackMessage(context,
|
||||||
|
message:
|
||||||
|
'Le numéro de version de Ğecko a été copié dans votre presse papier',
|
||||||
|
duration: 4);
|
||||||
|
}),
|
||||||
|
),
|
||||||
const SizedBox(height: 20)
|
const SizedBox(height: 20)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -117,7 +117,7 @@ class UnlockingWallet extends StatelessWidget {
|
||||||
if (!myWalletProvider.isPinValid &&
|
if (!myWalletProvider.isPinValid &&
|
||||||
!myWalletProvider.isPinLoading)
|
!myWalletProvider.isPinLoading)
|
||||||
Text(
|
Text(
|
||||||
"Ce n'est pas le bon code".tr(),
|
"thisIsNotAGoodCode".tr(),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
color: Colors.red, fontWeight: FontWeight.w500),
|
color: Colors.red, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
|
|
|
@ -105,7 +105,7 @@ class OnboardingStepTen extends StatelessWidget {
|
||||||
visible: !myWalletProvider.isPinValid &&
|
visible: !myWalletProvider.isPinValid &&
|
||||||
!myWalletProvider.isPinLoading,
|
!myWalletProvider.isPinLoading,
|
||||||
child: Text(
|
child: Text(
|
||||||
"Ce n'est pas le bon code".tr(),
|
"thisIsNotAGoodCode".tr(),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
color: Colors.red, fontWeight: FontWeight.w500),
|
color: Colors.red, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
|
@ -117,10 +117,10 @@ class OnboardingStepTen extends StatelessWidget {
|
||||||
? pinForm(context, walletOptions, pinLenght, 1, 2)
|
? pinForm(context, walletOptions, pinLenght, 1, 2)
|
||||||
: Row(
|
: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: const [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Vous devez vous connecter à internet\npour valider votre coffre',
|
"youHaveToBeConnectedToValidateChest".tr(),
|
||||||
style: TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
color: Colors.redAccent,
|
color: Colors.redAccent,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
|
|
|
@ -42,6 +42,8 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
String actionName = '';
|
String actionName = '';
|
||||||
final bool isUdUnit = configBox.get('isUdUnit') ?? false;
|
final bool isUdUnit = configBox.get('isUdUnit') ?? false;
|
||||||
|
|
||||||
|
log.d("$transType :: $actionName :: $result");
|
||||||
|
|
||||||
switch (transType) {
|
switch (transType) {
|
||||||
case 'pay':
|
case 'pay':
|
||||||
{
|
{
|
||||||
|
@ -94,7 +96,6 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
{
|
{
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
// jsonResult = json.decode(_result);
|
// jsonResult = json.decode(_result);
|
||||||
log.d(result);
|
|
||||||
if (result.contains('blockHash: ')) {
|
if (result.contains('blockHash: ')) {
|
||||||
isValid = true;
|
isValid = true;
|
||||||
resultText = 'extrinsicValidated'.tr(args: [actionName]);
|
resultText = 'extrinsicValidated'.tr(args: [actionName]);
|
||||||
|
@ -110,7 +111,7 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
} else {
|
} else {
|
||||||
exception = exceptionSplit[0];
|
exception = exceptionSplit[0];
|
||||||
}
|
}
|
||||||
// log.d('expection: $_exception');
|
log.d('expection: $exceptionSplit');
|
||||||
switch (exception) {
|
switch (exception) {
|
||||||
case 'cert.NotRespectCertPeriod':
|
case 'cert.NotRespectCertPeriod':
|
||||||
case 'identity.CreatorNotAllowedToCreateIdty':
|
case 'identity.CreatorNotAllowedToCreateIdty':
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
// import 'dart:io';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
// import 'package:logger/logger.dart';
|
||||||
|
|
||||||
|
// --- THIS IS WIP ---
|
||||||
|
|
||||||
|
class GeckoStyles {
|
||||||
|
TextStyle successBold(List<String> pars) {
|
||||||
|
return TextStyle(
|
||||||
|
color: Colors.green.shade600,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextStyle success() {
|
||||||
|
return TextStyle(color: Colors.green.shade600);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextStyle error500(List<String> pars) {
|
||||||
|
return const TextStyle(
|
||||||
|
fontSize: 20,
|
||||||
|
color: Colors.redAccent,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextStyle error() {
|
||||||
|
return const TextStyle(fontSize: 20, color: Colors.redAccent);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextStyle builder(Map<String, dynamic> pars) {
|
||||||
|
// pars["hola"] = 20;
|
||||||
|
// //int a = double.tryParse(source) pars["hola"];
|
||||||
|
// return const TextStyle( fontSize: double.tryParse(pars["hola"]),
|
||||||
|
// color: Colors.redAccent,
|
||||||
|
// fontWeight: FontWeight.w500
|
||||||
|
// );
|
||||||
|
return const TextStyle();
|
||||||
|
}
|
||||||
|
}
|
|
@ -141,9 +141,8 @@ class HistoryQuery extends StatelessWidget {
|
||||||
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
|
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
|
||||||
int keyID = 0;
|
int keyID = 0;
|
||||||
const double avatarSize = 200;
|
const double avatarSize = 200;
|
||||||
String? lastDateDelimiter;
|
|
||||||
bool? isDouble;
|
|
||||||
bool isMigrationPassed = false;
|
bool isMigrationPassed = false;
|
||||||
|
List<String> pastDelimiters = [];
|
||||||
|
|
||||||
return duniterIndexer.transBC == null
|
return duniterIndexer.transBC == null
|
||||||
? Column(children: <Widget>[
|
? Column(children: <Widget>[
|
||||||
|
@ -156,11 +155,9 @@ class HistoryQuery extends StatelessWidget {
|
||||||
: Column(children: <Widget>[
|
: Column(children: <Widget>[
|
||||||
Column(
|
Column(
|
||||||
children: duniterIndexer.transBC!.map((repository) {
|
children: duniterIndexer.transBC!.map((repository) {
|
||||||
final answer =
|
final answer = computeHistoryView(repository);
|
||||||
computeHistoryView(repository, lastDateDelimiter, isDouble);
|
pastDelimiters.add(answer['dateDelimiter']);
|
||||||
isDouble = lastDateDelimiter == answer['dateDelimiter'] ||
|
|
||||||
answer['dateDelimiter'] == '';
|
|
||||||
lastDateDelimiter = answer['dateDelimiter'];
|
|
||||||
bool isMigrationTime = false;
|
bool isMigrationTime = false;
|
||||||
if (answer['isMigrationTime'] && !isMigrationPassed) {
|
if (answer['isMigrationTime'] && !isMigrationPassed) {
|
||||||
isMigrationPassed = true;
|
isMigrationPassed = true;
|
||||||
|
@ -190,7 +187,12 @@ class HistoryQuery extends StatelessWidget {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (!isDouble!)
|
// if ((countsDelimiter[answer['dateDelimiter']] ?? 0) >= 1)
|
||||||
|
|
||||||
|
if (pastDelimiters.length == 1 ||
|
||||||
|
pastDelimiters.length >= 2 &&
|
||||||
|
!(pastDelimiters[pastDelimiters.length - 2] ==
|
||||||
|
answer['dateDelimiter']))
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 30),
|
padding: const EdgeInsets.symmetric(vertical: 30),
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
|
@ -75,7 +75,7 @@ class SearchIdentityQuery extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
searchProvider.resultLenght = identities.length;
|
searchProvider.resultLenght = identities.length;
|
||||||
// TODO: Find a way to reload a provider here, in Widget build...
|
// TODO: Find a way to reload a provider here, in Widget build... riverpod refacto needed...
|
||||||
|
|
||||||
double avatarSize = 55;
|
double avatarSize = 55;
|
||||||
return Expanded(
|
return Expanded(
|
||||||
|
|
Loading…
Reference in New Issue