Resolves #546 Device name is missed
This commit is contained in:
@ -19,7 +19,6 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
|
|||||||
StreamSubscription _showErrorSubscription;
|
StreamSubscription _showErrorSubscription;
|
||||||
StreamSubscription _startAuthSubscription;
|
StreamSubscription _startAuthSubscription;
|
||||||
StreamSubscription _showPopupSubscription;
|
StreamSubscription _showPopupSubscription;
|
||||||
StreamSubscription _showTokenLoginPopupSubscription;
|
|
||||||
StreamSubscription _reloadUISubscription;
|
StreamSubscription _reloadUISubscription;
|
||||||
StreamSubscription _fullReloadSubscription;
|
StreamSubscription _fullReloadSubscription;
|
||||||
StreamSubscription _showPageSubscription;
|
StreamSubscription _showPageSubscription;
|
||||||
@ -187,14 +186,6 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
|
|||||||
event.popup.show(context);
|
event.popup.show(context);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (_showTokenLoginPopupSubscription == null) {
|
|
||||||
_showTokenLoginPopupSubscription = eventBus.on<ShowTokenLoginPopupEvent>().listen((event){
|
|
||||||
if (event.goBackFirst) {
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
}
|
|
||||||
_showTokenLoginDialog();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (_serviceCallSubscription == null) {
|
if (_serviceCallSubscription == null) {
|
||||||
_serviceCallSubscription =
|
_serviceCallSubscription =
|
||||||
eventBus.on<NotifyServiceCallEvent>().listen((event) {
|
eventBus.on<NotifyServiceCallEvent>().listen((event) {
|
||||||
@ -259,77 +250,6 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final _tokenLoginFormKey = GlobalKey<FormState>();
|
|
||||||
|
|
||||||
void _showTokenLoginDialog() {
|
|
||||||
// flutter defined function
|
|
||||||
showDialog(
|
|
||||||
barrierDismissible: false,
|
|
||||||
context: context,
|
|
||||||
builder: (BuildContext context) {
|
|
||||||
// return object of type Dialog
|
|
||||||
return SimpleDialog(
|
|
||||||
title: new Text('Login with long-lived token'),
|
|
||||||
children: <Widget>[
|
|
||||||
Form(
|
|
||||||
key: _tokenLoginFormKey,
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: <Widget>[
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.all(20),
|
|
||||||
child: TextFormField(
|
|
||||||
onSaved: (newValue) {
|
|
||||||
final storage = new FlutterSecureStorage();
|
|
||||||
storage.write(key: "hacl_llt", value: newValue).then((_) {
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
eventBus.fire(SettingsChangedEvent(true));
|
|
||||||
});
|
|
||||||
},
|
|
||||||
decoration: InputDecoration(
|
|
||||||
hintText: 'Please enter long-lived token',
|
|
||||||
contentPadding: EdgeInsets.all(0),
|
|
||||||
hintStyle: Theme.of(context).textTheme.subhead.copyWith(
|
|
||||||
color: Theme.of(context).textTheme.overline.color
|
|
||||||
)
|
|
||||||
),
|
|
||||||
validator: (value) {
|
|
||||||
if (value.isEmpty) {
|
|
||||||
return 'Long-lived token can\'t be emty';
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Row(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: <Widget>[
|
|
||||||
FlatButton(
|
|
||||||
child: Text('Login'),
|
|
||||||
onPressed: () {
|
|
||||||
if (_tokenLoginFormKey.currentState.validate()) {
|
|
||||||
_tokenLoginFormKey.currentState.save();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
Container(width: 10),
|
|
||||||
FlatButton(
|
|
||||||
child: Text('Cancel'),
|
|
||||||
onPressed: () {
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _notifyServiceCalled(String domain, String service, entityId) {
|
void _notifyServiceCalled(String domain, String service, entityId) {
|
||||||
_bottomInfoBarController.showInfoBottomBar(
|
_bottomInfoBarController.showInfoBottomBar(
|
||||||
message: "Calling $domain.$service",
|
message: "Calling $domain.$service",
|
||||||
@ -731,7 +651,6 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
|
|||||||
//final flutterWebviewPlugin = new FlutterWebviewPlugin();
|
//final flutterWebviewPlugin = new FlutterWebviewPlugin();
|
||||||
//flutterWebviewPlugin.dispose();
|
//flutterWebviewPlugin.dispose();
|
||||||
_viewsTabController?.dispose();
|
_viewsTabController?.dispose();
|
||||||
_showTokenLoginPopupSubscription?.cancel();
|
|
||||||
_stateSubscription?.cancel();
|
_stateSubscription?.cancel();
|
||||||
_lovelaceSubscription?.cancel();
|
_lovelaceSubscription?.cancel();
|
||||||
_settingsSubscription?.cancel();
|
_settingsSubscription?.cancel();
|
||||||
|
@ -25,12 +25,12 @@ class _ConnectionSettingsPageState extends State<ConnectionSettingsPage> {
|
|||||||
_loadSettings();
|
_loadSettings();
|
||||||
} else {
|
} else {
|
||||||
_deviceName = MobileAppIntegrationManager.getDefaultDeviceName();
|
_deviceName = MobileAppIntegrationManager.getDefaultDeviceName();
|
||||||
|
_includeDeviceName = true;
|
||||||
_loaded = true;
|
_loaded = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_loadSettings() async {
|
_loadSettings() async {
|
||||||
Logger.d('Loading settings...');
|
|
||||||
_includeDeviceName = widget.quickStart || ConnectionManager().webhookId == null;
|
_includeDeviceName = widget.quickStart || ConnectionManager().webhookId == null;
|
||||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
String domain = prefs.getString('hassio-domain')?? '';
|
String domain = prefs.getString('hassio-domain')?? '';
|
||||||
|
@ -47,3 +47,80 @@ class Popup {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TokenLoginPopup extends Popup {
|
||||||
|
|
||||||
|
TokenLoginPopup() : super(title: 'Login with long-lived token', body: '');
|
||||||
|
|
||||||
|
final _tokenLoginFormKey = GlobalKey<FormState>();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void show(BuildContext context) {
|
||||||
|
showDialog(
|
||||||
|
barrierDismissible: false,
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
// return object of type Dialog
|
||||||
|
return SimpleDialog(
|
||||||
|
title: new Text('Login with long-lived token'),
|
||||||
|
children: <Widget>[
|
||||||
|
Form(
|
||||||
|
key: _tokenLoginFormKey,
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: <Widget>[
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.all(20),
|
||||||
|
child: TextFormField(
|
||||||
|
onSaved: (newValue) {
|
||||||
|
final storage = new FlutterSecureStorage();
|
||||||
|
storage.write(key: "hacl_llt", value: newValue).then((_) {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
eventBus.fire(SettingsChangedEvent(true));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
decoration: InputDecoration(
|
||||||
|
hintText: 'Please enter long-lived token',
|
||||||
|
contentPadding: EdgeInsets.all(0),
|
||||||
|
hintStyle: Theme.of(context).textTheme.subhead.copyWith(
|
||||||
|
color: Theme.of(context).textTheme.overline.color
|
||||||
|
)
|
||||||
|
),
|
||||||
|
validator: (value) {
|
||||||
|
if (value.isEmpty) {
|
||||||
|
return 'Long-lived token can\'t be emty';
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: <Widget>[
|
||||||
|
FlatButton(
|
||||||
|
child: Text('Login'),
|
||||||
|
onPressed: () {
|
||||||
|
if (_tokenLoginFormKey.currentState.validate()) {
|
||||||
|
_tokenLoginFormKey.currentState.save();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
Container(width: 10),
|
||||||
|
FlatButton(
|
||||||
|
child: Text('Cancel'),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user