diff --git a/CliClient/locales/en_GB.po b/CliClient/locales/en_GB.po index fbe27ed991..d9bfaf79f1 100644 --- a/CliClient/locales/en_GB.po +++ b/CliClient/locales/en_GB.po @@ -543,6 +543,15 @@ msgstr "" msgid "Configuration" msgstr "" +msgid "Select date" +msgstr "" + +msgid "Confirm" +msgstr "" + +msgid "Cancel" +msgstr "" + msgid "Synchronise" msgstr "" @@ -559,6 +568,15 @@ msgstr "" msgid "Refresh" msgstr "" +msgid "This note has been modified:" +msgstr "" + +msgid "Save changes" +msgstr "" + +msgid "Discard changes" +msgstr "" + msgid "Delete note?" msgstr "" @@ -568,6 +586,12 @@ msgstr "" msgid "Delete note" msgstr "" +msgid "Edit/Clear alarm" +msgstr "" + +msgid "Set an alarm" +msgstr "" + msgid "Convert to regular note" msgstr "" diff --git a/CliClient/locales/fr_FR.po b/CliClient/locales/fr_FR.po index 9515b39e0d..94374f293a 100644 --- a/CliClient/locales/fr_FR.po +++ b/CliClient/locales/fr_FR.po @@ -593,6 +593,17 @@ msgstr "Etat" msgid "Configuration" msgstr "Configuration" +msgid "Select date" +msgstr "" + +#, fuzzy +msgid "Confirm" +msgstr "Conflits" + +#, fuzzy +msgid "Cancel" +msgstr "Annulation..." + msgid "Synchronise" msgstr "Synchroniser" @@ -609,6 +620,16 @@ msgstr "Editer le carnet" msgid "Refresh" msgstr "Rafraîchir" +#, fuzzy +msgid "This note has been modified:" +msgstr "Aucun carnet n'est spécifié." + +msgid "Save changes" +msgstr "" + +msgid "Discard changes" +msgstr "" + msgid "Delete note?" msgstr "Supprimer la note ?" @@ -618,6 +639,12 @@ msgstr "Attacher un fichier" msgid "Delete note" msgstr "Supprimer la note" +msgid "Edit/Clear alarm" +msgstr "" + +msgid "Set an alarm" +msgstr "" + msgid "Convert to regular note" msgstr "Convertir en note" diff --git a/CliClient/locales/joplin.pot b/CliClient/locales/joplin.pot index fbe27ed991..d9bfaf79f1 100644 --- a/CliClient/locales/joplin.pot +++ b/CliClient/locales/joplin.pot @@ -543,6 +543,15 @@ msgstr "" msgid "Configuration" msgstr "" +msgid "Select date" +msgstr "" + +msgid "Confirm" +msgstr "" + +msgid "Cancel" +msgstr "" + msgid "Synchronise" msgstr "" @@ -559,6 +568,15 @@ msgstr "" msgid "Refresh" msgstr "" +msgid "This note has been modified:" +msgstr "" + +msgid "Save changes" +msgstr "" + +msgid "Discard changes" +msgstr "" + msgid "Delete note?" msgstr "" @@ -568,6 +586,12 @@ msgstr "" msgid "Delete note" msgstr "" +msgid "Edit/Clear alarm" +msgstr "" + +msgid "Set an alarm" +msgstr "" + msgid "Convert to regular note" msgstr "" diff --git a/ReactNativeClient/android/app/build.gradle b/ReactNativeClient/android/app/build.gradle index 99ae58d886..2e2a1120ae 100644 --- a/ReactNativeClient/android/app/build.gradle +++ b/ReactNativeClient/android/app/build.gradle @@ -90,8 +90,8 @@ android { applicationId "net.cozic.joplin" minSdkVersion 16 targetSdkVersion 22 - versionCode 46 - versionName "0.9.33" + versionCode 48 + versionName "0.9.35" ndk { abiFilters "armeabi-v7a", "x86" } diff --git a/ReactNativeClient/lib/components/note-body-viewer.js b/ReactNativeClient/lib/components/note-body-viewer.js index f45b17f13c..9e160a05bc 100644 --- a/ReactNativeClient/lib/components/note-body-viewer.js +++ b/ReactNativeClient/lib/components/note-body-viewer.js @@ -181,7 +181,7 @@ class NoteBodyViewer extends Component { setTimeout(() => { if (!this.isMounted_) return; this.setState({ webViewLoaded: true }); - }, 200); + }, 100); } render() { @@ -191,7 +191,7 @@ class NoteBodyViewer extends Component { const html = this.markdownToHtml(note ? note.body : '', this.props.webViewStyle); let webViewStyle = {} - if (!this.state.webViewLoaded) webViewStyle.display = 'none'; + webViewStyle.opacity = this.state.webViewLoaded ? 1 : 0.01; return ( diff --git a/ReactNativeClient/lib/components/screens/note.js b/ReactNativeClient/lib/components/screens/note.js index cd1910ebcc..ae17184af9 100644 --- a/ReactNativeClient/lib/components/screens/note.js +++ b/ReactNativeClient/lib/components/screens/note.js @@ -269,7 +269,10 @@ class NoteScreenComponent extends BaseScreenComponent { return new Promise((resolve, reject) => { DocumentPicker.show({ filetype: [DocumentPickerUtil.images()] }, (error,res) => { if (error) { - reject(error); + // Also returns an error if the user doesn't pick a file + // so just resolve with null. + console.info('pickDocument error:', error); + resolve(null); return; } @@ -288,6 +291,7 @@ class NoteScreenComponent extends BaseScreenComponent { async attachFile_onPress() { const res = await this.pickDocument(); + if (!res) return; const localFilePath = res.uri; @@ -368,14 +372,23 @@ class NoteScreenComponent extends BaseScreenComponent { menuOptions() { const note = this.state.note; + const isTodo = note && !!note.is_todo; - return [ - { title: _('Attach file'), onPress: () => { this.attachFile_onPress(); } }, - { title: _('Delete note'), onPress: () => { this.deleteNote_onPress(); } }, - { title: note && !!note.is_todo ? _('Convert to regular note') : _('Convert to todo'), onPress: () => { this.toggleIsTodo_onPress(); } }, - { title: this.state.showNoteMetadata ? _('Hide metadata') : _('Show metadata'), onPress: () => { this.showMetadata_onPress(); } }, - { title: _('View location on map'), onPress: () => { this.showOnMap_onPress(); } }, - ]; + let output = []; + + output.push({ title: _('Attach file'), onPress: () => { this.attachFile_onPress(); } }); + output.push({ title: _('Delete note'), onPress: () => { this.deleteNote_onPress(); } }); + + // if (isTodo) { + // let text = note.todo_due ? _('Edit/Clear alarm') : _('Set an alarm'); + // output.push({ title: text, onPress: () => { this.setAlarm_onPress(); } }); + // } + + output.push({ title: isTodo ? _('Convert to regular note') : _('Convert to todo'), onPress: () => { this.toggleIsTodo_onPress(); } }); + output.push({ title: this.state.showNoteMetadata ? _('Hide metadata') : _('Show metadata'), onPress: () => { this.showMetadata_onPress(); } }); + output.push({ title: _('View location on map'), onPress: () => { this.showOnMap_onPress(); } }); + + return output; } async todoCheckbox_change(checked) { diff --git a/ReactNativeClient/package.json b/ReactNativeClient/package.json index 680d41d62f..382aa13e05 100644 --- a/ReactNativeClient/package.json +++ b/ReactNativeClient/package.json @@ -16,11 +16,13 @@ "react": "16.0.0-alpha.12", "react-native": "0.46.0", "react-native-action-button": "^2.6.9", + "react-native-datepicker": "^1.6.0", "react-native-dialogbox": "^0.6.6", "react-native-document-picker": "^2.0.0", "react-native-fetch-blob": "^0.10.6", "react-native-fs": "^2.3.3", "react-native-image-resizer": "^0.1.1", + "react-native-popup-dialog": "^0.9.35", "react-native-popup-menu": "^0.7.4", "react-native-side-menu": "^0.20.1", "react-native-sqlite-storage": "3.3.*",