Merge remote-tracking branch 'origin/master' into dev

This commit is contained in:
Tobias Kaminsky 2024-01-19 03:36:47 +01:00
commit 1ef544655f
19 changed files with 125 additions and 5 deletions

View file

@ -4,7 +4,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME=/usr/lib/android-sdk ENV ANDROID_HOME=/usr/lib/android-sdk
RUN apt-get update -y RUN apt-get update -y
RUN apt-get install -y unzip wget openjdk-11-jdk vim RUN apt-get install -y unzip wget openjdk-17-jdk vim
RUN wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip -O /tmp/commandlinetools.zip RUN wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip -O /tmp/commandlinetools.zip
RUN cd /tmp && unzip commandlinetools.zip RUN cd /tmp && unzip commandlinetools.zip

View file

@ -32,7 +32,7 @@ jobs:
with: with:
swap-size-gb: 10 swap-size-gb: 10
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@e5f05b81d5b6ff8cfa111c80c22c5fd02a384118 # v3.23.0 uses: github/codeql-action/init@0b21cf2492b6b02c465a3e5d7c473717ad7721ba # v3.23.1
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
- name: Set up JDK 17 - name: Set up JDK 17
@ -46,4 +46,4 @@ jobs:
echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > "$HOME/.gradle/gradle.properties" echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > "$HOME/.gradle/gradle.properties"
./gradlew assembleDebug ./gradlew assembleDebug
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@e5f05b81d5b6ff8cfa111c80c22c5fd02a384118 # v3.23.0 uses: github/codeql-action/analyze@0b21cf2492b6b02c465a3e5d7c473717ad7721ba # v3.23.1

View file

@ -37,6 +37,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard. # Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning" - name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@e5f05b81d5b6ff8cfa111c80c22c5fd02a384118 # v3.23.0 uses: github/codeql-action/upload-sarif@0b21cf2492b6b02c465a3e5d7c473717ad7721ba # v3.23.1
with: with:
sarif_file: results.sarif sarif_file: results.sarif

View file

