diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index e7b9a93d35..84acb97717 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,6 +1,6 @@
-name: Bug report
-description: Create a report to help us improve
-labels: [ "bug" ]
+name: "🐛 Bug report: Nextcloud Android Client"
+description: "Submit a report and help us improve the Nextcloud Android Client"
+labels: ["bug", "0. Needs triage"]
body:
- type: checkboxes
id: before-posting
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 9eb201ef31..ad8a30caa9 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,12 @@
-blank_issues_enabled: false
+# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+# SPDX-License-Identifier: AGPL-3.0-or-later
contact_links:
- - name: Community Support and Help
- url: https://help.nextcloud.com/
- about: For questions and general help
+ - name: 🚨 Report a security or privacy issue
+ url: https://hackerone.com/nextcloud
+ about: Report security and privacy related issues privately to the Nextcloud team, so we can coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
+ - name: ❓ Community Support and Help
+ url: https://help.nextcloud.com/
+ about: Configuration, webserver/proxy or performance issues and other questions
+ - name: 💼 Nextcloud Enterprise
+ url: https://portal.nextcloud.com/
+ about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 13d19caad3..468572c9b6 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -1,20 +1,48 @@
---
-name: Feature request
+name: 🚀 Feature request
about: Suggest an idea for this project
-labels: enhancement
-
+labels: enhancement, 0. Needs triage
---
-### Is your feature request related to a problem? Please describe.
+
+
+
+
+
+### How to use GitHub
+
+* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
+* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
+* Subscribe to receive notifications on status change and new comments.
+
+
+**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-### Describe the solution you'd like
+**Describe the solution you'd like**
A clear and concise description of what you want to happen.
-### Describe alternatives you've considered
+**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
-### Additional context
+**Additional context**
Add any other context or screenshots about the feature request here.
-
-**NOTE:** Be super sure to remove sensitive data like passwords, note that everybody can look here! You can use the Issue Template application to prefill some of the required information: https://apps.nextcloud.com/apps/issuetemplate
diff --git a/SECURITY.md b/SECURITY.md
index 271b94ec43..b0adf57720 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -4,25 +4,68 @@
-->
# Security Policy
-## Supported Versions
+# 💡 TLDR: Report issues at [hackerone.com/nextcloud](https://hackerone.com/nextcloud)
+
+# Security Policy
+
+[Security](https://nextcloud.com/security/) is very important to us.
+
+If you believe you have found a security vulnerability that meets our definition of a security
+vulnerability, please report is as described below.
+
+## Context
+
+Please review our [threat model and accepted risks](https://nextcloud.com/security/threat-model) to learn what
+is currently considered a security vulnerability versus expected behavior. And review what is considered
+[in scope or bounty eligible](https://hackerone.com/nextcloud/policy_scopes).
-Only the latest version is supported. We release every second month a feature release (currently 3.x) and inbetween a bug fix release (3.x.y).
## Reporting a Vulnerability
-Security is very important to us. If you have discovered a security issue with Nextcloud,
-please read our responsible disclosure guidelines and contact us at [hackerone.com/nextcloud](https://hackerone.com/nextcloud).
+**⚠️ Please do _not_ report security vulnerabilities through public GitHub issues.**
+
+If you have discovered a security matter with Nextcloud, please read our
+[responsible disclosure guidelines](https://nextcloud.com/security/) and contact us at
+[hackerone.com/nextcloud](https://hackerone.com/nextcloud).
+
Your report should include:
- Product version
- A vulnerability description
- Reproduction steps
+- Any other details you think are likely to be important
-A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
-The fix will be applied to the master branch, tested, and packaged in the next bug fix release.
+### What to Expect
+
+You should receive an initial acknowledgement within 24 hours in most cases.
+
+A member of the security team will confirm the vulnerability, determine its impact, follow-up with any questions,
+and coordinate the fix and publication.
+
+The fix will be applied to all applicable and still supported stable branches, tested, and packaged in the next security release.
The vulnerability will be publicly announced after the release. Finally, your name will be added
-to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud community. Note our
-[threat model](https://nextcloud.com/security/threat-model) to know what is expected behavior.
+to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud
+community.
+If the vulnerability involves an app that is not maintained by Nextcloud (i.e. hosted by the
+Nextcloud project but community maintained, or hosted elsewhere), the security team will try to coordinate with the
+current maintainer and help to get the issue fixed in similar fashion.
-Please visit https://nextcloud.com/security/ for further information about security.
+### Bug Bounties
+
+If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Details
+on past bounty ranges can be found at [hackerone.com/nextcloud](https://hackerone.com/nextcloud).
+
+## Existing Security Advisories
+
+Published security advisories for the Nextcloud Server, Clients and Apps can be viewed at
+[https://github.com/nextcloud/security-advisories/security/advisories](https://github.com/nextcloud/security-advisories/security/advisories).
+
+## Supported Versions
+
+Only the latest version is supported. We release every second month a feature release (currently 3.x) and inbetween a bug fix release (3.x.y).
+
+## Additional Information
+
+Please visit [https://nextcloud.com/security/](https://nextcloud.com/security/) for further information about Nextcloud security.
+Please visit [https://nextcloud.com/security/threat-model](https://nextcloud.com/security/threat-model) for our threat model and accepted risks.
diff --git a/app/src/main/java/com/owncloud/android/ui/helpers/UriUploader.kt b/app/src/main/java/com/owncloud/android/ui/helpers/UriUploader.kt
index 19f02c3726..826741aa94 100644
--- a/app/src/main/java/com/owncloud/android/ui/helpers/UriUploader.kt
+++ b/app/src/main/java/com/owncloud/android/ui/helpers/UriUploader.kt
@@ -25,6 +25,7 @@ import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask
import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask.OnCopyTmpFilesTaskListener
import com.owncloud.android.ui.fragment.TaskRetainerFragment
import com.owncloud.android.utils.UriUtils.getDisplayNameForUri
+import java.io.File
/**
* This class examines URIs pointing to files to upload and then requests [FileUploadHelper] to upload them.
@@ -79,9 +80,12 @@ class UriUploader(
.filterNotNull()
.map { it as Uri }
.map { Pair(it, getRemotePathForUri(it)) }
- .filter { (_, filename) ->
+ .filter { (_, path) ->
+ val file = File(path)
+ val filename = file.name
+
isFilenameValid = FileNameValidator.checkFileName(
- filename.removePrefix("/"),
+ filename,
mActivity.capabilities,
mActivity,
null
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 0eaa058e4a..ebd1b13cbf 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -411,13 +411,9 @@
تحديث الفهرس…
استعمل
بإنتظار مزامنة كاملة…
- اسم المجلد الحالي غير صحيح. قُم رجاءً بتغيير اسم المجلد. إعادة التوجيه إلى المجلد الجذر
- مسار المجلد يحتوي على أسماء محجوزة أو حروف غير صالحة
%s هو امتداد غير مسموح به
- اسم يحتوي على حروف غير صالحة: %s
%s اسم ممنوع
%s. قُم رجاءً بتغيير اسم الملف قبل نقله أو نسخه
- بعض المحتويات لا يمكن تحميلها بسبب احتوائها على أسماء محجوزة أو حروف غير صالحة
تعذر العثور على الملف
الملف لا يمكن مزامنته. عرض آخر إصدار متوفر.
إعادة التسمية
diff --git a/app/src/main/res/values-b+en+001/strings.xml b/app/src/main/res/values-b+en+001/strings.xml
index 2d9be6ff4c..3c27a57617 100644
--- a/app/src/main/res/values-b+en+001/strings.xml
+++ b/app/src/main/res/values-b+en+001/strings.xml
@@ -411,13 +411,9 @@
Updating index…
Use
Awaiting full sync…
- Current folder name is invalid, please rename the folder. Redirecting to root
- Folder path contains reserved names or invalid character
%s is a forbidden file extension
- Name contains an invalid character: %s
%s is a forbidden name
%s. Please rename the file before moving or copying
- Some contents cannot able to uploaded due to contains reserved names or invalid character
File not found
File could not be synced. Showing latest available version.
Rename
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 947a61daeb..a3630de1da 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -411,13 +411,9 @@
Aktualisiere Index…
Verwende bestehenden
Warte auf die Fertigstellung aller Synchronisierungen …
- Der aktuelle Ordnername ist unzulässig. Bitte benennen Sie den Ordner um. Weiterleitung zum Stammverzeichnis
- Der Ordnerpfad enthält reservierte Namen oder ungültige Zeichen
%s ist eine unzulässige Dateierweiterung
- Der Name enthält ein unzulässiges Zeichen: %s
%s ist ein unzulässiger Name
%s. Bitte Datei umbenennen, bevor diese verschoben oder kopiert wird
- Einige Inhalte können nicht hochgeladen werden, da sie reservierte Namen oder unzulässige Zeichen enthalten
Datei nicht gefunden
Die gewünschte Datei konnte nicht synchronisiert werden. Die letzte verfügbare Version wird angezeigt.
Umbenennen
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 1f6a6251f6..0e9b9af592 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -411,12 +411,8 @@
Indizea eguneratzen…
Erabili
Sinkronizazio osoaren zain...
- Uneko karpetaren izena ez da baliozkoa, mesedez izena aldatu karpetari. Errora birbideratzen
- Karpetaren bideak izen erreserbatuak edo karaktere baliogabeak ditu
- Izenak karaktere baliogabe bat dauka: %s
%s debekatutako izen bat da
%s. Aldatu fitxategiaren izena mugitu edo kopiatu aurretik
- Eduki batzuk ezin dira kargatu izen erreserbatuak edo karaktere baliogabeak dituztelako
Fitxategia ez da aurkitu
Fitxategia ezin izan da sinkronizatu. Eskuragarri dagoen azken bertsioa erakusten.
Aldatu izena
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 68d04fc460..f64372be1c 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -408,12 +408,8 @@
Mise à jour de l\'index…
Conserver le dossier actuel
En attente de la synchronisation complète…
- Le nom actuel du dossier est invalide, veuillez renommer le dossier. Redirection vers la racine
- Le chemin du dossier contient des noms réservés ou des caractères invalides
- Le nom contient un caractère invalide : %s
%s est un nom interdit
%s. Veuillez renommer le fichier avant de le déplacer ou de le copier
- Certains contenus ne peuvent pas être téléversés parce qu\'ils contiennent des noms réservés ou des caractères invalides
Fichier non trouvé
Le fichier ne peut pas être synchronisé. Affichage de la dernière version disponible.
Renommer
diff --git a/app/src/main/res/values-ga/strings.xml b/app/src/main/res/values-ga/strings.xml
index 380a3efa46..a2636ae62e 100644
--- a/app/src/main/res/values-ga/strings.xml
+++ b/app/src/main/res/values-ga/strings.xml
@@ -411,13 +411,9 @@
Innéacs á nuashonrú…
Úsáid
Ag feitheamh ar shioncronú iomlán…
- Tá ainm an fhillteáin reatha neamhbhailí, le do thoil athainmnigh an fillteán. Atreorú chuig an fhréamh
- Tá ainmneacha forchoimeádta nó carachtar neamhbhailí i gcosán an fhillteáin
Is iarmhír toirmiscthe comhaid é %s
- Tá carachtar neamhbhailí san ainm: %s
Is ainm toirmiscthe é %s
%s. Athainmnigh an comhad le do thoil roimh é a bhogadh nó a chóipeáil
- Ní féidir roinnt inneachair a uaslódáil toisc go bhfuil ainmneacha forchoimeádta nó carachtar neamhbhailí ann
Comhad gan aimsiú
Níorbh fhéidir an comhad a shioncronú. Ag taispeáint an leagan is déanaí atá ar fáil.
Athainmnigh
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index 2ee9d32589..9250e7b6c4 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -411,13 +411,9 @@
Actualizando o índice…
Usar
Agardando que rematen as sincronizacións…
- O nome actual do cartafol non é válido, cambie o nome do cartafol. Redireccionando á raíz
- A ruta do cartafol contén nomes reservados ou caracteres non válidos
.%s é unha extensión de ficheiro prohibida
- O nome contén un carácter non válido: %s
%s é un nome prohibido.
%s. Cambie o nome do ficheiro antes de mover ou copiar
- Non é posíbel enviar algúns contidos porque conteñen nomes reservados ou caracteres non válidos
Non se atopou o ficheiro
Non foi posíbel sincronizar o ficheiro. Amosase a última versión dispoñíbel.
Cambiar o nome
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 0b4f868ddd..908c93bf40 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -411,9 +411,6 @@
색인 업데이트 중…
사용
모든 동기화가 완료되기를 기다리는 중…
- 현재 폴더 이름이 유효하지 않습니다. 폴더 이름을 변경해 주세요. 루트로 리디렉션됩니다.
- 폴더 경로에 예약된 이름 또는 잘못된 문자가 포함되어 있습니다
- 이름에 잘못된 문자가 포함되어 있습니다: %s
파일을 찾을 수 없음
파일을 동기화할 수 없습니다. 마지막으로 불러온 버전을 표시합니다.
이름 바꾸기
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 9c36e3dec2..5d646fd09f 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -409,12 +409,8 @@
Oppdaterer indeks…
Bruk
Venter på full synkronisering…
- Gjeldende mappenavn er ugyldig, vennligst gi nytt navn til mappen. Omdirigerer til rot
- Mappebanen inneholder reserverte navn eller ugyldige tegn
- Navnet inneholder et ugyldig tegn: %s
%s er et forbudt navn
%s. Gi nytt navn til filen før du flytter eller kopierer
- Noe innhold kan ikke lastes opp på grunn av inneholder reserverte navn eller ugyldige tegn
Finner ikke filen
Kunne ikke synkronisere fil. Viser sist tilgjengelige versjon.
Gi nytt navn
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index c9bee52b6c..0a4dd614b4 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -411,13 +411,9 @@
Atualizando índice…
Usar
Aguardando sincronização completa…
- O nome da pasta atual é inválido, renomeie a pasta. Redirecionando para a raiz
- O caminho da pasta contém nomes reservados ou caracteres inválidos
%s é uma extensão de arquivo proibida
- O nome contém um caractere inválido:%s
%s é um nome proibido
%s. Renomeie o arquivo antes de mover ou copiar
- Alguns conteúdos não podem ser carregados porque contêm nomes reservados ou caracteres inválidos
Arquivo não encontrado
Arquivo não pôde ser sincronizado. Mostrando a última versão disponível.
Renomear
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 5dd5578991..633113a271 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -412,12 +412,8 @@
Обновление индекса…
Использовать существующий
Ожидание завершения синхронизации…
- Текущее имя папки неверное, пожалуйста, переименуйте папку. Перенаправление в корень
- Путь к папке содержит зарезервированные имена или недопустимый символ
- Имя содержит недопустимый символ: %s
%s это запрещенное имя
%s. Пожалуйста, переименуйте файл перед перемещением или копированием
- Некоторые материалы не могут быть загружены из-за наличия зарезервированных имен или недопустимого символа
Файл не найден
Не удалось синхронизировать этот файл, показана его последняя доступная версия.
Переименовать
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 4182adf298..114219c7a2 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -411,13 +411,9 @@
Ажурирам индекс…
Искористи
Чекам пуну синхронизацију…
- Име текућег фолдера није исправно, молимо вас да промените име овог фолдера. Преусмеравате се на корени фолдер
- Путања фолдера садржи резервисана имена или неисправни карактер
%s је забрањена екстензија фајла
- Име садржи неисправни карактер: %s
%s је забрањено име
%s. Молимо вас да пре премештања или копирања промените име фајла
- Неки садржај не може да се отпреми јер садржи резервисана имена или неисправни карактер
Фајл није нађен
Фајл не може да се синхронизује. Приказујем последњу доступну верзију.
Преименуј
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 0c403e570b..93044556bd 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -411,13 +411,9 @@
Uppdaterar index…
Använd
Väntar på fullständig synkronisering…
- Aktuellt mappnamn är ogiltigt. Byt namn på mappen. Omdirigerar till root
- Mappsökvägen innehåller reserverade namn eller ogiltiga tecken
%s är ett förbjudet filtillägg
- Namnet innehåller ett ogiltigt tecken: %s
%s är ett förbjudet namn
%s. Byt namn på filen innan du flyttar eller kopierar
- En del innehåll kan inte laddas upp på grund av att det innehåller reserverade namn eller ogiltiga tecken
Filen hittades inte
Filen kunde inte synkroniseras. Visar senaste tillgängliga versionen.
Byt namn
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 8de649d930..97c744f6b2 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -411,13 +411,9 @@
Dizin güncelleniyor …
Kullanılsın
Eşitleme işleminin tamamlanması bekleniyor …
- Geçerli klasör adı geçersiz. Lütfen klasörü yeniden adlandırın. Kök klasöre yönlendiriliyorsunuz.
- Klasör yolunda ayrılmış adlar veya geçersiz karakterler var
%s dosya uzantısına izin verilmiyor.
- Ad içinde geçersiz bir karakter var: %s
%s adına izin verilmiyor
%s. Kopyalamadan ya da taşımadan önce lütfen dosyayı yeniden adlandırın
- Bazı içerikler, içinde ayrılmış adlar veya geçersiz karakterler bulunduğundan yüklenemedi
Dosya bulunamadı
Dosya eşitlenemedi. Kullanılabilen son sürüm görüntüleniyor.
Yeniden adlandır
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 250bbd87d9..9ee274250c 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -406,12 +406,8 @@
Оновлення індексу...
Використовувати
Очікування повної синхронізації…
- Перейменуйте назву поточого каталогу, оскільки його назва не є дійсною. Переспрямування до кореневого каталогу.
- Шлях до каталогу містить зарезервовані імена або недійсні символи
- Ім\'я містить недійсний символ: %s
%s не є дозволеним ім\'ям
%s. Перейменуйте файл перед переміщенням або копіюванням
- Окремі дані неможливо завантажити, оскільки він містить зарезервовані імена або недійсні символи
Файл не знайдено
Неможливо синхронізувати файл. Буде показано останню доступну версію.
Перейменувати
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index b0fff4c8be..4e65002572 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -411,13 +411,9 @@
更新索引中…
使用
等待完整同步…
- 目前資料夾名稱無效,請重新命名該資料夾。重定向到根目錄
- 資料夾途徑包含保留名稱或無效字符
%s 是禁止使用的副檔名
- 名字含有無效的字元:「%s」。
「%s」是禁止使用的名字。
%s。請在移動或複製之前重新命名檔案
- 部分內容因包含保留名稱或無效字元而無法上傳
找不到檔案
檔案不能同步,將顯示最新可用版本。
更名
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 853a3e0a22..e71068aabb 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -411,12 +411,9 @@
正在更新索引……
使用
正在等待完全同步……
- 目前資料夾名稱無效,請重新命名資料夾。重新導向至根目錄
- 資料夾路徑包含保留名稱或無效字元
- 名稱包含無效的字元:%s
+ %s 是禁止使用的副檔名
%s 是禁止的名稱
%s。請在移動或複製前重新命名檔案
- 部份內容包含保留名稱或無效字元而無法上傳
找不到檔案
檔案無法同步,將顯示最新可用版本。
重新命名
@@ -626,6 +623,7 @@
2012/05/18 12:23 PM
停止
切換
+ 請選取伺服器……
停用省電功能時,就算電池電量偏低,檔案仍會持續上傳
已刪除
保留在原本的資料夾