Skip to content

Commit 2df18ee

Browse files
authored
Merge pull request #12 from phpbg/allow_cleartext
Allow cleartext & translation updates
2 parents 525aad0 + 7a40703 commit 2df18ee

File tree

10 files changed

+135
-27
lines changed

10 files changed

+135
-27
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
android:icon="@mipmap/ic_launcher"
2323
android:label="@string/app_name"
2424
android:localeConfig="@xml/locales_config"
25+
android:networkSecurityConfig="@xml/network_security_config"
2526
android:roundIcon="@mipmap/ic_launcher_round"
2627
android:supportsRtl="true"
2728
android:theme="@style/Theme.MyApplication"

app/src/main/java/com/phpbg/easysync/ui/DavSettingsActivity.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ private fun Preferences(
134134
)
135135
)
136136
Spacer(modifier = Modifier.height(8.dp))
137+
if (uiState.settings.url.startsWith("http://", true)) {
138+
Text(text = stringResource(R.string.dav_settings_url_insecure), color = MaterialTheme.colorScheme.error)
139+
Spacer(modifier = Modifier.height(8.dp))
140+
}
137141
TextField(value = uiState.settings.username,
138142
onValueChange = { stateChangeHandler(uiState.settings.copy(username = it)) },
139143
modifier = Modifier.fillMaxWidth(),

app/src/main/java/com/phpbg/easysync/ui/MainActivity.kt

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -172,31 +172,31 @@ private fun Main(
172172
val davSettingsTitle = stringResource(R.string.dav_settings_title)
173173
if (!showDavStatus.value) {
174174
StatusTitleClickable(
175-
title = "DAV not configured.",
175+
title = stringResource(R.string.home_dav_status_not_configured),
176176
actionTitle = davSettingsTitle,
177177
statusColor = Color.Gray,
178178
statusIcon = Icons.Default.Settings,
179179
clickHandler = davSettingsHandler,
180180
)
181181
} else if (isDavLoading.value) {
182182
StatusTitleClickable(
183-
title = "DAV loading.",
183+
title = stringResource(R.string.home_dav_status_loading),
184184
actionTitle = davSettingsTitle,
185185
statusColor = Color.Gray,
186186
statusIcon = Icons.Default.Schedule,
187187
clickHandler = davSettingsHandler,
188188
)
189189
} else if (isDavConnected.value) {
190190
StatusTitleClickable(
191-
title = "DAV Connected.",
191+
title = stringResource(R.string.home_dav_status_connected),
192192
actionTitle = davSettingsTitle,
193193
statusColor = Color.Green,
194194
statusIcon = Icons.Default.CheckCircle,
195195
clickHandler = davSettingsHandler,
196196
)
197197
} else {
198198
StatusTitleClickable(
199-
title = "DAV not connected.",
199+
title = stringResource(R.string.home_dav_status_not_connected),
200200
actionTitle = davSettingsTitle,
201201
statusColor = Color.Red,
202202
statusIcon = Icons.Default.Cancel,
@@ -207,14 +207,14 @@ private fun Main(
207207

208208
if (hasOptionalPermissions.value) {
209209
StatusTitle(
210-
title = "Permissions granted",
210+
title = stringResource(R.string.home_permissions_granted),
211211
statusColor = Color.Green,
212212
statusIcon = Icons.Default.CheckCircle
213213
)
214214
} else {
215215
StatusTitleClickable(
216-
title = "Optional permissions missing. ",
217-
actionTitle = "Fix...",
216+
title = stringResource(R.string.home_permissions_missing),
217+
actionTitle = stringResource(R.string.home_permissions_action_fix),
218218
statusColor = Color.Yellow,
219219
statusIcon = Icons.Default.Warning,
220220
clickHandler = {
@@ -263,12 +263,12 @@ private fun Main(
263263
.fillMaxWidth()
264264
.background(color = MaterialTheme.colorScheme.surfaceVariant),
265265
verticalAlignment = Alignment.CenterVertically,
266+
horizontalArrangement = Arrangement.Center
266267
) {
267268
val modifier = Modifier.height(32.dp)
268269
Column(
269270
modifier = Modifier
270271
.padding(1.dp)
271-
.fillMaxWidth(0.5f)
272272
.fillMaxHeight(),
273273
verticalArrangement = Arrangement.Center,
274274
horizontalAlignment = Alignment.End
@@ -281,7 +281,7 @@ private fun Main(
281281
}
282282
Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
283283
if (jobCount == 0) {
284-
PrimaryTextLarge(text = "Not")
284+
PrimaryTextLarge(text = stringResource(R.string.home_files_not_running_prefix))
285285
} else {
286286
PrimaryTextLarge(text = formatCounter(jobCountPercent) + "%")
287287
}
@@ -290,22 +290,21 @@ private fun Main(
290290
Column(
291291
modifier = Modifier
292292
.padding(1.dp)
293-
.fillMaxWidth(0.5f)
294293
.fillMaxHeight(),
295294
verticalArrangement = Arrangement.Center,
296295
horizontalAlignment = Alignment.Start
297296
) {
298297
Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
299-
StdText(text = "local files")
298+
StdText(text = stringResource(R.string.home_files_local))
300299
}
301300
Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
302-
StdText(text = "synced")
301+
StdText(text = stringResource(R.string.home_files_synced))
303302
}
304303
Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
305304
if (jobCount == 0) {
306-
StdText(text = "running")
305+
StdText(text = stringResource(R.string.home_sync_running))
307306
} else {
308-
StdText(text = "syncing")
307+
StdText(text = stringResource(R.string.home_sync_syncing))
309308
}
310309
}
311310
}
@@ -325,11 +324,9 @@ private fun Main(
325324
}
326325
fullSyncNowHandler()
327326
}, enabled = syncEnabled) {
328-
Text(text = "Sync now", style = MaterialTheme.typography.labelLarge)
327+
Text(text = stringResource(R.string.home_action_sync_now), style = MaterialTheme.typography.labelLarge)
329328
}
330329
}
331-
332-
// TODO translations
333330
}
334331

335332
// Floating bottom

app/src/main/java/com/phpbg/easysync/ui/SyncSettingsActivity.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,24 +101,24 @@ private fun Main(
101101
Title(text = stringResource(R.string.sync_settings_title))
102102
Spacer(modifier = Modifier.height(16.dp))
103103
SwitchSetting(
104-
title = "Sync on cellular",
105-
description = "Allow scheduled synchronization on cellular network",
104+
title = stringResource(R.string.sync_settings_on_cellular_title),
105+
description = stringResource(R.string.sync_settings_on_cellular_desc),
106106
checked = syncOnCellular,
107107
onCheckedChange = syncOnCellularHandler
108108
)
109109
SwitchSetting(
110-
title = "Sync on battery",
111-
description = "Allow scheduled synchronization on battery",
110+
title = stringResource(R.string.sync_settings_on_battery_title),
111+
description = stringResource(R.string.sync_settings_on_battery_desc),
112112
checked = syncOnBattery,
113113
onCheckedChange = syncOnBatteryHandler
114114
)
115115
Spacer(modifier = Modifier.height(16.dp))
116-
StdText("Conflicts handling")
117-
Description("If a file is modified on both side:")
116+
StdText(stringResource(R.string.sync_settings_conflicts_title))
117+
Description(stringResource(R.string.sync_settings_conflicts_desc))
118118
val options = mapOf(
119-
ConflictStrategy.KEEP_LOCAL.name to "Keep local copy (overwrite remote copy)",
120-
ConflictStrategy.IGNORE.name to "Ignore file",
121-
ConflictStrategy.KEEP_REMOTE.name to "Keep remote copy (overwrite local copy)"
119+
ConflictStrategy.KEEP_LOCAL.name to stringResource(R.string.sync_settings_conflicts_strategy_keep_local),
120+
ConflictStrategy.IGNORE.name to stringResource(R.string.sync_settings_conflicts_strategy_ignore),
121+
ConflictStrategy.KEEP_REMOTE.name to stringResource(R.string.sync_settings_conflicts_strategy_keep_remote)
122122
)
123123
RadioGroup(options, selected = conflictStrategy.name, onClick = conflictStrategyHandler)
124124
}

app/src/main/res/values-de/strings.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,25 @@
66
<string name="dav_settings_hide_password">Passwort ausblenden</string>
77
<string name="dav_settings_password">Passwort</string>
88
<string name="dav_settings_title">DAV-Einstellungen</string>
9+
<string name="dav_settings_url_insecure">Diese URL ist unsicher. Alle Ihre Daten werden von jedem lesbar sein. Erwägen Sie einen Wechsel zu HTTPS.</string>
910
<string name="dav_settings_username">Benutzername</string>
1011
<string name="dav_settings_remote_not_empty">Der Remote-Ordner ist nicht leer. Alle Dateien werden heruntergeladen und mit Ihrem Gerät synchronisiert. Trotzdem speichern?</string>
1112
<string name="dav_settings_save">Speichern</string>
1213
<string name="dav_settings_save_anyway">Trotzdem speichern</string>
1314
<string name="dav_settings_show_password">Passwort anzeigen</string>
15+
<string name="home_action_sync_now">Jetzt synchronisieren</string>
16+
<string name="home_dav_status_connected">DAV verbunden.</string>
17+
<string name="home_dav_status_loading">DAV wird geladen.</string>
18+
<string name="home_dav_status_not_configured">DAV nicht konfiguriert.</string>
19+
<string name="home_dav_status_not_connected">DAV nicht verbunden.</string>
20+
<string name="home_files_local">lokale Dateien</string>
21+
<string name="home_files_not_running_prefix">Nicht</string>
22+
<string name="home_files_synced">synchronisiert</string>
23+
<string name="home_permissions_granted">Berechtigungen erteilt</string>
24+
<string name="home_permissions_missing">Optionale Berechtigungen fehlen.</string>
25+
<string name="home_permissions_action_fix">Beheben…</string>
26+
<string name="home_sync_running">läuft</string>
27+
<string name="home_sync_syncing">synchronisiert</string>
1428
<string name="permissions_activity_title">Berechtigungen</string>
1529
<string name="permissions_files_text">Um Ihre Dateien zu synchronisieren, benötigen wir vollen Zugriff auf Ihre Dateien. Gehen Sie zu den Einstellungen, um die Berechtigung zu aktivieren</string>
1630
<string name="permissions_files_button">Dateieinstellungen</string>
@@ -28,5 +42,14 @@
2842
<string name="permissions_next">Weiter</string>
2943
<string name="sync_settings_title">Synchronisationseinstellungen</string>
3044
<string name="sync_settings_activity_title">Synchronisationseinstellungen</string>
45+
<string name="sync_settings_conflicts_title">Konfliktbehandlung</string>
46+
<string name="sync_settings_conflicts_desc">Wenn eine Datei auf beiden Seiten geändert wurde:</string>
47+
<string name="sync_settings_conflicts_strategy_keep_local">Lokale Kopie behalten (Überschreibe die entfernte Kopie)</string>
48+
<string name="sync_settings_conflicts_strategy_ignore">Datei ignorieren</string>
49+
<string name="sync_settings_conflicts_strategy_keep_remote">Entfernte Kopie behalten (Überschreibe die lokale Kopie)</string>
50+
<string name="sync_settings_on_battery_title">Synchronisieren bei Batteriebetrieb</string>
51+
<string name="sync_settings_on_battery_desc">Geplante Synchronisierung bei Batteriebetrieb erlauben</string>
52+
<string name="sync_settings_on_cellular_title">Synchronisieren über Mobilfunknetz</string>
53+
<string name="sync_settings_on_cellular_desc">Geplante Synchronisierung über das Mobilfunknetz erlauben</string>
3154
<string name="about">Über, Hilfe</string>
3255
</resources>

app/src/main/res/values-fr/strings.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,21 @@
1010
<string name="dav_settings_hide_password">Masquer le mot de passe</string>
1111
<string name="dav_settings_save_anyway">Sauvegarder quand même ?</string>
1212
<string name="dav_settings_show_password">Afficher le mot de passe</string>
13+
<string name="home_action_sync_now">Synchroniser</string>
14+
<string name="home_dav_status_connected">DAV Connecté.</string>
15+
<string name="home_dav_status_loading">Connexion DAV en cours.</string>
16+
<string name="home_dav_status_not_configured">DAV non configuré.</string>
17+
<string name="home_dav_status_not_connected">DAV non connecté.</string>
18+
<string name="home_files_local">fichiers locaux</string>
19+
<string name="home_files_not_running_prefix">En</string>
20+
<string name="home_files_synced">synchronisé</string>
21+
<string name="home_permissions_granted">Permissions accordées</string>
22+
<string name="home_permissions_missing">Permissions optionnelles manquantes.</string>
23+
<string name="home_permissions_action_fix">Corriger…</string>
24+
<string name="home_sync_running">attente</string>
25+
<string name="home_sync_syncing">en cours</string>
1326
<string name="dav_settings_title">Paramètres DAV</string>
27+
<string name="dav_settings_url_insecure">Cette URL n\'est pas sécurisée. Vos données pourront être interceptées. Vous devriez utiliser HTTPS.</string>
1428
<string name="permissions_activity_title">Permissions</string>
1529
<string name="permissions_files_text">Pour fonctionner l\'application doit accéder à tous vos fichiers. Cliquez sur \"Suivant\" pour autoriser l\'accès.</string>
1630
<string name="permissions_files_button">Suivant</string>
@@ -28,5 +42,14 @@
2842
<string name="permissions_next">Suivant</string>
2943
<string name="sync_settings_title">Paramètres de synchronisation</string>
3044
<string name="sync_settings_activity_title">Paramètres de synchronisation</string>
45+
<string name="sync_settings_conflicts_title">Conflits</string>
46+
<string name="sync_settings_conflicts_desc">Si un fichier est modifié des deux côtés:</string>
47+
<string name="sync_settings_conflicts_strategy_keep_local">Garder la copie locale (écraser la distante)</string>
48+
<string name="sync_settings_conflicts_strategy_ignore">Ignorer</string>
49+
<string name="sync_settings_conflicts_strategy_keep_remote">Garder la copie distante (écraser la locale)</string>
50+
<string name="sync_settings_on_battery_title">Sur batterie</string>
51+
<string name="sync_settings_on_battery_desc">Autoriser la synchronisation quand le téléphone est sur batterie</string>
52+
<string name="sync_settings_on_cellular_title">Sur réseau mobile</string>
53+
<string name="sync_settings_on_cellular_desc">Autoriser la synchronisation quand le téléphone est sur le réseau mobile</string>
3154
<string name="about">A propos, aide</string>
3255
</resources>

app/src/main/res/values-ru/strings.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,25 @@
55
<string name="dav_settings_hide_password">Скрыть пароль</string>
66
<string name="dav_settings_password">Пароль</string>
77
<string name="dav_settings_title">Настройки DAV</string>
8+
<string name="dav_settings_url_insecure">Этот URL-адрес небезопасен. Все ваши данные будут доступны для чтения кем либо. Подумайте о переходе на HTTPS.</string>
89
<string name="dav_settings_username">Имя пользователя</string>
910
<string name="dav_settings_remote_not_empty">Удалённая папка не пуста. Все файлы будут загружены и синхронизированы с вашим устройством. Все равно сохранить?</string>
1011
<string name="dav_settings_save">Сохранить</string>
1112
<string name="dav_settings_save_anyway">Сохранить всё равно</string>
1213
<string name="dav_settings_show_password">Отобразить пароль</string>
14+
<string name="home_action_sync_now">Синхронизировать сейчас</string>
15+
<string name="home_dav_status_connected">DAV подключён.</string>
16+
<string name="home_dav_status_loading">DAV загружается.</string>
17+
<string name="home_dav_status_not_configured">DAV не настроен.</string>
18+
<string name="home_dav_status_not_connected">DAV не подключен.</string>
19+
<string name="home_files_local">локальные файлы</string>
20+
<string name="home_files_not_running_prefix">Не</string>
21+
<string name="home_files_synced">синхронизированы</string>
22+
<string name="home_permissions_granted">Разрешения предоставлены</string>
23+
<string name="home_permissions_missing">Отсутствуют необязательные разрешения.</string>
24+
<string name="home_permissions_action_fix">Исправить…</string>
25+
<string name="home_sync_running">выполняется</string>
26+
<string name="home_sync_syncing">синхронизация</string>
1327
<string name="permissions_activity_title">Разрешения</string>
1428
<string name="permissions_files_text">Для синхронизации ваших файлов нам необходим полный доступ к вашим файлам. Зайдите в настройки, чтобы включить разрешение</string>
1529
<string name="permissions_files_button">Настройки файлов</string>
@@ -27,5 +41,14 @@
2741
<string name="permissions_next">Далее</string>
2842
<string name="sync_settings_title">Настройки синхронизации</string>
2943
<string name="sync_settings_activity_title">Настройки синхронизации</string>
44+
<string name="sync_settings_conflicts_title">Разрешение конфликтов</string>
45+
<string name="sync_settings_conflicts_desc">Если файл изменен на обеих сторонах:</string>
46+
<string name="sync_settings_conflicts_strategy_keep_local">Сохранить локальную копию (перезаписать удаленную копию)</string>
47+
<string name="sync_settings_conflicts_strategy_ignore">Игнорировать файл</string>
48+
<string name="sync_settings_conflicts_strategy_keep_remote">Сохранить удаленную копию (перезаписать локальную копию)</string>
49+
<string name="sync_settings_on_battery_title">Синхронизация при работе от батареи</string>
50+
<string name="sync_settings_on_battery_desc">Разрешить запланированную синхронизацию при работе от батареи</string>
51+
<string name="sync_settings_on_cellular_title">Синхронизация по мобильному интернету</string>
52+
<string name="sync_settings_on_cellular_desc">Разрешить запланированную синхронизацию по мобильному интернету</string>
3053
<string name="about">О приложении, помощь</string>
3154
</resources>

0 commit comments

Comments
 (0)