From 9e0bf1acb26ed9f6b649166e4d2abc075e1bb28d Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Wed, 14 Mar 2018 23:17:02 +0000 Subject: [PATCH] Mobile: Fixes #299: App freezes when connecting to OneDrive login page while internet connection is down --- ReactNativeClient/lib/BaseModel.js | 3 +- .../lib/components/action-button.js | 1 - .../lib/components/note-body-viewer.js | 2 +- ReactNativeClient/lib/components/note-item.js | 1 - ReactNativeClient/lib/components/note-list.js | 1 - .../lib/components/screen-header.js | 1 - .../lib/components/screens/folder.js | 1 - .../lib/components/screens/log.js | 1 - .../lib/components/screens/note.js | 1 - .../lib/components/screens/notes.js | 1 - .../lib/components/screens/onedrive-login.js | 9 ++--- .../lib/components/screens/status.js | 1 - .../lib/components/screens/welcome.js | 1 - .../lib/components/side-menu-content.js | 1 - ReactNativeClient/lib/components/side-menu.js | 1 - ReactNativeClient/lib/log.js | 40 ------------------- ReactNativeClient/lib/models/Folder.js | 1 - ReactNativeClient/lib/models/Note.js | 1 - ReactNativeClient/main.js | 1 - ReactNativeClient/root.js | 1 - 20 files changed, 5 insertions(+), 65 deletions(-) delete mode 100644 ReactNativeClient/lib/log.js diff --git a/ReactNativeClient/lib/BaseModel.js b/ReactNativeClient/lib/BaseModel.js index 8f08e3e344..740422d194 100644 --- a/ReactNativeClient/lib/BaseModel.js +++ b/ReactNativeClient/lib/BaseModel.js @@ -1,4 +1,3 @@ -const { Log } = require('lib/log.js'); const { Database } = require('lib/database.js'); const { uuid } = require('lib/uuid.js'); const { time } = require('lib/time-utils.js'); @@ -423,7 +422,7 @@ class BaseModel { output = this.filter(o); } catch (error) { - Log.error('Cannot save model', error); + this.logger().error('Cannot save model', error); } this.releaseSaveMutex(o, mutexRelease); diff --git a/ReactNativeClient/lib/components/action-button.js b/ReactNativeClient/lib/components/action-button.js index 752793a158..2d82349413 100644 --- a/ReactNativeClient/lib/components/action-button.js +++ b/ReactNativeClient/lib/components/action-button.js @@ -4,7 +4,6 @@ const Icon = require('react-native-vector-icons/Ionicons').default; const ReactNativeActionButton = require('react-native-action-button').default; const { connect } = require('react-redux'); const { globalStyle } = require('lib/components/global-style.js'); -const { Log } = require('lib/log.js'); const { _ } = require('lib/locale.js'); const styles = StyleSheet.create({ diff --git a/ReactNativeClient/lib/components/note-body-viewer.js b/ReactNativeClient/lib/components/note-body-viewer.js index aae7e3bb5f..76e960bd05 100644 --- a/ReactNativeClient/lib/components/note-body-viewer.js +++ b/ReactNativeClient/lib/components/note-body-viewer.js @@ -104,7 +104,7 @@ class NoteBodyViewer extends Component { style={webViewStyle} source={source} onLoadEnd={() => this.onLoadEnd()} - onError={(e) => reg.logger().error('WebView error', e) } + onError={() => reg.logger().error('WebView error') } onMessage={(event) => { let msg = event.nativeEvent.data; diff --git a/ReactNativeClient/lib/components/note-item.js b/ReactNativeClient/lib/components/note-item.js index f000eed12a..a32fa43f84 100644 --- a/ReactNativeClient/lib/components/note-item.js +++ b/ReactNativeClient/lib/components/note-item.js @@ -1,7 +1,6 @@ const React = require('react'); const Component = React.Component; const { connect } = require('react-redux'); const { ListView, Text, TouchableOpacity , View, StyleSheet } = require('react-native'); -const { Log } = require('lib/log.js'); const { _ } = require('lib/locale.js'); const { Checkbox } = require('lib/components/checkbox.js'); const { reg } = require('lib/registry.js'); diff --git a/ReactNativeClient/lib/components/note-list.js b/ReactNativeClient/lib/components/note-list.js index 1f668e9f30..76cbf94c99 100644 --- a/ReactNativeClient/lib/components/note-list.js +++ b/ReactNativeClient/lib/components/note-list.js @@ -1,7 +1,6 @@ const React = require('react'); const Component = React.Component; const { connect } = require('react-redux'); const { ListView, Text, TouchableHighlight, Switch, View, StyleSheet } = require('react-native'); -const { Log } = require('lib/log.js'); const { _ } = require('lib/locale.js'); const { Checkbox } = require('lib/components/checkbox.js'); const { NoteItem } = require('lib/components/note-item.js'); diff --git a/ReactNativeClient/lib/components/screen-header.js b/ReactNativeClient/lib/components/screen-header.js index af0d123a73..7f531d4205 100644 --- a/ReactNativeClient/lib/components/screen-header.js +++ b/ReactNativeClient/lib/components/screen-header.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { connect } = require('react-redux'); const { Platform, View, Text, Button, StyleSheet, TouchableOpacity, Image, ScrollView, Dimensions } = require('react-native'); const Icon = require('react-native-vector-icons/Ionicons').default; -const { Log } = require('lib/log.js'); const { BackButtonService } = require('lib/services/back-button.js'); const NavService = require('lib/services/NavService.js'); const { ReportService } = require('lib/services/report.js'); diff --git a/ReactNativeClient/lib/components/screens/folder.js b/ReactNativeClient/lib/components/screens/folder.js index 288f4f4a91..a988143cc6 100644 --- a/ReactNativeClient/lib/components/screens/folder.js +++ b/ReactNativeClient/lib/components/screens/folder.js @@ -1,7 +1,6 @@ const React = require('react'); const Component = React.Component; const { View, Button, TextInput, StyleSheet } = require('react-native'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const { ActionButton } = require('lib/components/action-button.js'); const Folder = require('lib/models/Folder.js'); const BaseModel = require('lib/BaseModel.js'); diff --git a/ReactNativeClient/lib/components/screens/log.js b/ReactNativeClient/lib/components/screens/log.js index cf737e1468..1ff00d0a9e 100644 --- a/ReactNativeClient/lib/components/screens/log.js +++ b/ReactNativeClient/lib/components/screens/log.js @@ -1,7 +1,6 @@ const React = require('react'); const Component = React.Component; const { ListView, View, Text, Button, StyleSheet, Platform } = require('react-native'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const { reg } = require('lib/registry.js'); const { ScreenHeader } = require('lib/components/screen-header.js'); const { time } = require('lib/time-utils'); diff --git a/ReactNativeClient/lib/components/screens/note.js b/ReactNativeClient/lib/components/screens/note.js index 42c8626dcf..56ed5ab990 100644 --- a/ReactNativeClient/lib/components/screens/note.js +++ b/ReactNativeClient/lib/components/screens/note.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { Platform, Keyboard, BackHandler, View, Button, TextInput, WebView, Text, StyleSheet, Linking, Image } = require('react-native'); const { connect } = require('react-redux'); const { uuid } = require('lib/uuid.js'); -const { Log } = require('lib/log.js'); const RNFS = require('react-native-fs'); const Note = require('lib/models/Note.js'); const Setting = require('lib/models/Setting.js'); diff --git a/ReactNativeClient/lib/components/screens/notes.js b/ReactNativeClient/lib/components/screens/notes.js index 3aa856c258..5fe3a28a2e 100644 --- a/ReactNativeClient/lib/components/screens/notes.js +++ b/ReactNativeClient/lib/components/screens/notes.js @@ -3,7 +3,6 @@ const { View, Button, Text } = require('react-native'); const { stateUtils } = require('lib/reducer.js'); const { connect } = require('react-redux'); const { reg } = require('lib/registry.js'); -const { Log } = require('lib/log.js'); const { NoteList } = require('lib/components/note-list.js'); const Folder = require('lib/models/Folder.js'); const Tag = require('lib/models/Tag.js'); diff --git a/ReactNativeClient/lib/components/screens/onedrive-login.js b/ReactNativeClient/lib/components/screens/onedrive-login.js index 65e525d341..df51ce982b 100644 --- a/ReactNativeClient/lib/components/screens/onedrive-login.js +++ b/ReactNativeClient/lib/components/screens/onedrive-login.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { View } = require('react-native'); const { WebView, Button, Text } = require('react-native'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const Setting = require('lib/models/Setting.js'); const { ScreenHeader } = require('lib/components/screen-header.js'); const { reg } = require('lib/registry.js'); @@ -44,8 +43,6 @@ class OneDriveLoginScreenComponent extends BaseScreenComponent { const parsedUrl = parseUri(url); if (!this.authCode_ && parsedUrl && parsedUrl.queryKey && parsedUrl.queryKey.code) { - Log.info('URL: ', url, parsedUrl.queryKey); - this.authCode_ = parsedUrl.queryKey.code try { @@ -60,8 +57,8 @@ class OneDriveLoginScreenComponent extends BaseScreenComponent { } } - async webview_error(error) { - Log.error(error); + async webview_error() { + alert('Could not load page. Please check your connection and try again.'); } retryButton_click() { @@ -93,7 +90,7 @@ class OneDriveLoginScreenComponent extends BaseScreenComponent { { this.webview_load(o); }} - onError={(error) => { this.webview_error(error); }} + onError={() => { this.webview_error(); }} /> diff --git a/ReactNativeClient/lib/components/screens/status.js b/ReactNativeClient/lib/components/screens/status.js index 8ce07e0b9a..0695b27ce2 100644 --- a/ReactNativeClient/lib/components/screens/status.js +++ b/ReactNativeClient/lib/components/screens/status.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { ListView, StyleSheet, View, Text, Button, FlatList } = require('react-native'); const Setting = require('lib/models/Setting.js'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const { reg } = require('lib/registry.js'); const { ScreenHeader } = require('lib/components/screen-header.js'); const { time } = require('lib/time-utils'); diff --git a/ReactNativeClient/lib/components/screens/welcome.js b/ReactNativeClient/lib/components/screens/welcome.js index 1a51b987d4..da4b82ec5f 100644 --- a/ReactNativeClient/lib/components/screens/welcome.js +++ b/ReactNativeClient/lib/components/screens/welcome.js @@ -1,7 +1,6 @@ const React = require('react'); const Component = React.Component; const { View, Text, StyleSheet } = require('react-native'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const { ScreenHeader } = require('lib/components/screen-header.js'); const { ActionButton } = require('lib/components/action-button.js'); const { BaseScreenComponent } = require('lib/components/base-screen.js'); diff --git a/ReactNativeClient/lib/components/side-menu-content.js b/ReactNativeClient/lib/components/side-menu-content.js index 5724b393e7..572f3fcd51 100644 --- a/ReactNativeClient/lib/components/side-menu-content.js +++ b/ReactNativeClient/lib/components/side-menu-content.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { TouchableOpacity , Button, Text, Image, StyleSheet, ScrollView, View } = require('react-native'); const { connect } = require('react-redux'); const Icon = require('react-native-vector-icons/Ionicons').default; -const { Log } = require('lib/log.js'); const Tag = require('lib/models/Tag.js'); const Note = require('lib/models/Note.js'); const Folder = require('lib/models/Folder.js'); diff --git a/ReactNativeClient/lib/components/side-menu.js b/ReactNativeClient/lib/components/side-menu.js index 15dabee250..86ec925ecd 100644 --- a/ReactNativeClient/lib/components/side-menu.js +++ b/ReactNativeClient/lib/components/side-menu.js @@ -1,6 +1,5 @@ const React = require('react'); const Component = React.Component; const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const SideMenu_ = require('react-native-side-menu').default; class SideMenuComponent extends SideMenu_ {}; diff --git a/ReactNativeClient/lib/log.js b/ReactNativeClient/lib/log.js deleted file mode 100644 index 54a3dbb32e..0000000000 --- a/ReactNativeClient/lib/log.js +++ /dev/null @@ -1,40 +0,0 @@ -// Custom wrapper for `console` to allow for custom logging (to file, etc.) if needed. - -class Log { - - static setLevel(v) { - this.level_ = v; - } - - static level() { - return this.level_ === undefined ? Log.LEVEL_DEBUG : this.level_; - } - - static debug(...o) { - if (Log.level() > Log.LEVEL_DEBUG) return; - console.info(...o); - } - - static info(...o) { - if (Log.level() > Log.LEVEL_INFO) return; - console.info(...o); - } - - static warn(...o) { - if (Log.level() > Log.LEVEL_WARN) return; - console.info(...o); - } - - static error(...o) { - if (Log.level() > Log.LEVEL_ERROR) return; - console.info(...o); - } - -} - -Log.LEVEL_DEBUG = 0; -Log.LEVEL_INFO = 10; -Log.LEVEL_WARN = 20; -Log.LEVEL_ERROR = 30; - -module.exports = { Log }; \ No newline at end of file diff --git a/ReactNativeClient/lib/models/Folder.js b/ReactNativeClient/lib/models/Folder.js index 1e06c13679..f4824b5a98 100644 --- a/ReactNativeClient/lib/models/Folder.js +++ b/ReactNativeClient/lib/models/Folder.js @@ -1,5 +1,4 @@ const BaseModel = require('lib/BaseModel.js'); -const { Log } = require('lib/log.js'); const { promiseChain } = require('lib/promise-utils.js'); const { time } = require('lib/time-utils.js'); const Note = require('lib/models/Note.js'); diff --git a/ReactNativeClient/lib/models/Note.js b/ReactNativeClient/lib/models/Note.js index 8d0c55c926..6ca54c2cda 100644 --- a/ReactNativeClient/lib/models/Note.js +++ b/ReactNativeClient/lib/models/Note.js @@ -1,5 +1,4 @@ const BaseModel = require('lib/BaseModel.js'); -const { Log } = require('lib/log.js'); const { sprintf } = require('sprintf-js'); const BaseItem = require('lib/models/BaseItem.js'); const Setting = require('lib/models/Setting.js'); diff --git a/ReactNativeClient/main.js b/ReactNativeClient/main.js index eb5285e1a0..da7fd74612 100644 --- a/ReactNativeClient/main.js +++ b/ReactNativeClient/main.js @@ -7,7 +7,6 @@ // So there's basically still a one way flux: React => SQLite => Redux => React const { AppRegistry } = require('react-native'); -const { Log } = require('lib/log.js'); const { Root } = require('./root.js'); function main() { diff --git a/ReactNativeClient/root.js b/ReactNativeClient/root.js index cc602cc9d9..d8b332a764 100644 --- a/ReactNativeClient/root.js +++ b/ReactNativeClient/root.js @@ -9,7 +9,6 @@ const AlarmServiceDriver = require('lib/services/AlarmServiceDriver'); const Alarm = require('lib/models/Alarm'); const { createStore, applyMiddleware } = require('redux'); const { shimInit } = require('lib/shim-init-react.js'); -const { Log } = require('lib/log.js'); const { time } = require('lib/time-utils.js'); const { AppNav } = require('lib/components/app-nav.js'); const { Logger } = require('lib/logger.js');