From ee64faf082750460a55ac96649ebb3eec86b8ea2 Mon Sep 17 00:00:00 2001 From: open-trade Date: Tue, 17 Nov 2020 01:22:14 +0800 Subject: [PATCH] more on events, and initialize remote page --- flutter_hbb/lib/home_page.dart | 22 +++++++++++++++------- flutter_hbb/lib/remote_page.dart | 25 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 flutter_hbb/lib/remote_page.dart diff --git a/flutter_hbb/lib/home_page.dart b/flutter_hbb/lib/home_page.dart index ea349b5c4..8488e1476 100644 --- a/flutter_hbb/lib/home_page.dart +++ b/flutter_hbb/lib/home_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'common.dart'; +import 'remote_page.dart'; class HomePage extends StatefulWidget { HomePage({Key key, this.title}) : super(key: key); @@ -12,13 +13,13 @@ class HomePage extends StatefulWidget { } class _HomePageState extends State { - final idController = TextEditingController(); - FfiModel ffi; + final _idController = TextEditingController(); + FfiModel _ffi; @override Widget build(BuildContext context) { - ffi = Provider.of(context); - idController.text = ffi.getId(); + _ffi = Provider.of(context); + _idController.text = _ffi.getId(); // This method is rerun every time setState is called return Scaffold( @@ -40,7 +41,14 @@ class _HomePageState extends State { } void onConnect() { - ffi.connect(idController.text); + var id = _idController.text.trim(); + if (id == "") return; + Navigator.push( + context, + MaterialPageRoute( + builder: (BuildContext context) => RemotePage(id: id), + ), + ); } Widget getSearchBarUI() { @@ -89,7 +97,7 @@ class _HomePageState extends State { ), ), autofocus: false, - controller: idController, + controller: _idController, ), ), ), @@ -112,7 +120,7 @@ class _HomePageState extends State { @override void dispose() { - idController.dispose(); + _idController.dispose(); super.dispose(); } } diff --git a/flutter_hbb/lib/remote_page.dart b/flutter_hbb/lib/remote_page.dart new file mode 100644 index 000000000..3748fddac --- /dev/null +++ b/flutter_hbb/lib/remote_page.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'common.dart'; +import 'package:flutter/services.dart'; + +class RemotePage extends StatefulWidget { + RemotePage({Key key, this.id}) : super(key: key); + + final String id; + + @override + _RemotePageState createState() => _RemotePageState(); +} + +class _RemotePageState extends State { + FfiModel _ffi; + + @override + Widget build(BuildContext context) { + _ffi = Provider.of(context); + _ffi.connect(widget.id); + // https://stackoverflow.com/questions/46640116/make-flutter-application-fullscreen + SystemChrome.setEnabledSystemUIOverlays([]); + } +}