From d56bad22d039439dc7f888062c14cbffaa2d4dda Mon Sep 17 00:00:00 2001 From: Zachary Atkins Date: Sun, 11 Apr 2021 00:59:30 -0500 Subject: [PATCH] updates to allow server communication --- loc_chain_app/android/app/build.gradle | 2 +- loc_chain_app/lib/main.dart | 4 +- loc_chain_app/lib/pages/home.dart | 2 + .../lib/util/transaction_manager.dart | 48 +++++++++++++++++++ loc_chain_app/pubspec.lock | 42 ++++++---------- loc_chain_app/pubspec.yaml | 3 +- 6 files changed, 69 insertions(+), 32 deletions(-) diff --git a/loc_chain_app/android/app/build.gradle b/loc_chain_app/android/app/build.gradle index 0ae2f5d..1a18ea0 100644 --- a/loc_chain_app/android/app/build.gradle +++ b/loc_chain_app/android/app/build.gradle @@ -35,7 +35,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.loc_chain_app" - minSdkVersion 16 + minSdkVersion 21 targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/loc_chain_app/lib/main.dart b/loc_chain_app/lib/main.dart index b3dbc08..7b94e3e 100644 --- a/loc_chain_app/lib/main.dart +++ b/loc_chain_app/lib/main.dart @@ -5,6 +5,7 @@ import 'package:loc_chain_app/widgets/navbar.dart'; import 'package:flutter_udid/flutter_udid.dart'; void main() async { + WidgetsFlutterBinding.ensureInitialized(); runApp(App()); (await SharedPreferences.getInstance()) .setString('userName', await FlutterUdid.consistentUdid); @@ -14,11 +15,10 @@ class App extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { - Connect.stop(); Connect.start(); return MaterialApp( - title: 'Flutter Demo', + title: 'Loc-Chain', theme: ThemeData( primarySwatch: Colors.lightBlue, ), diff --git a/loc_chain_app/lib/pages/home.dart b/loc_chain_app/lib/pages/home.dart index 61e76b4..5d0d6c3 100644 --- a/loc_chain_app/lib/pages/home.dart +++ b/loc_chain_app/lib/pages/home.dart @@ -78,4 +78,6 @@ class _HomePageState extends State { content: Text(a.toString()), )); } + + Future reportExposure() async {} } diff --git a/loc_chain_app/lib/util/transaction_manager.dart b/loc_chain_app/lib/util/transaction_manager.dart index d491838..6f2eb1c 100644 --- a/loc_chain_app/lib/util/transaction_manager.dart +++ b/loc_chain_app/lib/util/transaction_manager.dart @@ -1,3 +1,4 @@ +import 'package:flutter/material.dart'; import 'package:flutter_udid/flutter_udid.dart'; import 'package:loc_chain_app/util/keyfile_manager.dart'; @@ -19,3 +20,50 @@ class Transaction { Future generateP2PPayload(String otherUserId) async => "${await generateHash(otherUserId)}:${KeyFileManager.keyPair.publicKey}"; } + +class EncounterTransaction { + EncounterTransaction({ + required this.combinedHash, + required this.encodedGPSLocation, + required this.partnerPublicKey, + required this.validationSignature, + }) : timestamp = "${DateTime.now().millisecondsSinceEpoch}"; + final String combinedHash; + final String timestamp; + final String encodedGPSLocation; + final String partnerPublicKey; + final String validationSignature; + + EncounterTransaction.fromJson(Map json) + : combinedHash = json['combinedHash'], + timestamp = json['timestamp'], + encodedGPSLocation = json['encodedGPSLocation'], + partnerPublicKey = json['partnerPublicKey'], + validationSignature = json['validationSignature']; + + Map toJson() => { + "combinedHash": combinedHash, + "timestamp": timestamp, + "encodedGPSLocation": encodedGPSLocation, + "partnerPublicKey": partnerPublicKey, + "validationSignature": validationSignature, + }; +} + +class ExposureTransaction { + final String clientID; + final String timestamp; + + ExposureTransaction({ + required this.clientID, + }) : timestamp = "${DateTime.now().millisecondsSinceEpoch}"; + + ExposureTransaction.fromJson(Map json) + : clientID = json['clientID'], + timestamp = json['timestamp']; + + Map toJson() => { + "clientID": clientID, + "timestamp": timestamp, + }; +} diff --git a/loc_chain_app/pubspec.lock b/loc_chain_app/pubspec.lock index 9bb051f..8c6eb02 100644 --- a/loc_chain_app/pubspec.lock +++ b/loc_chain_app/pubspec.lock @@ -92,34 +92,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "6.1.0" - firebase_core: - dependency: transitive - description: - name: firebase_core - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.3" - firebase_core_platform_interface: - dependency: transitive - description: - name: firebase_core_platform_interface - url: "https://pub.dartlang.org" - source: hosted - version: "4.0.0" - firebase_core_web: - dependency: transitive - description: - name: firebase_core_web - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.2" - firebase_database: - dependency: "direct main" - description: - name: firebase_database - url: "https://pub.dartlang.org" - source: hosted - version: "6.1.2" fixnum: dependency: transitive description: @@ -156,6 +128,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.6.3" + loading_animations: + dependency: "direct main" + description: + name: loading_animations + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" matcher: dependency: transitive description: @@ -177,6 +156,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.1" + openpgp: + dependency: "direct main" + description: + name: openpgp + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0-nullsafety.0" path: dependency: transitive description: diff --git a/loc_chain_app/pubspec.yaml b/loc_chain_app/pubspec.yaml index c33e163..4397387 100644 --- a/loc_chain_app/pubspec.yaml +++ b/loc_chain_app/pubspec.yaml @@ -34,7 +34,8 @@ dependencies: sqflite: ^2.0.0+3 dbcrypt: ^2.0.0 flutter_udid: ^2.0.0 - firebase_database: ^6.1.2 + loading_animations: ^2.2.0 + openpgp: ^2.0.0-nullsafety.0 dev_dependencies: flutter_test: