diff --git a/flutter_hbb/lib/common.dart b/flutter_hbb/lib/common.dart
index 9c93e513c..cf07bdf6f 100644
--- a/flutter_hbb/lib/common.dart
+++ b/flutter_hbb/lib/common.dart
@@ -13,7 +13,10 @@ class MyTheme {
   static const Color border = Color(0xFFCCCCCC);
 }
 
-void showLoading(String text) {
+void showLoading(String text, BuildContext context) {
+  if (_hasDialog) {
+    Navigator.pop(context);
+  }
   dismissLoading();
   EasyLoading.show(status: text);
 }
diff --git a/flutter_hbb/lib/model.dart b/flutter_hbb/lib/model.dart
index ef755bd14..b3ef083c1 100644
--- a/flutter_hbb/lib/model.dart
+++ b/flutter_hbb/lib/model.dart
@@ -86,7 +86,7 @@ class FfiModel with ChangeNotifier {
       if (name == 'msgbox') {
         handleMsgbox(evt, id, context);
       } else if (name == 'peer_info') {
-        handlePeerInfo(evt);
+        handlePeerInfo(evt, context);
       } else if (name == 'switch_display') {
         handleSwitchDisplay(evt);
       } else if (name == 'cursor_data') {
@@ -155,7 +155,7 @@ class FfiModel with ChangeNotifier {
     notifyListeners();
   }
 
-  void handlePeerInfo(Map<String, dynamic> evt) {
+  void handlePeerInfo(Map<String, dynamic> evt, BuildContext context) {
     dismissLoading();
     _pi.username = evt['username'];
     _pi.hostname = evt['hostname'];
@@ -178,7 +178,7 @@ class FfiModel with ChangeNotifier {
       FFI.cursorModel.updateDisplayOrigin(_display.x, _display.y);
     }
     if (displays.length > 0) {
-      showLoading('Waiting for image...');
+      showLoading('Waiting for image...', context);
       _waitForImage = true;
     }
   }
@@ -578,8 +578,10 @@ class FFI {
     _dir = (await getApplicationDocumentsDirectory()).path;
     DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
     AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
-    print(
-        '${androidInfo.product} ${androidInfo.brand} ${androidInfo.device} ${androidInfo.model} ${androidInfo.brand} ${androidInfo.manufacturer}');
+    final name = '${androidInfo.brand}-${androidInfo.model}';
+    final id = androidInfo.id;
+    setByName('info1', id);
+    setByName('info2', name);
     setByName('init', _dir);
   }
 }
diff --git a/flutter_hbb/lib/remote_page.dart b/flutter_hbb/lib/remote_page.dart
index 19f92074e..641c5fddb 100644
--- a/flutter_hbb/lib/remote_page.dart
+++ b/flutter_hbb/lib/remote_page.dart
@@ -41,7 +41,7 @@ class _RemotePageState extends State<RemotePage> {
     FFI.connect(widget.id);
     WidgetsBinding.instance.addPostFrameCallback((_) {
       SystemChrome.setEnabledSystemUIOverlays([]);
-      showLoading('Connecting...');
+      showLoading('Connecting...', context);
       _interval =
           Timer.periodic(Duration(milliseconds: 30), (timer) => interval());
     });
@@ -530,7 +530,7 @@ void enterPasswordDialog(String id, BuildContext context) {
                   var text = controller.text.trim();
                   if (text == '') return;
                   FFI.login(text, remember);
-                  showLoading('Logging in...');
+                  showLoading('Logging in...', context);
                   Navigator.pop(context);
                 },
                 child: Text('OK'),