@ -35,6 +35,7 @@ import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
@ -316,6 +317,13 @@ public class MainApp extends MultiDexApplication implements HasAndroidInjector {
OwnCloudClientManagerFactory.setUserAgent(getUserAgent()); OwnCloudClientManagerFactory.setUserAgent(getUserAgent());
try {
OwnCloudClientManagerFactory.setProxyHost(getResources().getString(R.string.proxy_host));
OwnCloudClientManagerFactory.setProxyPort(getResources().getInteger(R.integer.proxy_port));
} catch (Resources.NotFoundException e) {
// no proxy set
}
// initialise thumbnails cache on background thread // initialise thumbnails cache on background thread
new ThumbnailsCacheManager.InitDiskCacheTask().execute(); new ThumbnailsCacheManager.InitDiskCacheTask().execute();

View file

@ -366,6 +366,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
private void initWebViewLogin(String baseURL, boolean useGenericUserAgent) { private void initWebViewLogin(String baseURL, boolean useGenericUserAgent) {
viewThemeUtils.platform.colorCircularProgressBar(accountSetupWebviewBinding.loginWebviewProgressBar, ColorRole.ON_PRIMARY_CONTAINER); viewThemeUtils.platform.colorCircularProgressBar(accountSetupWebviewBinding.loginWebviewProgressBar, ColorRole.ON_PRIMARY_CONTAINER);
accountSetupWebviewBinding.loginWebview.setVisibility(View.GONE); accountSetupWebviewBinding.loginWebview.setVisibility(View.GONE);
new WebViewUtil(this).setProxyKKPlus(accountSetupWebviewBinding.loginWebview);
accountSetupWebviewBinding.loginWebview.getSettings().setAllowFileAccess(false); accountSetupWebviewBinding.loginWebview.getSettings().setAllowFileAccess(false);
accountSetupWebviewBinding.loginWebview.getSettings().setJavaScriptEnabled(true); accountSetupWebviewBinding.loginWebview.getSettings().setJavaScriptEnabled(true);
@ -402,6 +403,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
url = getResources().getString(R.string.webview_login_url); url = getResources().getString(R.string.webview_login_url);
} }
new WebViewUtil(this).setProxyKKPlus(accountSetupWebviewBinding.loginWebview);
if (url.startsWith(HTTPS_PROTOCOL)) { if (url.startsWith(HTTPS_PROTOCOL)) {
strictMode = true; strictMode = true;
} }

View file

@ -49,6 +49,7 @@ import com.owncloud.android.datamodel.SyncedFolderProvider;
import com.owncloud.android.datamodel.ThumbnailsCacheManager; import com.owncloud.android.datamodel.ThumbnailsCacheManager;
import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimeTypeUtil; import com.owncloud.android.utils.MimeTypeUtil;
import com.owncloud.android.utils.WebViewUtil;
import javax.inject.Inject; import javax.inject.Inject;
@ -82,6 +83,11 @@ public abstract class EditorWebView extends ExternalSiteWebView {
this.url = loadedUrl; this.url = loadedUrl;
if (!url.isEmpty()) { if (!url.isEmpty()) {
new WebViewUtil(getApplicationContext()).setProxyKKPlus(this.getWebView());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
this.getWebView().loadUrl(url); this.getWebView().loadUrl(url);
new Handler().postDelayed(() -> { new Handler().postDelayed(() -> {

View file

@ -41,6 +41,7 @@ import com.owncloud.android.databinding.ExternalsiteWebviewBinding;
import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.ui.NextcloudWebViewClient; import com.owncloud.android.ui.NextcloudWebViewClient;
import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.WebViewUtil;
import java.io.InputStream; import java.io.InputStream;
@ -160,6 +161,7 @@ public class ExternalSiteWebView extends FileActivity {
} }
}); });
new WebViewUtil(getApplicationContext()).setProxyKKPlus(getWebView());
getWebView().loadUrl(url); getWebView().loadUrl(url);
} }

View file

@ -21,12 +21,21 @@
package com.owncloud.android.utils package com.owncloud.android.utils
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.net.Proxy
import android.net.Uri import android.net.Uri
import android.text.TextUtils
import android.util.ArrayMap
import android.util.Log
import android.webkit.WebView
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.owncloud.android.R import com.owncloud.android.R
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory
import java.io.PrintWriter
import java.io.StringWriter
class WebViewUtil(private val context: Context) { class WebViewUtil(private val context: Context) {
@ -107,4 +116,64 @@ class WebViewUtil(private val context: Context) {
private fun getMinimumSupportedMajorWebViewVersion(): String { private fun getMinimumSupportedMajorWebViewVersion(): String {
return "118" return "118"
} }
/**
* From https://stackoverflow.com/a/18453384
*
* @return
*/
@SuppressLint("PrivateApi", "DiscouragedPrivateApi")
fun setProxyKKPlus(webView: WebView) {
val proxyHost = OwnCloudClientManagerFactory.getProxyHost()
val proxyPort = OwnCloudClientManagerFactory.getProxyPort()
if (TextUtils.isEmpty(proxyHost) || proxyPort <= 0) {
return
}
val applicationClassName = "android.app.Application"
Log.d(PROXY_TAG, "Setting proxy with >= 4.4 API.")
val appContext = webView.context.applicationContext
System.setProperty("http.proxyHost", proxyHost)
System.setProperty("http.proxyPort", proxyPort.toString())
System.setProperty("https.proxyHost", proxyHost)
System.setProperty("https.proxyPort", proxyPort.toString())
try {
val applicationClass = Class.forName(applicationClassName)
val loadedApkField = applicationClass.getField("mLoadedApk")
loadedApkField.isAccessible = true
val loadedApk = loadedApkField[appContext]
val loadedApkCls = Class.forName("android.app.LoadedApk")
val receiversField = loadedApkCls.getDeclaredField("mReceivers")
receiversField.isAccessible = true
val receivers = receiversField[loadedApk] as ArrayMap<*, *>
for (receiverMap in receivers.values) {
for (rec in (receiverMap as ArrayMap<*, *>).keys) {
val clazz: Class<*> = rec.javaClass
if (clazz.name.contains("ProxyChangeListener")) {
val onReceiveMethod = clazz.getDeclaredMethod(
"onReceive",
Context::class.java,
Intent::class.java
)
val intent = Intent(Proxy.PROXY_CHANGE_ACTION)
onReceiveMethod.invoke(rec, appContext, intent)
}
}
}
Log.d(PROXY_TAG, "Setting proxy with >= 4.4 API successful!")
} catch (e: Exception) {
val sw = StringWriter()
e.printStackTrace(PrintWriter(sw))
val exceptionAsString = sw.toString()
e.message?.let { Log.v(PROXY_TAG, it) }
Log.v(PROXY_TAG, exceptionAsString)
}
}
companion object {
private const val PROXY_TAG = "PROXY"
}
} }

View file

@ -691,6 +691,8 @@
<string name="screenshot_06_davdroid_heading">التقويم &amp; جهات الاتصال</string> <string name="screenshot_06_davdroid_heading">التقويم &amp; جهات الاتصال</string>
<string name="screenshot_06_davdroid_subline">مزامنة مع DAVx5</string> <string name="screenshot_06_davdroid_subline">مزامنة مع DAVx5</string>
<string name="search_error">خطاء في الحصول على نتائج البحث</string> <string name="search_error">خطاء في الحصول على نتائج البحث</string>
<string name="secure_share_not_set_up">المشاركة الآمنة لم يتم إعدادها بالنسبة لهذا المستخدِم</string>
<string name="secure_share_search">المشاركة الآمنة ...</string>
<string name="select_all">تحديد الكل</string> <string name="select_all">تحديد الكل</string>
<string name="select_media_folder">تعيين مجلد الوسائط</string> <string name="select_media_folder">تعيين مجلد الوسائط</string>
<string name="select_one_template">الرجاء تحديد قالب واحد</string> <string name="select_one_template">الرجاء تحديد قالب واحد</string>
@ -725,6 +727,7 @@
<string name="share_link_with_label">مشاركة الرابط (%1$s)</string> <string name="share_link_with_label">مشاركة الرابط (%1$s)</string>
<string name="share_no_expiration_date_label">تعيين تاريخ إنتهاء الصلاحية</string> <string name="share_no_expiration_date_label">تعيين تاريخ إنتهاء الصلاحية</string>
<string name="share_no_password_title">تعيين كلمة سرية</string> <string name="share_no_password_title">تعيين كلمة سرية</string>
<string name="share_not_allowed_when_file_drop">إعادة المشاركة غير مسموح بها خلال الإفلات الآمن للملف</string>
<string name="share_password_title">محمي بكلمة مرور</string> <string name="share_password_title">محمي بكلمة مرور</string>
<string name="share_permission_can_edit">يمكن تعديله</string> <string name="share_permission_can_edit">يمكن تعديله</string>
<string name="share_permission_file_drop">اسقاط الملف</string> <string name="share_permission_file_drop">اسقاط الملف</string>

View file

@ -686,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">Calendar &amp; contacts</string> <string name="screenshot_06_davdroid_heading">Calendar &amp; contacts</string>
<string name="screenshot_06_davdroid_subline">Sync with DAVx5</string> <string name="screenshot_06_davdroid_subline">Sync with DAVx5</string>
<string name="search_error">Error getting search results</string> <string name="search_error">Error getting search results</string>
<string name="secure_share_not_set_up">Secure sharing is not set up for this user</string>
<string name="secure_share_search">Secure share …</string>
<string name="select_all">Select all</string> <string name="select_all">Select all</string>
<string name="select_media_folder">Set media folder</string> <string name="select_media_folder">Set media folder</string>
<string name="select_one_template">Please select one template</string> <string name="select_one_template">Please select one template</string>
@ -720,6 +722,7 @@
<string name="share_link_with_label">Share link (%1$s)</string> <string name="share_link_with_label">Share link (%1$s)</string>
<string name="share_no_expiration_date_label">Set expiration date</string> <string name="share_no_expiration_date_label">Set expiration date</string>
<string name="share_no_password_title">Set password</string> <string name="share_no_password_title">Set password</string>
<string name="share_not_allowed_when_file_drop">Resharing is not allowed during secure file drop</string>
<string name="share_password_title">Password-protected</string> <string name="share_password_title">Password-protected</string>
<string name="share_permission_can_edit">Can edit</string> <string name="share_permission_can_edit">Can edit</string>
<string name="share_permission_file_drop">File drop</string> <string name="share_permission_file_drop">File drop</string>

View file

@ -686,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">Kalender &amp; Kontakte</string> <string name="screenshot_06_davdroid_heading">Kalender &amp; Kontakte</string>
<string name="screenshot_06_davdroid_subline">Synchronisiere mit DAVx5</string> <string name="screenshot_06_davdroid_subline">Synchronisiere mit DAVx5</string>
<string name="search_error">Fehler beim Abrufen der Suchergebnisse</string> <string name="search_error">Fehler beim Abrufen der Suchergebnisse</string>
<string name="secure_share_not_set_up">Sicheres teilen ist für diesen Benutzer nicht eingerichtet</string>
<string name="secure_share_search">Sicheres teilen …</string>
<string name="select_all">Alle auswählen</string> <string name="select_all">Alle auswählen</string>
<string name="select_media_folder">Medien-Ordner auswählen</string> <string name="select_media_folder">Medien-Ordner auswählen</string>
<string name="select_one_template">Bitte eine Vorlage auswählen</string> <string name="select_one_template">Bitte eine Vorlage auswählen</string>
@ -720,6 +722,7 @@
<string name="share_link_with_label">Teile Link (%1$s)</string> <string name="share_link_with_label">Teile Link (%1$s)</string>
<string name="share_no_expiration_date_label">Ablaufdatum setzen</string> <string name="share_no_expiration_date_label">Ablaufdatum setzen</string>
<string name="share_no_password_title">Passwort setzen</string> <string name="share_no_password_title">Passwort setzen</string>
<string name="share_not_allowed_when_file_drop">Erneutes teilen ist für die sichere Dateiablage nicht zugelassen</string>
<string name="share_password_title">Passwortgeschützt</string> <string name="share_password_title">Passwortgeschützt</string>
<string name="share_permission_can_edit">Kann bearbeiten</string> <string name="share_permission_can_edit">Kann bearbeiten</string>
<string name="share_permission_file_drop">Dateiablage</string> <string name="share_permission_file_drop">Dateiablage</string>

View file

@ -686,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">Calendario y contactos</string> <string name="screenshot_06_davdroid_heading">Calendario y contactos</string>
<string name="screenshot_06_davdroid_subline">Sincronizar con DAVx5</string> <string name="screenshot_06_davdroid_subline">Sincronizar con DAVx5</string>
<string name="search_error">Error al cargar resultados de búsqueda</string> <string name="search_error">Error al cargar resultados de búsqueda</string>
<string name="secure_share_not_set_up">Compartir en modo seguro no está configurado para este usuario</string>
<string name="secure_share_search">Compartir en modo seguro …</string>
<string name="select_all">Seleccionar todo</string> <string name="select_all">Seleccionar todo</string>
<string name="select_media_folder">Establece la carpeta multimedia</string> <string name="select_media_folder">Establece la carpeta multimedia</string>
<string name="select_one_template">Por favor, selecciona una plantilla</string> <string name="select_one_template">Por favor, selecciona una plantilla</string>
@ -720,6 +722,7 @@
<string name="share_link_with_label">Link para compartir (%1$s)</string> <string name="share_link_with_label">Link para compartir (%1$s)</string>
<string name="share_no_expiration_date_label">Fijar fecha de caducidad</string> <string name="share_no_expiration_date_label">Fijar fecha de caducidad</string>
<string name="share_no_password_title">Establecer contraseña</string> <string name="share_no_password_title">Establecer contraseña</string>
<string name="share_not_allowed_when_file_drop">No se permite volver a compartir durante la entrega segura de archivos</string>
<string name="share_password_title">Protegido con contraseña</string> <string name="share_password_title">Protegido con contraseña</string>
<string name="share_permission_can_edit">Puede editar</string> <string name="share_permission_can_edit">Puede editar</string>
<string name="share_permission_file_drop">Entrega de archivos</string> <string name="share_permission_file_drop">Entrega de archivos</string>

View file

@ -345,6 +345,7 @@
<string name="file_list_empty_shared_headline">Ingenting delt enda</string> <string name="file_list_empty_shared_headline">Ingenting delt enda</string>
<string name="file_list_empty_unified_search_no_results">Ingen resultat for søk</string> <string name="file_list_empty_unified_search_no_results">Ingen resultat for søk</string>
<string name="file_list_folder">mappe</string> <string name="file_list_folder">mappe</string>
<string name="file_list_live">LIVE</string>
<string name="file_list_loading">Laster…</string> <string name="file_list_loading">Laster…</string>
<string name="file_list_no_app_for_file_type">Ingen app er satt opp til å håndtere denne filtypen.</string> <string name="file_list_no_app_for_file_type">Ingen app er satt opp til å håndtere denne filtypen.</string>
<string name="file_list_seconds_ago">for få sekunder siden</string> <string name="file_list_seconds_ago">for få sekunder siden</string>
@ -414,6 +415,7 @@
<string name="foreign_files_success">Alle filene ble flyttet</string> <string name="foreign_files_success">Alle filene ble flyttet</string>
<string name="forward">Fremover</string> <string name="forward">Fremover</string>
<string name="fourHours">4 timer</string> <string name="fourHours">4 timer</string>
<string name="grid_file_features_live_photo_content_description">Dette ikonet indikerer tilgjengeligheten av live photo</string>
<string name="hidden_file_name_warning">Navn gir skjult fil</string> <string name="hidden_file_name_warning">Navn gir skjult fil</string>
<string name="hint_name">Navn</string> <string name="hint_name">Navn</string>
<string name="hint_note">Melding</string> <string name="hint_note">Melding</string>
@ -684,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">Kalender &amp; kontakter</string> <string name="screenshot_06_davdroid_heading">Kalender &amp; kontakter</string>
<string name="screenshot_06_davdroid_subline">Synkroniser med DAVx5</string> <string name="screenshot_06_davdroid_subline">Synkroniser med DAVx5</string>
<string name="search_error">Feil ved henting av søke resultat</string> <string name="search_error">Feil ved henting av søke resultat</string>
<string name="secure_share_not_set_up">Sikker deling er ikke konfigurert for denne brukeren</string>
<string name="secure_share_search">Sikker deling...</string>
<string name="select_all">Velg alle</string> <string name="select_all">Velg alle</string>
<string name="select_media_folder">Velg mediamappe</string> <string name="select_media_folder">Velg mediamappe</string>
<string name="select_one_template">Velg en mal</string> <string name="select_one_template">Velg en mal</string>
@ -718,6 +722,7 @@
<string name="share_link_with_label">Del lenke (%1$s)</string> <string name="share_link_with_label">Del lenke (%1$s)</string>
<string name="share_no_expiration_date_label">Sett utløpsdato</string> <string name="share_no_expiration_date_label">Sett utløpsdato</string>
<string name="share_no_password_title">Velg passord</string> <string name="share_no_password_title">Velg passord</string>
<string name="share_not_allowed_when_file_drop">Videredeling er ikke tillatt under sikker filslipp</string>
<string name="share_password_title">Passordbeskyttet</string> <string name="share_password_title">Passordbeskyttet</string>
<string name="share_permission_can_edit">Kan endre</string> <string name="share_permission_can_edit">Kan endre</string>
<string name="share_permission_file_drop">Filkasse</string> <string name="share_permission_file_drop">Filkasse</string>

View file

@ -686,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">Календар и контакти</string> <string name="screenshot_06_davdroid_heading">Календар и контакти</string>
<string name="screenshot_06_davdroid_subline">Синхронизација помоћу DAVx5</string> <string name="screenshot_06_davdroid_subline">Синхронизација помоћу DAVx5</string>
<string name="search_error">Грешка приликом добијања резултата претраге</string> <string name="search_error">Грешка приликом добијања резултата претраге</string>
<string name="secure_share_not_set_up">За овог корисника није подешено безбедно дељење</string>
<string name="secure_share_search">Безбедно дељење</string>
<string name="select_all">Означи све</string> <string name="select_all">Означи све</string>
<string name="select_media_folder">Поставите фолдер са медијима</string> <string name="select_media_folder">Поставите фолдер са медијима</string>
<string name="select_one_template">Молимо вас да изаберете један шаблон</string> <string name="select_one_template">Молимо вас да изаберете један шаблон</string>
@ -720,6 +722,7 @@
<string name="share_link_with_label">Подели везу (%1$s)</string> <string name="share_link_with_label">Подели везу (%1$s)</string>
<string name="share_no_expiration_date_label">Постави датум истека</string> <string name="share_no_expiration_date_label">Постави датум истека</string>
<string name="share_no_password_title">Постави лозинку</string> <string name="share_no_password_title">Постави лозинку</string>
<string name="share_not_allowed_when_file_drop">Током безбедног упуштања фајла, није дозвољено поновно дељење</string>
<string name="share_password_title">Заштићено лозинком</string> <string name="share_password_title">Заштићено лозинком</string>
<string name="share_permission_can_edit">Може да уређује</string> <string name="share_permission_can_edit">Може да уређује</string>
<string name="share_permission_file_drop">Место за упуштање фајлова</string> <string name="share_permission_file_drop">Место за упуштање фајлова</string>

View file

@ -685,6 +685,8 @@
<string name="screenshot_06_davdroid_heading">Kalender &amp; kontakter</string> <string name="screenshot_06_davdroid_heading">Kalender &amp; kontakter</string>
<string name="screenshot_06_davdroid_subline">Synka med DAVx5</string> <string name="screenshot_06_davdroid_subline">Synka med DAVx5</string>
<string name="search_error">Ett fel uppstod vid sökning</string> <string name="search_error">Ett fel uppstod vid sökning</string>
<string name="secure_share_not_set_up">Säker delning är inte konfigurerad för denna användare</string>
<string name="secure_share_search">Säker delning ...</string>
<string name="select_all">Välj alla</string> <string name="select_all">Välj alla</string>
<string name="select_media_folder">Ställ in mapp för media</string> <string name="select_media_folder">Ställ in mapp för media</string>
<string name="select_one_template">Vänligen välj en mall</string> <string name="select_one_template">Vänligen välj en mall</string>
@ -719,6 +721,7 @@
<string name="share_link_with_label">Dela länk (%1$s)</string> <string name="share_link_with_label">Dela länk (%1$s)</string>
<string name="share_no_expiration_date_label">Välj utgångsdatum</string> <string name="share_no_expiration_date_label">Välj utgångsdatum</string>
<string name="share_no_password_title">Sätt lösenord</string> <string name="share_no_password_title">Sätt lösenord</string>
<string name="share_not_allowed_when_file_drop">Återdelning är inte tillåtet under säker gömd fillista</string>
<string name="share_password_title">Lösenordsskyddad</string> <string name="share_password_title">Lösenordsskyddad</string>
<string name="share_permission_can_edit">Kan ändra</string> <string name="share_permission_can_edit">Kan ändra</string>
<string name="share_permission_file_drop">Göm fillista</string> <string name="share_permission_file_drop">Göm fillista</string>

View file

@ -686,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">日曆 &amp; 通訊錄</string> <string name="screenshot_06_davdroid_heading">日曆 &amp; 通訊錄</string>
<string name="screenshot_06_davdroid_subline">跟 DAVx5 同步</string> <string name="screenshot_06_davdroid_subline">跟 DAVx5 同步</string>
<string name="search_error">獲取搜索結果時出錯</string> <string name="search_error">獲取搜索結果時出錯</string>
<string name="secure_share_not_set_up">尚未為此用戶設定安全分享功能。</string>
<string name="secure_share_search">安全分享 ...</string>
<string name="select_all">全選</string> <string name="select_all">全選</string>
<string name="select_media_folder">設置媒體資料夾</string> <string name="select_media_folder">設置媒體資料夾</string>
<string name="select_one_template">請選擇一個模板</string> <string name="select_one_template">請選擇一個模板</string>
@ -720,6 +722,7 @@
<string name="share_link_with_label">分享連結﹙%1$s﹚</string> <string name="share_link_with_label">分享連結﹙%1$s﹚</string>
<string name="share_no_expiration_date_label">設定屆滿日期</string> <string name="share_no_expiration_date_label">設定屆滿日期</string>
<string name="share_no_password_title">設定密碼</string> <string name="share_no_password_title">設定密碼</string>
<string name="share_not_allowed_when_file_drop">在安全檔案傳輸期間不允許重新分享。</string>
<string name="share_password_title">受密碼保護</string> <string name="share_password_title">受密碼保護</string>
<string name="share_permission_can_edit">可編輯</string> <string name="share_permission_can_edit">可編輯</string>
<string name="share_permission_file_drop">檔案拖放</string> <string name="share_permission_file_drop">檔案拖放</string>

View file

@ -686,6 +686,8 @@
<string name="screenshot_06_davdroid_heading">日曆與通訊錄</string> <string name="screenshot_06_davdroid_heading">日曆與通訊錄</string>
<string name="screenshot_06_davdroid_subline">使用 DAVx5 同步</string> <string name="screenshot_06_davdroid_subline">使用 DAVx5 同步</string>
<string name="search_error">取得搜尋結果時發生錯誤</string> <string name="search_error">取得搜尋結果時發生錯誤</string>
<string name="secure_share_not_set_up">尚未為此使用者設定安全分享</string>
<string name="secure_share_search">安全分享……</string>
<string name="select_all">全選</string> <string name="select_all">全選</string>
<string name="select_media_folder">設定媒體資料夾</string> <string name="select_media_folder">設定媒體資料夾</string>
<string name="select_one_template">請選取一個範本</string> <string name="select_one_template">請選取一個範本</string>
@ -720,6 +722,7 @@
<string name="share_link_with_label">分享連結 (%1$s)</string> <string name="share_link_with_label">分享連結 (%1$s)</string>
<string name="share_no_expiration_date_label">設定到期日</string> <string name="share_no_expiration_date_label">設定到期日</string>
<string name="share_no_password_title">設定密碼</string> <string name="share_no_password_title">設定密碼</string>
<string name="share_not_allowed_when_file_drop">在安全檔案投遞時不允許轉分享</string>
<string name="share_password_title">受密碼保護</string> <string name="share_password_title">受密碼保護</string>
<string name="share_permission_can_edit">可以編輯</string> <string name="share_permission_can_edit">可以編輯</string>
<string name="share_permission_file_drop">檔案投放</string> <string name="share_permission_file_drop">檔案投放</string>

View file

@ -25,6 +25,10 @@
<bool name="show_provider_or_own_installation">true</bool> <bool name="show_provider_or_own_installation">true</bool>
<string name="provider_registration_server">https://www.nextcloud.com/register</string> <string name="provider_registration_server">https://www.nextcloud.com/register</string>
<!-- specify built in proxy -->
<string name="proxy_host"></string>
<integer name="proxy_port">-1</integer>
<!-- Flags to enable/disable some features --> <!-- Flags to enable/disable some features -->
<string name="send_files_to_other_apps">on</string> <string name="send_files_to_other_apps">on</string>
<bool name="share_via_link_feature">true</bool> <bool name="share_via_link_feature">true</bool>

View file

@ -1,6 +1,6 @@
buildscript { buildscript {
ext { ext {
androidPluginVersion = '8.2.0' androidPluginVersion = '8.2.1'
appCompatVersion = '1.6.1' appCompatVersion = '1.6.1'
jacoco_version = '0.8.10' jacoco_version = '0.8.10'
kotlin_version = '1.8.22' kotlin_version = '1.8.22'