10 Commits

Author SHA1 Message Date
l-jonas 2ec151534e Update whatsnew 2019-01-01 08:55:06 +01:00
l-jonas 1e97e11cb7 Release 0.3.11 2019-01-01 08:54:10 +01:00
Jonas L 681fdb9802 Update translations 2019-01-01 08:50:58 +01:00
l-jonas 0df347377a Change up button handling (#135) 2019-01-01 08:49:07 +01:00
Jonas L d6fc356bd7 Fix typo 2018-12-27 15:53:40 +01:00
Jonas L 78ad8756d5 Update translations 2018-12-27 15:52:14 +01:00
l-jonas b96c672a8e Update whatsnew 2018-12-16 07:43:50 +01:00
l-jonas 2a25e9882b Release 0.3.10 2018-12-16 07:43:24 +01:00
Jonas L cb33d8f3e4 Update translations 2018-12-15 15:56:41 +01:00
l-jonas db8e91eafa Fix handling file names with spaces for mime type detection (#134)
This fixes https://github.com/syncthing/syncthing-lite/issues/133
2018-12-13 19:44:44 +01:00
19 changed files with 113 additions and 27 deletions
+2 -2
View File
@@ -18,8 +18,8 @@ android {
applicationId "net.syncthing.lite"
minSdkVersion 21
targetSdkVersion 26
versionCode 19
versionName "0.3.9"
versionCode 21
versionName "0.3.11"
multiDexEnabled true
playAccountConfig = playAccountConfigs.defaultAccountConfig
}
@@ -4,6 +4,8 @@ import android.app.Activity
import android.content.Intent
import android.databinding.DataBindingUtil
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.ConflatedBroadcastChannel
import kotlinx.coroutines.channels.consumeEach
@@ -184,4 +186,26 @@ class FolderBrowserActivity : SyncthingActivity() {
super.onActivityResult(requestCode, resultCode, intent)
}
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.folder_browser, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
R.id.go_home -> {
finish()
true
}
android.R.id.home -> {
if (!goUp()) {
finish()
}
true
}
else -> super.onOptionsItemSelected(item)
}
}
@@ -47,7 +47,7 @@ class FileMenuDialogFragment: BottomSheetDialogFragment() {
Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = MimeType.getFromUrl(fileSpec.fileName)
type = MimeType.getFromFilename(fileSpec.fileName)
putExtra(Intent.EXTRA_TITLE, fileSpec.fileName)
},
@@ -88,7 +88,7 @@ class DownloadFileDialogFragment : DialogFragment() {
dismissAllowingStateLoss()
if (outputUri == null) {
val mimeType = MimeType.getFromUrl(fileSpec.fileName)
val mimeType = MimeType.getFromFilename(fileSpec.fileName)
try {
context!!.startActivity(
@@ -159,7 +159,7 @@ class SyncthingProvider : DocumentsProvider() {
if (fileInfo.isDirectory())
Document.MIME_TYPE_DIR
else
MimeType.getFromUrl(fileInfo.fileName)
MimeType.getFromFilename(fileInfo.fileName)
)
add(Document.COLUMN_LAST_MODIFIED, fileInfo.lastModified)
add(Document.COLUMN_FLAGS, 0)
@@ -1,6 +1,7 @@
package net.syncthing.lite.utils
import android.webkit.MimeTypeMap
import net.syncthing.java.core.utils.PathUtils
object MimeType {
private const val DEFAULT_MIME_TYPE = "application/octet-stream"
@@ -11,7 +12,7 @@ object MimeType {
return mimeType ?: DEFAULT_MIME_TYPE
}
fun getFromUrl(url: String) = getFromExtension(
MimeTypeMap.getFileExtensionFromUrl(url).toLowerCase()
fun getFromFilename(path: String) = getFromExtension(
PathUtils.getFileExtensionFromFilename(path).toLowerCase()
)
}
+2 -7
View File
@@ -1,7 +1,2 @@
- update translations
- encrypt some temporarily data which is stored on disk
- update path validation
- fix crash when cleaning the cache
- fix crash of the index handler after cleaning the cache
- convert file extensions to lower case for detecting Apps to open it
- fix crash when accessing (e.g. trying to close) closed connections
- changed up button behavior
- updated translations
@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
app:showAsAction="always"
android:icon="@drawable/ic_home_white_24dp"
android:id="@+id/go_home"
android:title="@string/folder_browser_home" />
</menu>
+11 -6
View File
@@ -28,7 +28,7 @@
<string name="device_id">Geräte ID</string>
<string name="device_id_copied">Geräte ID in den Zwischenspeicher kopiert</string>
<string name="share_device_id_chooser">Teile Geräte ID mit</string>
<string name="other_syncthing_instance_title">Eine andere Syncthing Instanz läuft bereits</string>
<string name="other_syncthing_instance_title">Eine andere Syncthing-Instanz läuft bereits</string>
<string name="other_syncthing_instance_message">Lokale Auffindung wird nicht funktionieren. Stoppen Sie die andere Syncthing Instanz, um die lokale Auffindung zu ermöglichen.</string>
<string name="intro_page_one_title">Willkommen zu Syncthing Lite</string>
<string name="intro_page_one_description">Syncthing ersetzt proprietäre Sync- und Cloud-Services durch etwas Offenes, Vertrauenswürdiges und Dezentrales. Ihre Daten sind allein Ihre Daten, und Sie verdienen es zu wählen, wo sie gespeichert werden, ob sie an Dritte weitergegeben werden und wie sie über das Internet übertragen werden.</string>
@@ -38,9 +38,10 @@
<string name="intro_page_three_description">Akzeptieren Sie nun das Gerät mit der ID %1$s und geben Sie einen Ordner mit ihm frei. Es kann einige Minuten dauern, bis sich die Geräte verbinden.</string>
<string name="intro_page_three_searching_device">Versuche das andere Gerät zu finden. Dies kann einen Moment dauern.</string>
<string name="settings">Einstellungen</string>
<string name="settings_app_version_title">App Version</string>
<string name="settings_local_device_name">Lokaler Geräte Namen</string>
<string name="settings_app_version_title">App-Version</string>
<string name="settings_local_device_name">Lokaler Gerätenamen</string>
<string name="settings_local_device_summary">Name, den das andere Gerät für dieses Gerät sehen wird</string>
<string name="settings_shutdown_delay_title">Ausschaltverzögerung</string>
<string name="settings_force_stop">Beenden dieser App erzwingen</string>
<string name="settings_last_error_title">Letzter Fehler</string>
<string name="settings_last_error_summary">Details des letzten Fehlers anzeigen</string>
@@ -49,19 +50,23 @@
<string name="copy_to_clipboard">In die Zwischenablage kopieren</string>
<string name="copied_to_clipboard">In die Zwischenablage kopiert</string>
<string name="device_id_dialog_title">Geräte ID eingeben</string>
<string name="settings_shutdown_delay_10_seconds">10 Sekunden</string>
<string name="settings_shutdown_delay_30_seconds">30 Sekunden</string>
<string name="settings_shutdown_delay_1_minute">1 Minute</string>
<string name="settings_shutdown_delay_5_minutes">5 Minuten</string>
<string name="dialog_warning_reconnect_problem">
Aufgrund des Verhaltens dieser App und des Verhaltens des Syncthing-Servers können Sie sich für einige Minuten nicht verbinden, wenn die App erzwungen beendet wurde (durch das Entfernen aus der Liste der aktiven Apps) oder die Verbindung unterbrochen wurde.
Dies gilt nicht für Verbindungen, die per lokaler Gerätesuche hergestellt wurden.</string>
<string name="dialog_file_save_as">Speichern unter</string>
<string name="pending_index_updates">%d Index-Updates verbleibend</string>
<string name="pending_index_updates">%d Index-Aktualisierungen verbleibend</string>
<string name="device_status_connecting">Verbinden mit %s</string>
<string name="device_status_connected">Mit %s verbunden</string>
<string name="device_status_disconnected">Verbinden wird bald erneut versucht - es sind %d Adressen bekannt</string>
<string name="device_status_no_address">Keine bekannte Adresse für dieses Gerät</string>
<string name="dialog_enable_folder_sync_for_new_device_title">Ordnersynchronisation für neues Gerät aktivieren</string>
<string name="dialog_enable_folder_sync_for_new_device_text">Möchten Sie den Ordner %1$s mit %2$s (%3$s) synchronisieren?</string>
<string name="dialog_enable_folder_sync_for_new_device_positive">synchronisieren</string>
<string name="dialog_enable_folder_sync_for_new_device_negative">nicht synchronisieren</string>
<string name="dialog_enable_folder_sync_for_new_device_positive">Synchronisieren</string>
<string name="dialog_enable_folder_sync_for_new_device_negative">Nicht synchronisieren</string>
<string name="dialog_folder_info_device_list">Ordner teilen mit:</string>
<string name="dialog_folder_info_device_list_item">%1$s (%2$s)</string>
<string name="toast_error">Etwas in Syncthing Lite hat nicht funktioniert. Sie können die Details in den Einstellungen von Syncthing Lite anzeigen.</string>
-1
View File
@@ -43,7 +43,6 @@
<string name="settings_local_device_name">Nombre del dispositivo local</string>
<string name="settings_local_device_summary">El nombre que otros dispositivos verán para este dispositivo</string>
<string name="settings_shutdown_delay_title">Retardo en el apagado</string>
<string name="settings_shutdown_delay_summary">Tiempo antes de apagar el cliente Syncthing después de su último uso</string>
<string name="device_id_dialog_title">Introducir la ID del dispositivo</string>
<string name="settings_shutdown_delay_10_seconds">10 segundos</string>
<string name="settings_shutdown_delay_30_seconds">30 segundos</string>
+11 -1
View File
@@ -36,16 +36,26 @@
<string name="intro_page_three_title">Partager vos dossiers</string>
<string name="intro_page_two_description">Entrer l\'ID Syncthing de l\'appareil, ou scanner le QR code de l\'ID d\'un appareil.</string>
<string name="intro_page_three_description">Maintenant, acceptez l\'appareil avec l\'ID %1$s, et partagez un dossier avec lui. Cela peut prendre quelques minutes avant que les appareils ne se connectent.</string>
<string name="intro_page_three_searching_device">Essayer de trouver l\'autre appareil. Cela peut prendre un moment.</string>
<string name="settings">Réglages</string>
<string name="settings_app_version_title">Version d\'application</string>
<string name="settings_local_device_name">Nom local de l\'appareil</string>
<string name="settings_local_device_summary">Le nom que les autres appareils verront pour cet appareil</string>
<string name="settings_shutdown_delay_title">Délai d\'arrêt</string>
<string name="settings_shutdown_delay_summary">Délai avant d\'arrêter le client Syncthing après sa dernière utilisation</string>
<string name="settings_force_stop">Forcer l\'arrêt de cette application</string>
<string name="settings_last_error_title">Dernière erreur</string>
<string name="settings_last_error_summary">Voir les détails de la dernière erreur</string>
<string name="settings_report_bug_title">Rapporter un bug</string>
<string name="settings_report_bug_summary">Ouvrir un incident pour cette application sur GitHub</string>
<string name="copy_to_clipboard">Copier dans le presse-papiers</string>
<string name="copied_to_clipboard">Copié dans le presse-papiers</string>
<string name="device_id_dialog_title">Entrer l\'ID de l\'appareil</string>
<string name="settings_shutdown_delay_10_seconds">10 secondes</string>
<string name="settings_shutdown_delay_30_seconds">30 secondes</string>
<string name="settings_shutdown_delay_1_minute">1 minute</string>
<string name="settings_shutdown_delay_5_minutes">5 minutes</string>
<string name="dialog_file_save_as">Enregistrer sous</string>
<string name="pending_index_updates">%d mises à jour d\'index en attente</string>
<string name="device_status_connecting">Connexion à %s</string>
<string name="dialog_folder_info_device_list_item">%1$s (%2$s)</string>
</resources>
-1
View File
@@ -41,7 +41,6 @@
<string name="settings_local_device_name">Helyi eszköz neve</string>
<string name="settings_local_device_summary">Név amit a többi eszköz fog látni</string>
<string name="settings_shutdown_delay_title">Leállítás késleltetés</string>
<string name="settings_shutdown_delay_summary">A Syncthing leállítása ennyi idő elteltével a kliens utolsó csatlakozása után</string>
<string name="device_id_dialog_title">Eszközazonosító megadása</string>
<string name="settings_shutdown_delay_10_seconds">10 másodperc</string>
<string name="settings_shutdown_delay_30_seconds">30 másodperc</string>
+27 -1
View File
@@ -36,16 +36,42 @@
<string name="intro_page_three_title">Condividi le tue cartelle</string>
<string name="intro_page_two_description">Immetti un ID dispositivo Syncthing o esegui la scansione di un ID dispositivo da un codice QR</string>
<string name="intro_page_three_description">Ora accetta il dispositivo con ID %1$s, e condividi una cartella con esso. Potrebbero essere necessari alcuni minuti prima che i dispositivi si connettano.</string>
<string name="intro_page_three_searching_device">In attesa di trovare altri dispositivi. Questo potrebbe richiedere un momento.</string>
<string name="settings">Impostazioni</string>
<string name="settings_app_version_title">Versione dell\'app</string>
<string name="settings_local_device_name">Nome del dispositivo locale</string>
<string name="settings_local_device_summary">Il nome che altri dispositivi vedranno per questo dispositivo</string>
<string name="settings_shutdown_delay_title">Ritardo di chiusura</string>
<string name="settings_shutdown_delay_summary">Tempo prima della chiusura del client Syncthing dopo l\'ultimo utilizzo</string>
<string name="settings_force_stop">Forza l\'arresto dell\'App</string>
<string name="settings_last_error_title">Ultimo errore</string>
<string name="settings_last_error_summary">Visualizza i dettagli dell\'ultimo errore</string>
<string name="settings_report_bug_title">Segnala un bug</string>
<string name="settings_report_bug_summary">Apri segnalazioni per quest\'App su GitHub</string>
<string name="copy_to_clipboard">Copia negli appunti</string>
<string name="copied_to_clipboard">Copiato negli appunti</string>
<string name="device_id_dialog_title">Inserisci ID Dispositivo</string>
<string name="settings_shutdown_delay_10_seconds">10 secondi</string>
<string name="settings_shutdown_delay_30_seconds">30 secondi</string>
<string name="settings_shutdown_delay_1_minute">1 minuto</string>
<string name="settings_shutdown_delay_5_minutes">5 minuti</string>
<string name="dialog_warning_reconnect_problem">
A causa del comportamento di quest\'App e del comportamento del Server Syncthing,
non è possibile riconnettersi per alcuni minuti se l\'app è stata chiusa (a causa della rimozione dall\'elenco app recenti)
o la connessione è stata interrotta.
Questo non si applica alle connessioni di individuazione locale
</string>
<string name="dialog_file_save_as">Salva come</string>
<string name="pending_index_updates">%d aggiornamenti degli indici in sospeso</string>
<string name="device_status_connecting">Connessione a %s</string>
<string name="device_status_connected">Connesso a %s</string>
<string name="device_status_disconnected">Nuovo tentativo di connessione a breve: ci sono %d indirizzi noti</string>
<string name="device_status_no_address">Nessun indirizzo conosciuto per il dispositivo</string>
<string name="dialog_enable_folder_sync_for_new_device_title">Abilita sincronizzazione cartella per il nuovo dispositivo</string>
<string name="dialog_enable_folder_sync_for_new_device_text">Vuoi sincronizzare %1$s con %2$s (%3$s)?</string>
<string name="dialog_enable_folder_sync_for_new_device_positive">Sincronizzare</string>
<string name="dialog_enable_folder_sync_for_new_device_negative">Non sincronizzare</string>
<string name="dialog_folder_info_device_list">Condividi la cartella con:</string>
<string name="dialog_folder_info_device_list_item">%1$s (%2$s)</string>
</resources>
<string name="toast_error">Qualcosa non ha funzionato in Syncthing Lite. È possibile visualizzare i dettagli dalle impostazioni di Syncthing Lite.</string>
</resources>
+6
View File
@@ -59,6 +59,12 @@ fi stocate, dacă vor fi partajate cu terțe entități precum și cum vor fi
<string name="settings_shutdown_delay_30_seconds">30 secunde</string>
<string name="settings_shutdown_delay_1_minute">1 minut</string>
<string name="settings_shutdown_delay_5_minutes">5 minute</string>
<string name="dialog_warning_reconnect_problem">
Datorită modului în care această aplicație și serverul Syncthing funcționează,
nu se poate face reconectarea timp de câteva minute după ce aplicația a fost oprită (ștearsă din lista de aplicații care rulează)
sau conexiunea a fost întreruptă.
Aceasta limitare nu se aplica la conexiunile descoperite local.
</string>
<string name="dialog_file_save_as">Salvează ca</string>
<string name="pending_index_updates">%d actualizări de index în așteptare</string>
<string name="device_status_connecting">Conectare la %s</string>
-1
View File
@@ -42,7 +42,6 @@
<string name="settings_local_device_name">Lokala enhetens namn</string>
<string name="settings_local_device_summary">Namnet som andra enheter kommer att se för den här enheten</string>
<string name="settings_shutdown_delay_title">Avstängningsfördröjning</string>
<string name="settings_shutdown_delay_summary">Tid innan du stänger av Syncthing-klienten efter den senaste användningen</string>
<string name="settings_force_stop">Tvinga stoppa denna App</string>
<string name="settings_last_error_title">Senaste felet</string>
<string name="settings_last_error_summary">Visa detaljerna för det senaste felet</string>
@@ -40,7 +40,6 @@
<string name="settings_local_device_name">本地设备名称</string>
<string name="settings_local_device_summary">此设备将被其他设备看到的名称</string>
<string name="settings_shutdown_delay_title">关闭延迟</string>
<string name="settings_shutdown_delay_summary">关闭 Syncthing 客户端与其最后使用之间的时间</string>
<string name="device_id_dialog_title">输入设备 ID</string>
<string name="settings_shutdown_delay_10_seconds">10 秒</string>
<string name="settings_shutdown_delay_30_seconds">30 秒</string>
+2 -1
View File
@@ -42,7 +42,7 @@
<string name="settings_local_device_name">Local device name</string>
<string name="settings_local_device_summary">The name that other devices will see for this device</string>
<string name="settings_shutdown_delay_title">Shutdown delay</string>
<string name="settings_shutdown_delay_summary">Time before shuting down the Syncthing client after its last usage</string>
<string name="settings_shutdown_delay_summary">Time before shutting down the Syncthing client after its last usage</string>
<string name="settings_force_stop">Force stop this App</string>
<string name="settings_last_error_title">Last error</string>
<string name="settings_last_error_summary">View the details of the last error</string>
@@ -74,4 +74,5 @@
<string name="dialog_folder_info_device_list">Share folder with:</string>
<string name="dialog_folder_info_device_list_item">%1$s (%2$s)</string>
<string name="toast_error">Something went wrong in Syncthing Lite. You can view the details from the settings of Syncthing Lite.</string>
<string name="folder_browser_home">Home</string>
</resources>
@@ -130,4 +130,12 @@ object PathUtils {
return dir.removeSuffix(PATH_SEPARATOR) + file
}
fun getFileExtensionFromFilename(filename: String): String {
assertFilenameValid(filename)
val dotIndex = filename.lastIndexOf(".")
return if (dotIndex != 0) filename.substring(dotIndex + 1) else ""
}
}