fix: FFI id assignment && keep Remote Page state for multi tabs
Signed-off-by: Kingtous <kingtous@qq.com>
This commit is contained in:
parent
ed434fa90e
commit
330a2ce5a5
2
build.rs
2
build.rs
@ -77,7 +77,7 @@ fn gen_flutter_rust_bridge() {
|
|||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
// run fbr_codegen
|
// run fbr_codegen
|
||||||
lib_flutter_rust_bridge_codegen::frb_codegen(opts).unwrap();
|
// lib_flutter_rust_bridge_codegen::frb_codegen(opts).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -31,7 +31,8 @@ class RemotePage extends StatefulWidget {
|
|||||||
_RemotePageState createState() => _RemotePageState();
|
_RemotePageState createState() => _RemotePageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _RemotePageState extends State<RemotePage> with WindowListener {
|
class _RemotePageState extends State<RemotePage>
|
||||||
|
with WindowListener, AutomaticKeepAliveClientMixin {
|
||||||
Timer? _interval;
|
Timer? _interval;
|
||||||
Timer? _timer;
|
Timer? _timer;
|
||||||
bool _showBar = !isWebDesktop;
|
bool _showBar = !isWebDesktop;
|
||||||
@ -234,6 +235,7 @@ class _RemotePageState extends State<RemotePage> with WindowListener {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
super.build(context);
|
||||||
final pi = Provider.of<FfiModel>(context).pi;
|
final pi = Provider.of<FfiModel>(context).pi;
|
||||||
final hideKeyboard = isKeyboardShown() && _showEdit;
|
final hideKeyboard = isKeyboardShown() && _showEdit;
|
||||||
final showActionButton = !_showBar || hideKeyboard;
|
final showActionButton = !_showBar || hideKeyboard;
|
||||||
@ -916,6 +918,9 @@ class _RemotePageState extends State<RemotePage> with WindowListener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool get wantKeepAlive => true;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ImagePaint extends StatelessWidget {
|
class ImagePaint extends StatelessWidget {
|
||||||
|
@ -22,7 +22,7 @@ Future<Null> main(List<String> args) async {
|
|||||||
// global FFI, use this **ONLY** for global configuration
|
// global FFI, use this **ONLY** for global configuration
|
||||||
// for convenience, use global FFI on mobile platform
|
// for convenience, use global FFI on mobile platform
|
||||||
// focus on multi-ffi on desktop first
|
// focus on multi-ffi on desktop first
|
||||||
initGlobalFFI();
|
await initGlobalFFI();
|
||||||
// await Firebase.initializeApp();
|
// await Firebase.initializeApp();
|
||||||
if (isAndroid) {
|
if (isAndroid) {
|
||||||
toAndroidChannelInit();
|
toAndroidChannelInit();
|
||||||
|
@ -913,7 +913,7 @@ class FFI {
|
|||||||
}();
|
}();
|
||||||
// every instance will bind a stream
|
// every instance will bind a stream
|
||||||
}
|
}
|
||||||
id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Login with [password], choose if the client should [remember] it.
|
/// Login with [password], choose if the client should [remember] it.
|
||||||
@ -935,6 +935,7 @@ class FFI {
|
|||||||
ffiModel.clear();
|
ffiModel.clear();
|
||||||
canvasModel.clear();
|
canvasModel.clear();
|
||||||
resetModifiers();
|
resetModifiers();
|
||||||
|
print("model closed");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Send **get** command to the Rust core based on [name] and [arg].
|
/// Send **get** command to the Rust core based on [name] and [arg].
|
||||||
|
Loading…
x
Reference in New Issue
Block a user