Documentation, Basic Login Workflow
This commit is contained in:
@@ -24,7 +24,6 @@ class AppComponentState extends State<AppComponent> {
|
||||
|
||||
@override
|
||||
void dispose() async {
|
||||
// Log.info('dispose');
|
||||
super.dispose();
|
||||
await _application.onTerminate();
|
||||
}
|
||||
|
||||
@@ -3,13 +3,13 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:imagini/screens/home_screen.dart';
|
||||
import 'package:imagini/screens/login_screen.dart';
|
||||
import 'package:imagini/screens/splash_screen.dart';
|
||||
// import 'package:imagini/screens/splash_screen.dart';
|
||||
|
||||
var splashHandler = new Handler(
|
||||
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
|
||||
return SplashScreen();
|
||||
}
|
||||
);
|
||||
// var splashHandler = new Handler(
|
||||
// handlerFunc: (BuildContext context, Map<String, List<String>> params) {
|
||||
// return SplashScreen();
|
||||
// }
|
||||
// );
|
||||
|
||||
var loginHandler = new Handler(
|
||||
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
|
||||
@@ -42,7 +42,7 @@ class AppRoutes {
|
||||
return;
|
||||
}
|
||||
);
|
||||
router.define(SplashScreen.PATH, handler: splashHandler);
|
||||
// router.define(SplashScreen.PATH, handler: splashHandler);
|
||||
router.define(LoginScreen.PATH, handler: loginHandler);
|
||||
router.define(HomeScreen.PATH, handler: homeHandler);
|
||||
// router.define(AppDetailPage.PATH, handler: appDetailRouteHandler);
|
||||
|
||||
@@ -3,13 +3,20 @@ import 'package:fluro/fluro.dart';
|
||||
import 'package:imagini/core/app_routes.dart';
|
||||
import 'package:imagini/api/api_provider.dart';
|
||||
import 'package:imagini/api/imagini_api_repository.dart';
|
||||
import 'package:imagini/core/storage_client/base_storage_client.dart';
|
||||
|
||||
import 'package:imagini/core/storage_client/storage_client.dart'
|
||||
if (dart.library.html) 'package:imagini/core/storage_client/browser_storage_client.dart'
|
||||
if (dart.library.io) 'package:imagini/core/storage_client/mobile_storage_client.dart';
|
||||
|
||||
class ImaginiApplication {
|
||||
FluroRouter router;
|
||||
ImaginiAPIRepository imaginiAPI;
|
||||
BaseStorageClient storageClient;
|
||||
|
||||
Future<void> onCreate() async {
|
||||
_initRouter();
|
||||
_initStorageClient();
|
||||
_initAPIRepository();
|
||||
}
|
||||
|
||||
@@ -20,8 +27,13 @@ class ImaginiApplication {
|
||||
AppRoutes.configureRoutes(router);
|
||||
}
|
||||
|
||||
_initStorageClient() {
|
||||
storageClient = getStorageClient();
|
||||
}
|
||||
|
||||
_initAPIRepository() {
|
||||
APIProvider apiProvider = new APIProvider(server: "http://localhost:8484");
|
||||
// TODO: Get from config
|
||||
APIProvider apiProvider = new APIProvider(storageClient);
|
||||
imaginiAPI = ImaginiAPIRepository(apiProvider);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
abstract class BaseStorageClient {
|
||||
Future<String> get(String key);
|
||||
Future<void> set(String key, String value);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'dart:html';
|
||||
|
||||
import './base_storage_client.dart';
|
||||
|
||||
BaseStorageClient getStorageClient() => BrowserStorageClient();
|
||||
|
||||
class BrowserStorageClient extends BaseStorageClient {
|
||||
|
||||
@override
|
||||
Future<String> get(String key) async {
|
||||
var requestedValue = window.localStorage.containsKey(key) ? window.localStorage[key] : "";
|
||||
return requestedValue;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> set(String key, String value) async {
|
||||
window.localStorage[key] = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
|
||||
import './base_storage_client.dart';
|
||||
|
||||
BaseStorageClient getStorageClient() => MobileStorageClient();
|
||||
|
||||
class MobileStorageClient extends BaseStorageClient {
|
||||
final storage = new FlutterSecureStorage();
|
||||
|
||||
@override
|
||||
Future<String> get(String key) async {
|
||||
return storage.read(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> set(String key, String value) async {
|
||||
return storage.write(key: key, value: value);
|
||||
}
|
||||
}
|
||||
4
web_native/lib/core/storage_client/storage_client.dart
Normal file
4
web_native/lib/core/storage_client/storage_client.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
import './base_storage_client.dart';
|
||||
|
||||
BaseStorageClient getStorageClient() => throw UnsupportedError(
|
||||
'Cannot create a storage client.');
|
||||
Reference in New Issue
Block a user