Remove web UI presentation option

This commit is contained in:
Yegor Vialov 2020-02-17 13:50:24 +00:00
parent 6e448d3458
commit 959e89de2b
5 changed files with 1 additions and 99 deletions

View File

@ -31,7 +31,6 @@ import 'package:geolocator/geolocator.dart';
import 'package:battery/battery.dart'; import 'package:battery/battery.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart' as standaloneWebview; import 'package:flutter_webview_plugin/flutter_webview_plugin.dart' as standaloneWebview;
import 'package:webview_flutter/webview_flutter.dart';
import 'utils/logger.dart'; import 'utils/logger.dart';

View File

@ -15,7 +15,6 @@ class ConnectionManager {
String displayHostname; String displayHostname;
String _webSocketAPIEndpoint; String _webSocketAPIEndpoint;
String httpWebHost; String httpWebHost;
String httpWebHostWithExtAuth;
String _token; String _token;
String _tempToken; String _tempToken;
String oauthUrl; String oauthUrl;
@ -52,12 +51,6 @@ class ConnectionManager {
"${prefs.getString('hassio-protocol')}://$_domain:$_port/api/websocket"; "${prefs.getString('hassio-protocol')}://$_domain:$_port/api/websocket";
httpWebHost = httpWebHost =
"${prefs.getString('hassio-res-protocol')}://$_domain:$_port"; "${prefs.getString('hassio-res-protocol')}://$_domain:$_port";
httpWebHostWithExtAuth = httpWebHost;
if (httpWebHostWithExtAuth.contains("?")) {
httpWebHostWithExtAuth += "&external_auth=1";
} else {
httpWebHostWithExtAuth += "?external_auth=1";
}
if ((_domain == null) || (_port == null) || if ((_domain == null) || (_port == null) ||
(_domain.isEmpty) || (_port.isEmpty)) { (_domain.isEmpty) || (_port.isEmpty)) {
completer.completeError(HAError.checkConnectionSettings()); completer.completeError(HAError.checkConnectionSettings());

View File

@ -806,14 +806,6 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
} }
TabController _viewsTabController; TabController _viewsTabController;
WebViewController _mainWebViewController;
_loadJSInterface() {
Logger.d("[MainWebView] Injecting JS interface");
rootBundle.loadString('assets/js/externalAuth.js').then((js){
_mainWebViewController.evaluateJavascript(js.replaceFirst("[token]", ConnectionManager()._token));
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -869,59 +861,11 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
primary: false, primary: false,
bottomNavigationBar: bottomBar, //bottomNavigationBar: bottomBar,
body: Container( body: Container(
color: Colors.blue, color: Colors.blue,
) )
); );
} else if (ConnectionManager().settingsLoaded && ConnectionManager().useWebView && !_showLoginButton) {
return WillPopScope(
child: Scaffold(
primary: true,
appBar: EmptyAppBar(),
body: WebView(
initialUrl: ConnectionManager().httpWebHostWithExtAuth,
debuggingEnabled: Logger.isInDebugMode,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (webviewController) {
_mainWebViewController = webviewController;
},
onPageStarted: (url) {
Logger.d("[MainWebView] Page started: $url");
if (url.contains(ConnectionManager()._domain)) {
_loadJSInterface();
}
},
gestureNavigationEnabled: true,
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>[
new Factory<OneSequenceGestureRecognizer>(
() => new EagerGestureRecognizer(),
),
].toSet(),
javascriptChannels: {
new JavascriptChannel(name: 'HAClient', onMessageReceived: (JavascriptMessage message) {
if (message.message == "show-settings") {
Navigator.of(context).pushNamed("/connection-settings");
}
})
}
)
),
onWillPop: () {
Completer completer = Completer();
if (_mainWebViewController != null) {
_mainWebViewController.canGoBack().then((canGoBack) {
if (canGoBack) {
_mainWebViewController.goBack();
}
completer.complete(!canGoBack);
});
} else {
completer.complete(true);
}
return completer.future;
},
);
} else { } else {
if (HomeAssistant().isNoViews) { if (HomeAssistant().isNoViews) {
return Scaffold( return Scaffold(
@ -974,14 +918,3 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver, Ticker
super.dispose(); super.dispose();
} }
} }
class EmptyAppBar extends StatelessWidget implements PreferredSizeWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.blue,
);
}
@override
Size get preferredSize => Size(0.0,0.0);
}

View File

@ -20,8 +20,6 @@ class _ConnectionSettingsPageState extends State<ConnectionSettingsPage> {
String _newLongLivedToken = ""; String _newLongLivedToken = "";
bool _useLovelace = true; bool _useLovelace = true;
bool _newUseLovelace = true; bool _newUseLovelace = true;
bool _useWebView = false;
bool _newUseWebView = true;
String oauthUrl; String oauthUrl;
bool useOAuth = false; bool useOAuth = false;
@ -62,11 +60,6 @@ class _ConnectionSettingsPageState extends State<ConnectionSettingsPage> {
} catch (e) { } catch (e) {
_useLovelace = _newUseLovelace = true; _useLovelace = _newUseLovelace = true;
} }
try {
_useWebView = _newUseWebView = prefs.getBool("use-webview") ?? false;
} catch (e) {
_useWebView = _newUseWebView = false;
}
}); });
} }
@ -76,7 +69,6 @@ class _ConnectionSettingsPageState extends State<ConnectionSettingsPage> {
(_newHassioDomain != _hassioDomain) || (_newHassioDomain != _hassioDomain) ||
(_newSocketProtocol != _socketProtocol) || (_newSocketProtocol != _socketProtocol) ||
(_newUseLovelace != _useLovelace) || (_newUseLovelace != _useLovelace) ||
(_newUseWebView != _useWebView) ||
(_newLongLivedToken != _longLivedToken)); (_newLongLivedToken != _longLivedToken));
} }
@ -112,7 +104,6 @@ class _ConnectionSettingsPageState extends State<ConnectionSettingsPage> {
prefs.setString("hassio-protocol", _newSocketProtocol); prefs.setString("hassio-protocol", _newSocketProtocol);
prefs.setString("hassio-res-protocol", _newSocketProtocol == "wss" ? "https" : "http"); prefs.setString("hassio-res-protocol", _newSocketProtocol == "wss" ? "https" : "http");
prefs.setBool("use-lovelace", _newUseLovelace); prefs.setBool("use-lovelace", _newUseLovelace);
prefs.setBool("use-webview", _newUseWebView);
} }
@override @override
@ -210,19 +201,6 @@ class _ConnectionSettingsPageState extends State<ConnectionSettingsPage> {
) )
], ],
), ),
new Row(
children: [
Text("Use web UI"),
Switch(
value: _newUseWebView,
onChanged: (value) {
setState(() {
_newUseWebView = value;
});
},
)
],
),
Text( Text(
"Authentication settings", "Authentication settings",
style: TextStyle( style: TextStyle(

View File

@ -22,7 +22,6 @@ dependencies:
in_app_purchase: ^0.3.0+3 in_app_purchase: ^0.3.0+3
flutter_custom_tabs: ^0.6.0 flutter_custom_tabs: ^0.6.0
flutter_webview_plugin: ^0.3.10+1 flutter_webview_plugin: ^0.3.10+1
webview_flutter: ^0.3.19+7
firebase_messaging: ^6.0.9 firebase_messaging: ^6.0.9
flutter_secure_storage: ^3.3.1+1 flutter_secure_storage: ^3.3.1+1
device_info: ^0.4.1+4 device_info: ^0.4.1+4