diff --git a/ios/Podfile.lock b/ios/Podfile.lock index da1c4e5..2258af7 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -40,6 +40,9 @@ PODS: - DKImagePickerController/PhotoGallery - Flutter - Flutter (1.0.0) + - fluttertoast (0.0.2): + - Flutter + - Toast - path_provider (0.0.1): - Flutter - "permission_handler (5.1.0+2)": @@ -50,12 +53,14 @@ PODS: - shared_preferences (0.0.1): - Flutter - SwiftyGif (5.4.0) + - Toast (4.0.0) DEPENDENCIES: - agent_dart (from `.symlinks/plugins/agent_dart/ios`) - agora_rtc_engine (from `.symlinks/plugins/agora_rtc_engine/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `Flutter`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) @@ -67,6 +72,7 @@ SPEC REPOS: - DKPhotoGallery - SDWebImage - SwiftyGif + - Toast EXTERNAL SOURCES: agent_dart: @@ -77,6 +83,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/file_picker/ios" Flutter: :path: Flutter + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" permission_handler: @@ -92,11 +100,13 @@ SPEC CHECKSUMS: DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1 Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58 path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d SwiftyGif: 5d4af95df24caf1c570dbbcb32a3b8a0763bc6d7 + Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index e018f49..cf6cf0a 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -304,7 +304,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = arm64; + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -360,9 +360,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.0.1; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1.0.2; DEVELOPMENT_TEAM = M95BRQPU3N; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -372,7 +372,8 @@ ); PRODUCT_BUNDLE_IDENTIFIER = org.partyboard.pabd; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "partyBoard-prod"; + PROVISIONING_PROFILE_SPECIFIER = ""; + STRIP_STYLE = "non-global"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -385,7 +386,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = arm64; + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -442,7 +443,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = arm64; + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -500,9 +501,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.0.1; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1.0.2; DEVELOPMENT_TEAM = M95BRQPU3N; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -512,7 +513,8 @@ ); PRODUCT_BUNDLE_IDENTIFIER = org.partyboard.pabd; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "partyBoard-prod"; + PROVISIONING_PROFILE_SPECIFIER = ""; + STRIP_STYLE = "non-global"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -530,9 +532,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.0.1; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1.0.2; DEVELOPMENT_TEAM = M95BRQPU3N; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -543,7 +545,8 @@ ONLY_ACTIVE_ARCH = NO; PRODUCT_BUNDLE_IDENTIFIER = org.partyboard.pabd; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "partyBoard-prod"; + PROVISIONING_PROFILE_SPECIFIER = ""; + STRIP_STYLE = "non-global"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/lib/codepage.dart b/lib/codepage.dart index 48af93c..9fe1bbd 100644 --- a/lib/codepage.dart +++ b/lib/codepage.dart @@ -1,6 +1,7 @@ import 'dart:typed_data'; import 'package:agent_dart/agent_dart.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:partyboard_client/ICP/agent_factory.dart'; import 'package:partyboard_client/ICP/nais.dart'; import 'package:partyboard_client/loginpage.dart'; @@ -15,7 +16,7 @@ final TextEditingController myController = TextEditingController(); class CodePage extends StatelessWidget { CodePage({Key? key}) : super(key: key); - + @override Widget build(BuildContext context) { return Scaffold( @@ -53,21 +54,19 @@ class CodePage extends StatelessWidget { height: 10, ), Container( - child: GridView.count( - crossAxisCount: 4, - shrinkWrap: true, - children: new List.generate(16, (index) { - return new GridTile( - child: new Card( + child: GridView.count( + crossAxisCount: 4, + shrinkWrap: true, + children: new List.generate(16, (index) { + return new GridTile( + child: new Card( color: Colors.blue.shade200, child: new Center( child: new Text('$index'), - ) - ), - ); - }), - ) - ), + )), + ); + }), + )), ], ), ElevatedButton( @@ -79,34 +78,7 @@ class CodePage extends StatelessWidget { borderRadius: BorderRadius.circular(32.0)), minimumSize: Size(150, 50), //////// HERE ), - onPressed: () async { - var popup = showProgress(context, "PartyBoard Citizen Apply"); - Uint8List seed = myController.text.substring(0, 64).toU8a(); - var _identity = Ed25519KeyIdentity.generate(seed); - popup.setValue(0.2); - popup.setDetailLabel('Progress ${(0.2 * 100).toInt()}%..'); - var _nais = NaisAgentFactory.create( - canisterId: naisCanisterId, - url: replicaUrl, - idl: naisIdl, - identity: _identity, - ).hook(Nais()); - var lifeId = await _nais.applyCitizen(myController.text); - - popup.setValue(0.6); - popup.setDetailLabel('Progress ${(0.6 * 100).toInt()}%..'); - var pkStr = PemCodec(PemLabel.privateKey).encode(_identity.getKeyPair().secretKey); - final SharedPreferences prefs = await SharedPreferences.getInstance(); - prefs.setString(lifePrefsKey, lifeId.toText()); - prefs.setString(pkeyPrefsKey, pkStr); - popup.setValue(1.0); - popup.setDetailLabel('Progress ${(1.0 * 100).toInt()}%..'); - - Navigator.of(context).push( - MaterialPageRoute( - builder: (c) => Scaffold(body: LoginPage())), - ); - }, + onPressed: () => joinClicked(context), child: Text( '->', style: TextStyle(fontSize: buttonFontSize), @@ -118,4 +90,33 @@ class CodePage extends StatelessWidget { ), ); } + + void joinClicked(BuildContext context) async { + try { + var popup = showProgress(context, "PartyBoard Citizen Apply"); + Uint8List seed = myController.text.substring(0, 64).toU8a(); + var _identity = Ed25519KeyIdentity.generate(seed); + popup.setValue(0.2); + popup.setDetailLabel('Progress ${(0.2 * 100).toInt()}%..'); + var _nais = NaisAgentFactory.create( + canisterId: naisCanisterId, + url: replicaUrl, + idl: naisIdl, + identity: _identity, + ).hook(Nais()); + var lifeId = await _nais.applyCitizen(myController.text); + popup.setValue(0.6); + popup.setDetailLabel('Progress ${(0.6 * 100).toInt()}%..'); + var pkStr = PemCodec(PemLabel.privateKey) + .encode(_identity.getKeyPair().secretKey); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString(lifePrefsKey, lifeId.toText()); + prefs.setString(pkeyPrefsKey, pkStr); + popup.setValue(1.0); + popup.setDetailLabel('Progress ${(1.0 * 100).toInt()}%..'); + Navigator.of(context).push( + MaterialPageRoute(builder: (c) => Scaffold(body: LoginPage())), + ); + } catch (e) {} + } } diff --git a/lib/generated_plugin_registrant.dart b/lib/generated_plugin_registrant.dart index 4384940..dea33d2 100644 --- a/lib/generated_plugin_registrant.dart +++ b/lib/generated_plugin_registrant.dart @@ -5,6 +5,7 @@ // ignore_for_file: lines_longer_than_80_chars import 'package:file_picker/src/file_picker_web.dart'; +import 'package:fluttertoast/fluttertoast_web.dart'; import 'package:shared_preferences_web/shared_preferences_web.dart'; import 'package:flutter_web_plugins/flutter_web_plugins.dart'; @@ -12,6 +13,7 @@ import 'package:flutter_web_plugins/flutter_web_plugins.dart'; // ignore: public_member_api_docs void registerPlugins(Registrar registrar) { FilePickerWeb.registerWith(registrar); + FluttertoastWebPlugin.registerWith(registrar); SharedPreferencesPlugin.registerWith(registrar); registrar.registerMessageHandler(); } diff --git a/pubspec.lock b/pubspec.lock index 5995489..5fd7ef1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -210,6 +210,13 @@ packages: description: flutter source: sdk version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + url: "https://pub.flutter-io.cn" + source: hosted + version: "8.0.8" font_awesome_flutter: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index a549ab0..80d0046 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,6 +41,7 @@ dependencies: agora_rtc_engine: ^4.0.7 permission_handler: ^8.1.6 http: ^0.13.0 + fluttertoast: ^8.0.8 dev_dependencies: flutter_test: