Merge remote-tracking branch 'origin/master' into dev
1
.github/workflows/autoApproveSync.yml
vendored
|
@ -34,6 +34,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
echo 'Can not approve PRs from forks'
|
echo 'Can not approve PRs from forks'
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
|
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
|
||||||
with:
|
with:
|
||||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
@ -1,9 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* Nextcloud - Android Client
|
* Nextcloud - Android Client
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2020 Tobias Kaminsky <tobias@kaminsky.me>
|
* SPDX-FileCopyrightText: 2024 Alper Ozturk <alper.ozturk@nextcloud.com>
|
||||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
|
||||||
*/
|
*/
|
||||||
package com.nextcloud.client.jobs
|
package com.nextcloud.client.jobs
|
||||||
|
|
||||||
|
@ -11,6 +10,7 @@ import android.Manifest
|
||||||
import androidx.test.rule.GrantPermissionRule
|
import androidx.test.rule.GrantPermissionRule
|
||||||
import androidx.work.WorkManager
|
import androidx.work.WorkManager
|
||||||
import com.nextcloud.client.core.ClockImpl
|
import com.nextcloud.client.core.ClockImpl
|
||||||
|
import com.nextcloud.client.preferences.AppPreferences
|
||||||
import com.nextcloud.client.preferences.AppPreferencesImpl
|
import com.nextcloud.client.preferences.AppPreferencesImpl
|
||||||
import com.nextcloud.test.RetryTestRule
|
import com.nextcloud.test.RetryTestRule
|
||||||
import com.owncloud.android.AbstractIT
|
import com.owncloud.android.AbstractIT
|
||||||
|
@ -20,8 +20,9 @@ import com.owncloud.android.datamodel.OCFile
|
||||||
import com.owncloud.android.operations.DownloadFileOperation
|
import com.owncloud.android.operations.DownloadFileOperation
|
||||||
import ezvcard.Ezvcard
|
import ezvcard.Ezvcard
|
||||||
import ezvcard.VCard
|
import ezvcard.VCard
|
||||||
import junit.framework.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import junit.framework.Assert.assertTrue
|
import org.junit.Assert.assertTrue
|
||||||
|
import org.junit.Assert.fail
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.io.BufferedInputStream
|
import java.io.BufferedInputStream
|
||||||
|
@ -29,15 +30,15 @@ import java.io.File
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
|
|
||||||
class ContactsBackupIT : AbstractOnServerIT() {
|
class ContactsBackupIT : AbstractOnServerIT() {
|
||||||
val workmanager = WorkManager.getInstance(targetContext)
|
private val workManager = WorkManager.getInstance(targetContext)
|
||||||
val preferences = AppPreferencesImpl.fromContext(targetContext)
|
private val preferences: AppPreferences = AppPreferencesImpl.fromContext(targetContext)
|
||||||
private val backgroundJobManager = BackgroundJobManagerImpl(workmanager, ClockImpl(), preferences)
|
private val backgroundJobManager = BackgroundJobManagerImpl(workManager, ClockImpl(), preferences)
|
||||||
|
|
||||||
@get:Rule
|
@get:Rule
|
||||||
val writeContactsRule = GrantPermissionRule.grant(Manifest.permission.WRITE_CONTACTS)
|
val writeContactsRule: GrantPermissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_CONTACTS)
|
||||||
|
|
||||||
@get:Rule
|
@get:Rule
|
||||||
val readContactsRule = GrantPermissionRule.grant(Manifest.permission.READ_CONTACTS)
|
val readContactsRule: GrantPermissionRule = GrantPermissionRule.grant(Manifest.permission.READ_CONTACTS)
|
||||||
|
|
||||||
@get:Rule
|
@get:Rule
|
||||||
val retryTestRule = RetryTestRule() // flaky test
|
val retryTestRule = RetryTestRule() // flaky test
|
||||||
|
@ -46,38 +47,54 @@ class ContactsBackupIT : AbstractOnServerIT() {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun importExport() {
|
fun importExport() {
|
||||||
val intArray = IntArray(1)
|
val intArray = intArrayOf(0)
|
||||||
intArray[0] = 0
|
|
||||||
|
|
||||||
// import file to local contacts
|
// import file to local contacts
|
||||||
backgroundJobManager.startImmediateContactsImport(null, null, getFile(vcard).absolutePath, intArray)
|
backgroundJobManager.startImmediateContactsImport(null, null, getFile(vcard).absolutePath, intArray)
|
||||||
|
longSleep()
|
||||||
shortSleep()
|
|
||||||
|
|
||||||
// export contact
|
// export contact
|
||||||
backgroundJobManager.startImmediateContactsBackup(user)
|
backgroundJobManager.startImmediateContactsBackup(user)
|
||||||
|
|
||||||
longSleep()
|
longSleep()
|
||||||
|
|
||||||
val backupFolder: String = targetContext.resources.getString(R.string.contacts_backup_folder) +
|
val folderPath: String = targetContext.resources.getString(R.string.contacts_backup_folder) +
|
||||||
OCFile.PATH_SEPARATOR
|
OCFile.PATH_SEPARATOR
|
||||||
|
|
||||||
refreshFolder("/")
|
refreshFolder("/")
|
||||||
longSleep()
|
longSleep()
|
||||||
|
|
||||||
refreshFolder(backupFolder)
|
|
||||||
longSleep()
|
longSleep()
|
||||||
|
|
||||||
val backupOCFile = storageManager.getFolderContent(
|
refreshFolder(folderPath)
|
||||||
storageManager.getFileByDecryptedRemotePath(backupFolder),
|
longSleep()
|
||||||
false
|
longSleep()
|
||||||
)[0]
|
|
||||||
|
|
||||||
assertTrue(DownloadFileOperation(user, backupOCFile, AbstractIT.targetContext).execute(client).isSuccess)
|
if (folderPath.isEmpty()) {
|
||||||
|
fail("folderPath cannot be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
val folder = fileDataStorageManager.getFileByDecryptedRemotePath(folderPath)
|
||||||
|
if (folder == null) {
|
||||||
|
fail("folder cannot be null")
|
||||||
|
}
|
||||||
|
|
||||||
|
val ocFile = storageManager.getFolderContent(folder, false).firstOrNull()
|
||||||
|
if (ocFile == null) {
|
||||||
|
fail("ocFile cannot be null")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ocFile?.storagePath == null) {
|
||||||
|
fail("ocFile.storagePath cannot be null")
|
||||||
|
}
|
||||||
|
|
||||||
|
assertTrue(DownloadFileOperation(user, ocFile, AbstractIT.targetContext).execute(client).isSuccess)
|
||||||
|
|
||||||
|
val file = ocFile?.storagePath?.let { File(it) }
|
||||||
|
if (file == null) {
|
||||||
|
fail("file cannot be null")
|
||||||
|
}
|
||||||
|
|
||||||
val backupFile = File(backupOCFile.storagePath)
|
|
||||||
val vcardInputStream = BufferedInputStream(FileInputStream(getFile(vcard)))
|
val vcardInputStream = BufferedInputStream(FileInputStream(getFile(vcard)))
|
||||||
val backupFileInputStream = BufferedInputStream(FileInputStream(backupFile))
|
val backupFileInputStream = BufferedInputStream(FileInputStream(file))
|
||||||
|
|
||||||
// verify same
|
// verify same
|
||||||
val originalCards: ArrayList<VCard> = ArrayList()
|
val originalCards: ArrayList<VCard> = ArrayList()
|
||||||
|
@ -87,6 +104,17 @@ class ContactsBackupIT : AbstractOnServerIT() {
|
||||||
backupCards.addAll(Ezvcard.parse(backupFileInputStream).all())
|
backupCards.addAll(Ezvcard.parse(backupFileInputStream).all())
|
||||||
|
|
||||||
assertEquals(originalCards.size, backupCards.size)
|
assertEquals(originalCards.size, backupCards.size)
|
||||||
assertEquals(originalCards[0].formattedName.toString(), backupCards[0].formattedName.toString())
|
|
||||||
|
val originalCardFormattedName = originalCards.firstOrNull()?.formattedName
|
||||||
|
if (originalCardFormattedName == null) {
|
||||||
|
fail("originalCardFormattedName cannot be null")
|
||||||
|
}
|
||||||
|
|
||||||
|
val backupCardFormattedName = backupCards.firstOrNull()?.formattedName
|
||||||
|
if (backupCardFormattedName == null) {
|
||||||
|
fail("backupCardFormattedName cannot be null")
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(originalCardFormattedName.toString(), backupCardFormattedName.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
/*
|
|
||||||
* Nextcloud - Android Client
|
|
||||||
*
|
|
||||||
* SPDX-FileCopyrightText: 2022 Tobias Kaminsky <tobias@kaminsky.me>
|
|
||||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
|
||||||
*/
|
|
||||||
package com.owncloud.android.files.services
|
|
||||||
|
|
||||||
class LegacyFileUploaderIT : FileUploaderIT()
|
|
|
@ -63,8 +63,8 @@ public class ConflictsResolveActivityIT extends AbstractIT {
|
||||||
ConflictsResolveActivity sut = activityRule.launchActivity(intent);
|
ConflictsResolveActivity sut = activityRule.launchActivity(intent);
|
||||||
|
|
||||||
ConflictsResolveDialog dialog = ConflictsResolveDialog.newInstance(targetContext,
|
ConflictsResolveDialog dialog = ConflictsResolveDialog.newInstance(targetContext,
|
||||||
existingFile,
|
|
||||||
newFile,
|
newFile,
|
||||||
|
existingFile,
|
||||||
UserAccountManagerImpl
|
UserAccountManagerImpl
|
||||||
.fromContext(targetContext)
|
.fromContext(targetContext)
|
||||||
.getUser()
|
.getUser()
|
||||||
|
|
|
@ -390,6 +390,7 @@ public class DialogFragmentIT extends AbstractIT {
|
||||||
|
|
||||||
DeviceInfo info = new DeviceInfo();
|
DeviceInfo info = new DeviceInfo();
|
||||||
OCFile ocFile = new OCFile("/test.md");
|
OCFile ocFile = new OCFile("/test.md");
|
||||||
|
ocFile.setRemoteId("00000001");
|
||||||
|
|
||||||
Intent intent = new Intent(targetContext, FileDisplayActivity.class);
|
Intent intent = new Intent(targetContext, FileDisplayActivity.class);
|
||||||
FileDisplayActivity fda = activityRule.launchActivity(intent);
|
FileDisplayActivity fda = activityRule.launchActivity(intent);
|
||||||
|
|
|
@ -35,6 +35,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
val sut = testActivityRule.launchActivity(null)
|
val sut = testActivityRule.launchActivity(null)
|
||||||
|
|
||||||
OCFile("/1.png").apply {
|
OCFile("/1.png").apply {
|
||||||
|
remoteId = "00000001"
|
||||||
mimeType = "image/png"
|
mimeType = "image/png"
|
||||||
fileLength = 1024000
|
fileLength = 1024000
|
||||||
modificationTimestamp = 1188206955000
|
modificationTimestamp = 1188206955000
|
||||||
|
@ -43,6 +44,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/image.png").apply {
|
OCFile("/image.png").apply {
|
||||||
|
remoteId = "00000002"
|
||||||
mimeType = "image/png"
|
mimeType = "image/png"
|
||||||
isPreviewAvailable = false
|
isPreviewAvailable = false
|
||||||
fileLength = 3072000
|
fileLength = 3072000
|
||||||
|
@ -53,6 +55,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/live photo.png").apply {
|
OCFile("/live photo.png").apply {
|
||||||
|
remoteId = "00000003"
|
||||||
mimeType = "image/png"
|
mimeType = "image/png"
|
||||||
isPreviewAvailable = false
|
isPreviewAvailable = false
|
||||||
fileLength = 3072000
|
fileLength = 3072000
|
||||||
|
@ -63,6 +66,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/video.mp4").apply {
|
OCFile("/video.mp4").apply {
|
||||||
|
remoteId = "00000004"
|
||||||
mimeType = "video/mp4"
|
mimeType = "video/mp4"
|
||||||
isPreviewAvailable = false
|
isPreviewAvailable = false
|
||||||
fileLength = 12092000
|
fileLength = 12092000
|
||||||
|
@ -96,6 +100,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
val fragment = OCFileListFragment()
|
val fragment = OCFileListFragment()
|
||||||
|
|
||||||
OCFile("/sharedToUser.jpg").apply {
|
OCFile("/sharedToUser.jpg").apply {
|
||||||
|
remoteId = "00000001"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(ShareeUser("Admin", "Server Admin", ShareType.USER))
|
sharees = listOf(ShareeUser("Admin", "Server Admin", ShareType.USER))
|
||||||
|
@ -104,6 +109,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedToGroup.jpg").apply {
|
OCFile("/sharedToGroup.jpg").apply {
|
||||||
|
remoteId = "00000002"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(ShareeUser("group", "Group", ShareType.GROUP))
|
sharees = listOf(ShareeUser("group", "Group", ShareType.GROUP))
|
||||||
|
@ -112,6 +118,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedToEmail.jpg").apply {
|
OCFile("/sharedToEmail.jpg").apply {
|
||||||
|
remoteId = "00000003"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(ShareeUser("admin@nextcloud.localhost", "admin@nextcloud.localhost", ShareType.EMAIL))
|
sharees = listOf(ShareeUser("admin@nextcloud.localhost", "admin@nextcloud.localhost", ShareType.EMAIL))
|
||||||
|
@ -120,6 +127,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/publicLink.jpg").apply {
|
OCFile("/publicLink.jpg").apply {
|
||||||
|
remoteId = "00000004"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedViaLink = true
|
isSharedViaLink = true
|
||||||
modificationTimestamp = 1000
|
modificationTimestamp = 1000
|
||||||
|
@ -127,6 +135,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedToFederatedUser.jpg").apply {
|
OCFile("/sharedToFederatedUser.jpg").apply {
|
||||||
|
remoteId = "00000005"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(
|
sharees = listOf(
|
||||||
|
@ -137,6 +146,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedToPersonalCircle.jpg").apply {
|
OCFile("/sharedToPersonalCircle.jpg").apply {
|
||||||
|
remoteId = "00000006"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(ShareeUser("circle", "Circle (Personal circle)", ShareType.CIRCLE))
|
sharees = listOf(ShareeUser("circle", "Circle (Personal circle)", ShareType.CIRCLE))
|
||||||
|
@ -170,6 +180,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
OCFile("/sharedToUserRoom.jpg").apply {
|
OCFile("/sharedToUserRoom.jpg").apply {
|
||||||
|
remoteId = "00000007"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(ShareeUser("Conversation", "Admin", ShareType.ROOM))
|
sharees = listOf(ShareeUser("Conversation", "Admin", ShareType.ROOM))
|
||||||
|
@ -178,6 +189,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedToGroupRoom.jpg").apply {
|
OCFile("/sharedToGroupRoom.jpg").apply {
|
||||||
|
remoteId = "00000008"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(ShareeUser("Conversation", "Meeting", ShareType.ROOM))
|
sharees = listOf(ShareeUser("Conversation", "Meeting", ShareType.ROOM))
|
||||||
|
@ -186,6 +198,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedToUsers.jpg").apply {
|
OCFile("/sharedToUsers.jpg").apply {
|
||||||
|
remoteId = "00000009"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
sharees = listOf(
|
sharees = listOf(
|
||||||
|
@ -198,6 +211,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/notShared.jpg").apply {
|
OCFile("/notShared.jpg").apply {
|
||||||
|
remoteId = "000000010"
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
modificationTimestamp = 1000
|
modificationTimestamp = 1000
|
||||||
sut.storageManager.saveFile(this)
|
sut.storageManager.saveFile(this)
|
||||||
|
@ -232,6 +246,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
val fragment = OCFileListFragment()
|
val fragment = OCFileListFragment()
|
||||||
|
|
||||||
OCFile("/normal/").apply {
|
OCFile("/normal/").apply {
|
||||||
|
remoteId = "00000001"
|
||||||
mimeType = MimeType.DIRECTORY
|
mimeType = MimeType.DIRECTORY
|
||||||
modificationTimestamp = 1624003571000
|
modificationTimestamp = 1624003571000
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
|
@ -239,6 +254,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/sharedViaLink/").apply {
|
OCFile("/sharedViaLink/").apply {
|
||||||
|
remoteId = "00000002"
|
||||||
mimeType = MimeType.DIRECTORY
|
mimeType = MimeType.DIRECTORY
|
||||||
isSharedViaLink = true
|
isSharedViaLink = true
|
||||||
modificationTimestamp = 1619003571000
|
modificationTimestamp = 1619003571000
|
||||||
|
@ -247,6 +263,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/share/").apply {
|
OCFile("/share/").apply {
|
||||||
|
remoteId = "00000003"
|
||||||
mimeType = MimeType.DIRECTORY
|
mimeType = MimeType.DIRECTORY
|
||||||
isSharedWithSharee = true
|
isSharedWithSharee = true
|
||||||
modificationTimestamp = 1619303571000
|
modificationTimestamp = 1619303571000
|
||||||
|
@ -255,6 +272,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/groupFolder/").apply {
|
OCFile("/groupFolder/").apply {
|
||||||
|
remoteId = "00000004"
|
||||||
mimeType = MimeType.DIRECTORY
|
mimeType = MimeType.DIRECTORY
|
||||||
modificationTimestamp = 1615003571000
|
modificationTimestamp = 1615003571000
|
||||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||||
|
@ -263,6 +281,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/encrypted/").apply {
|
OCFile("/encrypted/").apply {
|
||||||
|
remoteId = "00000005"
|
||||||
mimeType = MimeType.DIRECTORY
|
mimeType = MimeType.DIRECTORY
|
||||||
isEncrypted = true
|
isEncrypted = true
|
||||||
decryptedRemotePath = "/encrypted/"
|
decryptedRemotePath = "/encrypted/"
|
||||||
|
@ -272,6 +291,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OCFile("/locked/").apply {
|
OCFile("/locked/").apply {
|
||||||
|
remoteId = "00000006"
|
||||||
mimeType = MimeType.DIRECTORY
|
mimeType = MimeType.DIRECTORY
|
||||||
isLocked = true
|
isLocked = true
|
||||||
decryptedRemotePath = "/locked/"
|
decryptedRemotePath = "/locked/"
|
||||||
|
@ -310,12 +330,15 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
folder.setFolder()
|
folder.setFolder()
|
||||||
sut.storageManager.saveFile(folder)
|
sut.storageManager.saveFile(folder)
|
||||||
|
|
||||||
val imageFile = OCFile("/test/image.png")
|
val imageFile = OCFile("/test/image.png").apply {
|
||||||
imageFile.mimeType = "image/png"
|
remoteId = "00000001"
|
||||||
imageFile.fileLength = 1024000
|
mimeType = "image/png"
|
||||||
imageFile.modificationTimestamp = 1188206955000
|
fileLength = 1024000
|
||||||
imageFile.parentId = sut.storageManager.getFileByEncryptedRemotePath("/test/").fileId
|
modificationTimestamp = 1188206955000
|
||||||
imageFile.storagePath = getFile("java.md").absolutePath
|
parentId = sut.storageManager.getFileByEncryptedRemotePath("/test/").fileId
|
||||||
|
storagePath = getFile("java.md").absolutePath
|
||||||
|
}
|
||||||
|
|
||||||
sut.storageManager.saveFile(imageFile)
|
sut.storageManager.saveFile(imageFile)
|
||||||
|
|
||||||
sut.addFragment(fragment)
|
sut.addFragment(fragment)
|
||||||
|
@ -334,8 +357,11 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
val activity = testActivityRule.launchActivity(null)
|
val activity = testActivityRule.launchActivity(null)
|
||||||
val sut = OCFileListFragment()
|
val sut = OCFileListFragment()
|
||||||
|
|
||||||
val folder = OCFile("/test/")
|
val folder = OCFile("/test/").apply {
|
||||||
folder.setFolder()
|
remoteId = "000001"
|
||||||
|
setFolder()
|
||||||
|
}
|
||||||
|
|
||||||
activity.storageManager.saveFile(folder)
|
activity.storageManager.saveFile(folder)
|
||||||
|
|
||||||
activity.addFragment(sut)
|
activity.addFragment(sut)
|
||||||
|
@ -357,7 +383,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
||||||
|
|
||||||
testFolder.richWorkspace = "1"
|
testFolder.richWorkspace = "1"
|
||||||
activity.storageManager.saveFile(testFolder)
|
activity.storageManager.saveFile(testFolder)
|
||||||
sut.adapter.setCurrentDirectory(testFolder)
|
sut.adapter.currentDirectory = testFolder
|
||||||
Assert.assertTrue(sut.adapter.shouldShowHeader())
|
Assert.assertTrue(sut.adapter.shouldShowHeader())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
/*
|
|
||||||
* Nextcloud - Android Client
|
|
||||||
*
|
|
||||||
* SPDX-FileCopyrightText: 2020 Tobias Kaminsky <tobias@kaminsky.me>
|
|
||||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
|
||||||
*/
|
|
||||||
package com.owncloud.android.ui.preview;
|
|
||||||
|
|
||||||
import com.owncloud.android.AbstractIT;
|
|
||||||
import com.owncloud.android.datamodel.OCFile;
|
|
||||||
import com.owncloud.android.ui.activity.FileDisplayActivity;
|
|
||||||
import com.owncloud.android.utils.MimeTypeUtil;
|
|
||||||
import com.owncloud.android.utils.ScreenshotTest;
|
|
||||||
|
|
||||||
import org.junit.Rule;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import androidx.test.espresso.intent.rule.IntentsTestRule;
|
|
||||||
|
|
||||||
public class PreviewTextFileFragmentTest extends AbstractIT {
|
|
||||||
@Rule public IntentsTestRule<FileDisplayActivity> activityRule = new IntentsTestRule<>(FileDisplayActivity.class,
|
|
||||||
true,
|
|
||||||
false);
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@ScreenshotTest
|
|
||||||
public void displaySimpleTextFile() throws IOException {
|
|
||||||
FileDisplayActivity sut = activityRule.launchActivity(null);
|
|
||||||
|
|
||||||
shortSleep();
|
|
||||||
|
|
||||||
File file = getDummyFile("nonEmpty.txt");
|
|
||||||
OCFile test = new OCFile("/text.md");
|
|
||||||
test.setMimeType(MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN);
|
|
||||||
test.setStoragePath(file.getAbsolutePath());
|
|
||||||
sut.startTextPreview(test, false);
|
|
||||||
|
|
||||||
shortSleep();
|
|
||||||
|
|
||||||
screenshot(sut);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@ScreenshotTest
|
|
||||||
public void displayJavaSnippetFile() throws IOException {
|
|
||||||
FileDisplayActivity sut = activityRule.launchActivity(null);
|
|
||||||
|
|
||||||
shortSleep();
|
|
||||||
|
|
||||||
File file = getFile("java.md");
|
|
||||||
OCFile test = new OCFile("/java.md");
|
|
||||||
test.setMimeType(MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN);
|
|
||||||
test.setStoragePath(file.getAbsolutePath());
|
|
||||||
sut.startTextPreview(test, false);
|
|
||||||
|
|
||||||
shortSleep();
|
|
||||||
|
|
||||||
screenshot(sut);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* Nextcloud - Android Client
|
||||||
|
*
|
||||||
|
* SPDX-FileCopyrightText: 2024 Alper Ozturk <alper.ozturk@nextcloud.com>
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
package com.owncloud.android.ui.preview
|
||||||
|
|
||||||
|
import androidx.annotation.UiThread
|
||||||
|
import androidx.test.core.app.launchActivity
|
||||||
|
import androidx.test.espresso.Espresso.onView
|
||||||
|
import androidx.test.espresso.IdlingRegistry
|
||||||
|
import androidx.test.espresso.assertion.ViewAssertions.matches
|
||||||
|
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
|
||||||
|
import androidx.test.espresso.matcher.ViewMatchers.isRoot
|
||||||
|
import com.owncloud.android.AbstractIT
|
||||||
|
import com.owncloud.android.datamodel.OCFile
|
||||||
|
import com.owncloud.android.ui.activity.FileDisplayActivity
|
||||||
|
import com.owncloud.android.utils.EspressoIdlingResource
|
||||||
|
import com.owncloud.android.utils.MimeTypeUtil
|
||||||
|
import com.owncloud.android.utils.ScreenshotTest
|
||||||
|
import org.junit.After
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Test
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
|
class PreviewTextFileFragmentTest : AbstractIT() {
|
||||||
|
private val testClassName = "com.owncloud.android.ui.preview.PreviewTextFileFragmentTest"
|
||||||
|
|
||||||
|
@Before
|
||||||
|
fun registerIdlingResource() {
|
||||||
|
IdlingRegistry.getInstance().register(EspressoIdlingResource.countingIdlingResource)
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
fun unregisterIdlingResource() {
|
||||||
|
IdlingRegistry.getInstance().unregister(EspressoIdlingResource.countingIdlingResource)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@ScreenshotTest
|
||||||
|
@UiThread
|
||||||
|
@Throws(IOException::class)
|
||||||
|
fun displaySimpleTextFile() {
|
||||||
|
launchActivity<FileDisplayActivity>().use { scenario ->
|
||||||
|
scenario.onActivity { sut ->
|
||||||
|
val test = OCFile("/text.md").apply {
|
||||||
|
mimeType = MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN
|
||||||
|
storagePath = getDummyFile("nonEmpty.txt").absolutePath
|
||||||
|
}
|
||||||
|
|
||||||
|
onIdleSync {
|
||||||
|
EspressoIdlingResource.increment()
|
||||||
|
sut.startTextPreview(test, true)
|
||||||
|
EspressoIdlingResource.decrement()
|
||||||
|
|
||||||
|
val screenShotName = createName(testClassName + "_" + "displaySimpleTextFile", "")
|
||||||
|
onView(isRoot()).check(matches(isDisplayed()))
|
||||||
|
screenshotViaName(sut, screenShotName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@ScreenshotTest
|
||||||
|
@UiThread
|
||||||
|
@Throws(IOException::class)
|
||||||
|
fun displayJavaSnippetFile() {
|
||||||
|
launchActivity<FileDisplayActivity>().use { scenario ->
|
||||||
|
scenario.onActivity { sut ->
|
||||||
|
val test = OCFile("/java.md").apply {
|
||||||
|
mimeType = MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN
|
||||||
|
storagePath = getFile("java.md").absolutePath
|
||||||
|
}
|
||||||
|
|
||||||
|
onIdleSync {
|
||||||
|
EspressoIdlingResource.increment()
|
||||||
|
sut.startTextPreview(test, true)
|
||||||
|
EspressoIdlingResource.decrement()
|
||||||
|
|
||||||
|
val screenShotName = createName(testClassName + "_" + "displayJavaSnippetFile", "")
|
||||||
|
onView(isRoot()).check(matches(isDisplayed()))
|
||||||
|
screenshotViaName(sut, screenShotName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,6 +26,7 @@ import com.nextcloud.client.jobs.transfer.TransferManager
|
||||||
import com.owncloud.android.R
|
import com.owncloud.android.R
|
||||||
import com.owncloud.android.datamodel.OCFile
|
import com.owncloud.android.datamodel.OCFile
|
||||||
import com.owncloud.android.db.OCUpload
|
import com.owncloud.android.db.OCUpload
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
class EtmFileTransferFragment : EtmBaseFragment() {
|
class EtmFileTransferFragment : EtmBaseFragment() {
|
||||||
|
|
||||||
|
@ -96,7 +97,7 @@ class EtmFileTransferFragment : EtmBaseFragment() {
|
||||||
vh.state.text = transfer.state.toString()
|
vh.state.text = transfer.state.toString()
|
||||||
if (transfer.progress >= 0) {
|
if (transfer.progress >= 0) {
|
||||||
vh.progressEnabled = true
|
vh.progressEnabled = true
|
||||||
vh.progress.text = transfer.progress.toString()
|
vh.progress.text = String.format(Locale.getDefault(), "%d", transfer.progress)
|
||||||
} else {
|
} else {
|
||||||
vh.progressEnabled = false
|
vh.progressEnabled = false
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,16 +90,12 @@ class ConnectivityServiceImpl implements ConnectivityService {
|
||||||
if (cachedValue != null) {
|
if (cachedValue != null) {
|
||||||
return cachedValue;
|
return cachedValue;
|
||||||
} else {
|
} else {
|
||||||
boolean result;
|
|
||||||
Connectivity c = getConnectivity();
|
|
||||||
if (c.isConnected() && c.isWifi() && !c.isMetered()) {
|
|
||||||
|
|
||||||
Server server = accountManager.getUser().getServer();
|
Server server = accountManager.getUser().getServer();
|
||||||
String baseServerAddress = server.getUri().toString();
|
String baseServerAddress = server.getUri().toString();
|
||||||
if (baseServerAddress.isEmpty()) {
|
|
||||||
result = true;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
|
boolean result;
|
||||||
|
Connectivity c = getConnectivity();
|
||||||
|
if (c.isConnected() && c.isWifi() && !c.isMetered() && !baseServerAddress.isEmpty()) {
|
||||||
GetMethod get = requestBuilder.invoke(baseServerAddress + CONNECTIVITY_CHECK_ROUTE);
|
GetMethod get = requestBuilder.invoke(baseServerAddress + CONNECTIVITY_CHECK_ROUTE);
|
||||||
PlainClient client = clientFactory.createPlainClient();
|
PlainClient client = clientFactory.createPlainClient();
|
||||||
|
|
||||||
|
@ -112,7 +108,6 @@ class ConnectivityServiceImpl implements ConnectivityService {
|
||||||
Log_OC.w(TAG, "isInternetWalled(): Failed to GET " + CONNECTIVITY_CHECK_ROUTE + "," +
|
Log_OC.w(TAG, "isInternetWalled(): Failed to GET " + CONNECTIVITY_CHECK_ROUTE + "," +
|
||||||
" assuming connectivity is impaired");
|
" assuming connectivity is impaired");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
result = !c.isConnected();
|
result = !c.isConnected();
|
||||||
}
|
}
|
||||||
|
|
|
@ -777,7 +777,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRootDirectory() {
|
public boolean isRootDirectory() {
|
||||||
return decryptedRemotePath.equals(ROOT_PATH);
|
return ROOT_PATH.equals(decryptedRemotePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOfflineOperation() {
|
public boolean isOfflineOperation() {
|
||||||
|
|
|
@ -109,8 +109,6 @@ public class UploadFilesActivity extends DrawerActivity implements LocalFileList
|
||||||
private UploadFilesLayoutBinding binding;
|
private UploadFilesLayoutBinding binding;
|
||||||
private boolean isWithinEncryptedFolder = false;
|
private boolean isWithinEncryptedFolder = false;
|
||||||
|
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
public LocalFileListFragment getFileListFragment() {
|
public LocalFileListFragment getFileListFragment() {
|
||||||
return mFileListFragment;
|
return mFileListFragment;
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,21 +151,21 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
||||||
.setNegativeButton(R.string.common_cancel) { _: DialogInterface?, _: Int ->
|
.setNegativeButton(R.string.common_cancel) { _: DialogInterface?, _: Int ->
|
||||||
listener?.conflictDecisionMade(Decision.CANCEL)
|
listener?.conflictDecisionMade(Decision.CANCEL)
|
||||||
}
|
}
|
||||||
.setTitle(data?.folderName)
|
.setTitle(data?.dialogTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun okButtonClick() {
|
private fun okButtonClick() {
|
||||||
binding.run {
|
binding.run {
|
||||||
val isFolderNameNotExists = (data?.folderName == null)
|
val isDialogTitleNotExists = (data?.dialogTitle == null)
|
||||||
val decision = when {
|
val decision = when {
|
||||||
leftCheckbox.isChecked && rightCheckbox.isChecked ->
|
leftCheckbox.isChecked && rightCheckbox.isChecked ->
|
||||||
if (isFolderNameNotExists) Decision.KEEP_BOTH_FOLDER else Decision.KEEP_BOTH
|
if (isDialogTitleNotExists) Decision.KEEP_BOTH_FOLDER else Decision.KEEP_BOTH
|
||||||
|
|
||||||
leftCheckbox.isChecked ->
|
leftCheckbox.isChecked ->
|
||||||
if (isFolderNameNotExists) Decision.KEEP_OFFLINE_FOLDER else Decision.KEEP_LOCAL
|
if (isDialogTitleNotExists) Decision.KEEP_OFFLINE_FOLDER else Decision.KEEP_LOCAL
|
||||||
|
|
||||||
rightCheckbox.isChecked ->
|
rightCheckbox.isChecked ->
|
||||||
if (isFolderNameNotExists) Decision.KEEP_SERVER_FOLDER else Decision.KEEP_SERVER
|
if (isDialogTitleNotExists) Decision.KEEP_SERVER_FOLDER else Decision.KEEP_SERVER
|
||||||
|
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
@ -179,19 +179,12 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
||||||
data?.let {
|
data?.let {
|
||||||
val (leftData, rightData) = it.checkboxData
|
val (leftData, rightData) = it.checkboxData
|
||||||
|
|
||||||
folderName.visibility = if (it.folderName == null) {
|
headline.visibility = if (it.headline == null) {
|
||||||
View.GONE
|
View.GONE
|
||||||
} else {
|
} else {
|
||||||
View.VISIBLE
|
View.VISIBLE
|
||||||
}
|
}
|
||||||
folderName.text = it.folderName
|
headline.text = it.headline
|
||||||
|
|
||||||
title.visibility = if (it.title == null) {
|
|
||||||
View.GONE
|
|
||||||
} else {
|
|
||||||
View.VISIBLE
|
|
||||||
}
|
|
||||||
title.text = it.title
|
|
||||||
|
|
||||||
description.text = it.description
|
description.text = it.description
|
||||||
|
|
||||||
|
@ -340,8 +333,6 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
||||||
rightFile: OCFile,
|
rightFile: OCFile,
|
||||||
context: Context
|
context: Context
|
||||||
): ConflictDialogData {
|
): ConflictDialogData {
|
||||||
val folderName = null
|
|
||||||
|
|
||||||
val leftTitle = context.getString(R.string.prefs_synced_folders_local_path_title)
|
val leftTitle = context.getString(R.string.prefs_synced_folders_local_path_title)
|
||||||
val leftTimestamp =
|
val leftTimestamp =
|
||||||
DisplayUtils.getRelativeTimestamp(context, offlineOperation.createdAt?.times(1000L) ?: 0)
|
DisplayUtils.getRelativeTimestamp(context, offlineOperation.createdAt?.times(1000L) ?: 0)
|
||||||
|
@ -355,21 +346,17 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
||||||
|
|
||||||
val title = context.getString(R.string.conflict_folder_headline)
|
val title = context.getString(R.string.conflict_folder_headline)
|
||||||
val description = context.getString(R.string.conflict_message_description_for_folder)
|
val description = context.getString(R.string.conflict_message_description_for_folder)
|
||||||
return ConflictDialogData(folderName, title, description, Pair(leftCheckBoxData, rightCheckBoxData))
|
return ConflictDialogData(null, title, description, Pair(leftCheckBoxData, rightCheckBoxData))
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
private fun getFileConflictData(file: File, rightFile: OCFile, context: Context): ConflictDialogData {
|
private fun getFileConflictData(leftFile: File, rightFile: OCFile, context: Context): ConflictDialogData {
|
||||||
val parentFile = File(rightFile.remotePath).parentFile
|
// TODO Path needs to be set it correctly for encrypted folders
|
||||||
val folderName = if (parentFile != null) {
|
val title = rightFile.decryptedRemotePath
|
||||||
String.format(context.getString(R.string.in_folder), parentFile.absolutePath)
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
|
|
||||||
val leftTitle = context.getString(R.string.conflict_local_file)
|
val leftTitle = context.getString(R.string.conflict_local_file)
|
||||||
val leftTimestamp = DisplayUtils.getRelativeTimestamp(context, file.lastModified())
|
val leftTimestamp = DisplayUtils.getRelativeTimestamp(context, leftFile.lastModified())
|
||||||
val leftFileSize = DisplayUtils.bytesToHumanReadable(file.length())
|
val leftFileSize = DisplayUtils.bytesToHumanReadable(leftFile.length())
|
||||||
val leftCheckBoxData = ConflictFileData(leftTitle, leftTimestamp.toString(), leftFileSize)
|
val leftCheckBoxData = ConflictFileData(leftTitle, leftTimestamp.toString(), leftFileSize)
|
||||||
|
|
||||||
val rightTitle = context.getString(R.string.conflict_server_file)
|
val rightTitle = context.getString(R.string.conflict_server_file)
|
||||||
|
@ -377,9 +364,9 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
||||||
val rightFileSize = DisplayUtils.bytesToHumanReadable(rightFile.fileLength)
|
val rightFileSize = DisplayUtils.bytesToHumanReadable(rightFile.fileLength)
|
||||||
val rightCheckBoxData = ConflictFileData(rightTitle, rightTimestamp.toString(), rightFileSize)
|
val rightCheckBoxData = ConflictFileData(rightTitle, rightTimestamp.toString(), rightFileSize)
|
||||||
|
|
||||||
val title = context.getString(R.string.choose_which_file)
|
val headline = context.getString(R.string.choose_which_file)
|
||||||
val description = context.getString(R.string.conflict_message_description)
|
val description = context.getString(R.string.conflict_message_description)
|
||||||
return ConflictDialogData(folderName, title, description, Pair(leftCheckBoxData, rightCheckBoxData))
|
return ConflictDialogData(title, headline, description, Pair(leftCheckBoxData, rightCheckBoxData))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,8 @@ import android.os.Parcelable
|
||||||
import com.nextcloud.utils.extensions.readParcelableCompat
|
import com.nextcloud.utils.extensions.readParcelableCompat
|
||||||
|
|
||||||
data class ConflictDialogData(
|
data class ConflictDialogData(
|
||||||
val folderName: String?,
|
val dialogTitle: String?,
|
||||||
val title: String?,
|
val headline: String?,
|
||||||
val description: String,
|
val description: String,
|
||||||
val checkboxData: Pair<ConflictFileData, ConflictFileData>
|
val checkboxData: Pair<ConflictFileData, ConflictFileData>
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
|
@ -28,8 +28,8 @@ data class ConflictDialogData(
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||||
parcel.writeString(folderName)
|
parcel.writeString(dialogTitle)
|
||||||
parcel.writeString(title)
|
parcel.writeString(headline)
|
||||||
parcel.writeString(description)
|
parcel.writeString(description)
|
||||||
parcel.writeParcelable(checkboxData.first, flags)
|
parcel.writeParcelable(checkboxData.first, flags)
|
||||||
parcel.writeParcelable(checkboxData.second, flags)
|
parcel.writeParcelable(checkboxData.second, flags)
|
||||||
|
|
|
@ -212,6 +212,8 @@ public class OCFileListBottomSheetDialog extends BottomSheetDialog implements In
|
||||||
}
|
}
|
||||||
|
|
||||||
private void filterActionsForOfflineOperations() {
|
private void filterActionsForOfflineOperations() {
|
||||||
|
if (file == null) return;
|
||||||
|
|
||||||
if (!file.isOfflineOperation() || file.isRootDirectory()) {
|
if (!file.isOfflineOperation() || file.isRootDirectory()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,14 +17,7 @@
|
||||||
android:paddingBottom="@dimen/standard_padding">
|
android:paddingBottom="@dimen/standard_padding">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/folder_name"
|
android:id="@+id/headline"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/in_folder"
|
|
||||||
android:paddingBottom="@dimen/standard_padding" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/title"
|
|
||||||
android:layout_marginTop="@dimen/standard_margin"
|
android:layout_marginTop="@dimen/standard_margin"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s ميغا بكسل</string>
|
<string name="image_preview_unit_megapixel">%s ميغا بكسل</string>
|
||||||
<string name="image_preview_unit_millimetres">%s مللي</string>
|
<string name="image_preview_unit_millimetres">%s مللي</string>
|
||||||
<string name="image_preview_unit_seconds">%s ثانية</string>
|
<string name="image_preview_unit_seconds">%s ثانية</string>
|
||||||
<string name="in_folder">في مجلد %1$s</string>
|
|
||||||
<string name="instant_upload_existing">ارفع الملفات الموجودة مسبقاً أيضاً</string>
|
<string name="instant_upload_existing">ارفع الملفات الموجودة مسبقاً أيضاً</string>
|
||||||
<string name="instant_upload_on_charging">ارفع وقت الشحن فقط</string>
|
<string name="instant_upload_on_charging">ارفع وقت الشحن فقط</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -297,7 +297,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">na carpeta %1$s</string>
|
|
||||||
<string name="instant_upload_on_charging">Namái xubir al cargar</string>
|
<string name="instant_upload_on_charging">Namái xubir al cargar</string>
|
||||||
<string name="instant_upload_path">/XubidaNelIntre</string>
|
<string name="instant_upload_path">/XubidaNelIntre</string>
|
||||||
<string name="invalid_url">La URL ye inválisa</string>
|
<string name="invalid_url">La URL ye inválisa</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">in folder %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Also upload existing files</string>
|
<string name="instant_upload_existing">Also upload existing files</string>
|
||||||
<string name="instant_upload_on_charging">Only upload when charging</string>
|
<string name="instant_upload_on_charging">Only upload when charging</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -405,7 +405,6 @@
|
||||||
<string name="icon_for_empty_list">Икона за празен списък</string>
|
<string name="icon_for_empty_list">Икона за празен списък</string>
|
||||||
<string name="icon_of_dashboard_widget">Икона на изпълним модул на табло за управление</string>
|
<string name="icon_of_dashboard_widget">Икона на изпълним модул на табло за управление</string>
|
||||||
<string name="icon_of_widget_entry">Икона на вход на изпълним модул</string>
|
<string name="icon_of_widget_entry">Икона на вход на изпълним модул</string>
|
||||||
<string name="in_folder">в папка %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Качете и съществуващи файлове</string>
|
<string name="instant_upload_existing">Качете и съществуващи файлове</string>
|
||||||
<string name="instant_upload_on_charging">Качване само при зареждане</string>
|
<string name="instant_upload_on_charging">Качване само при зареждане</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -398,7 +398,6 @@
|
||||||
<string name="icon_for_empty_list">Icona per a la llista buida</string>
|
<string name="icon_for_empty_list">Icona per a la llista buida</string>
|
||||||
<string name="icon_of_dashboard_widget">Icona del giny del tauler</string>
|
<string name="icon_of_dashboard_widget">Icona del giny del tauler</string>
|
||||||
<string name="icon_of_widget_entry">Icona de l\'entrada del giny</string>
|
<string name="icon_of_widget_entry">Icona de l\'entrada del giny</string>
|
||||||
<string name="in_folder">en la carpeta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">També pujar fitxers existents</string>
|
<string name="instant_upload_existing">També pujar fitxers existents</string>
|
||||||
<string name="instant_upload_on_charging">Pujada només durant la càrrega de bateria</string>
|
<string name="instant_upload_on_charging">Pujada només durant la càrrega de bateria</string>
|
||||||
<string name="instant_upload_path">/CàrregaInstantània</string>
|
<string name="instant_upload_path">/CàrregaInstantània</string>
|
||||||
|
|
|
@ -449,7 +449,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">ve složce %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Také nahrát už existující soubory</string>
|
<string name="instant_upload_existing">Také nahrát už existující soubory</string>
|
||||||
<string name="instant_upload_on_charging">Nahrávat pouze při nabíjení</string>
|
<string name="instant_upload_on_charging">Nahrávat pouze při nabíjení</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -439,7 +439,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">i mappen %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Send også eksisterende filer</string>
|
<string name="instant_upload_existing">Send også eksisterende filer</string>
|
||||||
<string name="instant_upload_on_charging">Upload kun under opladning</string>
|
<string name="instant_upload_on_charging">Upload kun under opladning</string>
|
||||||
<string name="instant_upload_path">/Øjeblikkelig upload</string>
|
<string name="instant_upload_path">/Øjeblikkelig upload</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">in Ordner %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Vorhandene Dateien ebenfalls hochladen</string>
|
<string name="instant_upload_existing">Vorhandene Dateien ebenfalls hochladen</string>
|
||||||
<string name="instant_upload_on_charging">Nur während des Ladens der Batterie hochladen</string>
|
<string name="instant_upload_on_charging">Nur während des Ladens der Batterie hochladen</string>
|
||||||
<string name="instant_upload_path">/SofortUpload</string>
|
<string name="instant_upload_path">/SofortUpload</string>
|
||||||
|
|
|
@ -411,7 +411,6 @@
|
||||||
<string name="icon_of_widget_entry">Εικονίδιο κενού γραφικού στοιχείου</string>
|
<string name="icon_of_widget_entry">Εικονίδιο κενού γραφικού στοιχείου</string>
|
||||||
<string name="image_editor_flip_horizontal">Οριζόντια περιστροφή</string>
|
<string name="image_editor_flip_horizontal">Οριζόντια περιστροφή</string>
|
||||||
<string name="image_editor_flip_vertical">Κάθετη περιστροφή</string>
|
<string name="image_editor_flip_vertical">Κάθετη περιστροφή</string>
|
||||||
<string name="in_folder">Στον φάκελο %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Μεταφόρτωση, επίσης, υπαρχόντων αρχείων</string>
|
<string name="instant_upload_existing">Μεταφόρτωση, επίσης, υπαρχόντων αρχείων</string>
|
||||||
<string name="instant_upload_on_charging">Μεταφόρτωση μόνο κατά τη διάρκεια φόρτισης</string>
|
<string name="instant_upload_on_charging">Μεταφόρτωση μόνο κατά τη διάρκεια φόρτισης</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -469,7 +469,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">en la carpeta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Cargue también archivos existentes</string>
|
<string name="instant_upload_existing">Cargue también archivos existentes</string>
|
||||||
<string name="instant_upload_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</string>
|
<string name="instant_upload_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</string>
|
||||||
<string name="instant_upload_path">/SubidasInstantáneas</string>
|
<string name="instant_upload_path">/SubidasInstantáneas</string>
|
||||||
|
|
|
@ -412,7 +412,6 @@
|
||||||
<string name="image_editor_rotate_ccw">Girar en sentido antihorario</string>
|
<string name="image_editor_rotate_ccw">Girar en sentido antihorario</string>
|
||||||
<string name="image_editor_rotate_cw">Girar en sentido horario</string>
|
<string name="image_editor_rotate_cw">Girar en sentido horario</string>
|
||||||
<string name="image_editor_unable_to_edit_image">No se puede editar la imagen.</string>
|
<string name="image_editor_unable_to_edit_image">No se puede editar la imagen.</string>
|
||||||
<string name="in_folder">en la carpeta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">También cargar archivos existentes</string>
|
<string name="instant_upload_existing">También cargar archivos existentes</string>
|
||||||
<string name="instant_upload_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</string>
|
<string name="instant_upload_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</string>
|
||||||
<string name="instant_upload_path">/Cargas Automáticas</string>
|
<string name="instant_upload_path">/Cargas Automáticas</string>
|
||||||
|
|
|
@ -469,7 +469,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">en la carpeta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Cargar también archivos existentes</string>
|
<string name="instant_upload_existing">Cargar también archivos existentes</string>
|
||||||
<string name="instant_upload_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</string>
|
<string name="instant_upload_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</string>
|
||||||
<string name="instant_upload_path">/Cargas Automáticas</string>
|
<string name="instant_upload_path">/Cargas Automáticas</string>
|
||||||
|
|
|
@ -466,7 +466,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">en carpeta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Subir también archivos existentes</string>
|
<string name="instant_upload_existing">Subir también archivos existentes</string>
|
||||||
<string name="instant_upload_on_charging">Subir solo al cargar batería</string>
|
<string name="instant_upload_on_charging">Subir solo al cargar batería</string>
|
||||||
<string name="instant_upload_path">/SubidaInstantánea</string>
|
<string name="instant_upload_path">/SubidaInstantánea</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">%1$skarpetan</string>
|
|
||||||
<string name="instant_upload_existing">Existitzen diren fitxategiak ere igo</string>
|
<string name="instant_upload_existing">Existitzen diren fitxategiak ere igo</string>
|
||||||
<string name="instant_upload_on_charging">Igo bakarrik gailua kargatzean</string>
|
<string name="instant_upload_on_charging">Igo bakarrik gailua kargatzean</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -442,7 +442,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s مگاپیکسل</string>
|
<string name="image_preview_unit_megapixel">%s مگاپیکسل</string>
|
||||||
<string name="image_preview_unit_millimetres">%s میلیمتر</string>
|
<string name="image_preview_unit_millimetres">%s میلیمتر</string>
|
||||||
<string name="image_preview_unit_seconds">%s ثانیه</string>
|
<string name="image_preview_unit_seconds">%s ثانیه</string>
|
||||||
<string name="in_folder">در پوشه %1$s</string>
|
|
||||||
<string name="instant_upload_existing">فایل های موجود را نیز بارگذاری کنید</string>
|
<string name="instant_upload_existing">فایل های موجود را نیز بارگذاری کنید</string>
|
||||||
<string name="instant_upload_on_charging">فقط هنگامی که گوشی شارژ می شود آپلود کنید</string>
|
<string name="instant_upload_on_charging">فقط هنگامی که گوشی شارژ می شود آپلود کنید</string>
|
||||||
<string name="instant_upload_path">آپلود فوری</string>
|
<string name="instant_upload_path">آپلود فوری</string>
|
||||||
|
|
|
@ -415,7 +415,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">kansiossa %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Siirrä myös olemassaolevat tiedostot palvelimelle</string>
|
<string name="instant_upload_existing">Siirrä myös olemassaolevat tiedostot palvelimelle</string>
|
||||||
<string name="instant_upload_on_charging">Lähetä vain ladattaessa virtaa</string>
|
<string name="instant_upload_on_charging">Lähetä vain ladattaessa virtaa</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -482,7 +482,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">dans le dossier %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Téléverser aussi les fichiers existants</string>
|
<string name="instant_upload_existing">Téléverser aussi les fichiers existants</string>
|
||||||
<string name="instant_upload_on_charging">Téléverser uniquement lors de la recharge</string>
|
<string name="instant_upload_on_charging">Téléverser uniquement lors de la recharge</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">i bhfillteán %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Uaslódáil comhaid atá ann cheana féin freisin</string>
|
<string name="instant_upload_existing">Uaslódáil comhaid atá ann cheana féin freisin</string>
|
||||||
<string name="instant_upload_on_charging">Íoslódáil ach amháin nuair a mhuirearú</string>
|
<string name="instant_upload_on_charging">Íoslódáil ach amháin nuair a mhuirearú</string>
|
||||||
<string name="instant_upload_path">/Uaslódáil Meandaracha</string>
|
<string name="instant_upload_path">/Uaslódáil Meandaracha</string>
|
||||||
|
|
|
@ -344,7 +344,6 @@
|
||||||
<string name="hint_password">Facal-faire</string>
|
<string name="hint_password">Facal-faire</string>
|
||||||
<string name="host_not_available">Chan eil am frithealaiche ri làimh</string>
|
<string name="host_not_available">Chan eil am frithealaiche ri làimh</string>
|
||||||
<string name="host_your_own_server">Òstaich am frithealaiche agad fhèin</string>
|
<string name="host_your_own_server">Òstaich am frithealaiche agad fhèin</string>
|
||||||
<string name="in_folder">sa phasgan %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Luchdaich suas na faidhlichean a tha ann mu thràth cuideachd</string>
|
<string name="instant_upload_existing">Luchdaich suas na faidhlichean a tha ann mu thràth cuideachd</string>
|
||||||
<string name="instant_upload_on_charging">Na luchdaich suas ach nuair a bhios an t-uidheam ’ga theàirrdseadh</string>
|
<string name="instant_upload_on_charging">Na luchdaich suas ach nuair a bhios an t-uidheam ’ga theàirrdseadh</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">no cartafol %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Envíar tamén os ficheiros existentes</string>
|
<string name="instant_upload_existing">Envíar tamén os ficheiros existentes</string>
|
||||||
<string name="instant_upload_on_charging">Enviar só cando estea cargando</string>
|
<string name="instant_upload_on_charging">Enviar só cando estea cargando</string>
|
||||||
<string name="instant_upload_path">/EnvíoInstantáneo</string>
|
<string name="instant_upload_path">/EnvíoInstantáneo</string>
|
||||||
|
|
|
@ -382,7 +382,6 @@
|
||||||
<string name="hint_password">Zaporka</string>
|
<string name="hint_password">Zaporka</string>
|
||||||
<string name="host_not_available">Poslužitelj nije dostupan</string>
|
<string name="host_not_available">Poslužitelj nije dostupan</string>
|
||||||
<string name="host_your_own_server">Postavi vlastiti poslužitelj</string>
|
<string name="host_your_own_server">Postavi vlastiti poslužitelj</string>
|
||||||
<string name="in_folder">u mapi %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Također otpremi postojeće datoteke</string>
|
<string name="instant_upload_existing">Također otpremi postojeće datoteke</string>
|
||||||
<string name="instant_upload_on_charging">Otpremanje samo tijekom punjenja</string>
|
<string name="instant_upload_on_charging">Otpremanje samo tijekom punjenja</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -429,7 +429,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">%1$s mappában</string>
|
|
||||||
<string name="instant_upload_existing">A meglévő fájlokat is töltse fel</string>
|
<string name="instant_upload_existing">A meglévő fájlokat is töltse fel</string>
|
||||||
<string name="instant_upload_on_charging">Feltöltés csak töltés közben</string>
|
<string name="instant_upload_on_charging">Feltöltés csak töltés közben</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -430,7 +430,6 @@ Otomatis unggah hanya bekerja dengan baik apabila Anda mengeluarkan aplikasi ini
|
||||||
<string name="image_editor_unable_to_edit_image">Tidak dapat mengedit gambar.</string>
|
<string name="image_editor_unable_to_edit_image">Tidak dapat mengedit gambar.</string>
|
||||||
<string name="image_preview_filedetails">Detail berkas</string>
|
<string name="image_preview_filedetails">Detail berkas</string>
|
||||||
<string name="image_preview_image_taking_conditions">Kondisi pengambilan gambar</string>
|
<string name="image_preview_image_taking_conditions">Kondisi pengambilan gambar</string>
|
||||||
<string name="in_folder">di folder %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Juga unggah berkas yang ada</string>
|
<string name="instant_upload_existing">Juga unggah berkas yang ada</string>
|
||||||
<string name="instant_upload_on_charging">Hanya unggah ketika dicas</string>
|
<string name="instant_upload_on_charging">Hanya unggah ketika dicas</string>
|
||||||
<string name="instant_upload_path">/UnggahInstan</string>
|
<string name="instant_upload_path">/UnggahInstan</string>
|
||||||
|
|
|
@ -415,7 +415,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">í möppunni %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Senda líka inn fyrirliggjandi skrár</string>
|
<string name="instant_upload_existing">Senda líka inn fyrirliggjandi skrár</string>
|
||||||
<string name="instant_upload_on_charging">Einungis senda inn þegar verið er að hlaða</string>
|
<string name="instant_upload_on_charging">Einungis senda inn þegar verið er að hlaða</string>
|
||||||
<string name="instant_upload_path">/BeinInnsending</string>
|
<string name="instant_upload_path">/BeinInnsending</string>
|
||||||
|
|
|
@ -447,7 +447,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">nella cartella %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Carica anche i file esistenti</string>
|
<string name="instant_upload_existing">Carica anche i file esistenti</string>
|
||||||
<string name="instant_upload_on_charging">Carica solo durante la ricarica</string>
|
<string name="instant_upload_on_charging">Carica solo durante la ricarica</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -470,7 +470,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s 秒</string>
|
<string name="image_preview_unit_seconds">%s 秒</string>
|
||||||
<string name="in_folder">フォルダー%1$sの中で</string>
|
|
||||||
<string name="instant_upload_existing">既存のファイルもアップロード</string>
|
<string name="instant_upload_existing">既存のファイルもアップロード</string>
|
||||||
<string name="instant_upload_on_charging">充電中のみアップロード</string>
|
<string name="instant_upload_on_charging">充電中のみアップロード</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -424,7 +424,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">in folder %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Also upload existing files</string>
|
<string name="instant_upload_existing">Also upload existing files</string>
|
||||||
<string name="instant_upload_on_charging">Only upload when charging</string>
|
<string name="instant_upload_on_charging">Only upload when charging</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -480,7 +480,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s초</string>
|
<string name="image_preview_unit_seconds">%s초</string>
|
||||||
<string name="in_folder">%1$s 폴더 안에</string>
|
|
||||||
<string name="instant_upload_existing">이미 존재하는 파일도 올리기</string>
|
<string name="instant_upload_existing">이미 존재하는 파일도 올리기</string>
|
||||||
<string name="instant_upload_on_charging">충전 중에만 업로드</string>
|
<string name="instant_upload_on_charging">충전 중에만 업로드</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -347,7 +347,6 @@
|
||||||
<string name="hint_password">ລະຫັດຜ່ານ</string>
|
<string name="hint_password">ລະຫັດຜ່ານ</string>
|
||||||
<string name="host_not_available">ເຊີເວີບໍ່ວ່າງ</string>
|
<string name="host_not_available">ເຊີເວີບໍ່ວ່າງ</string>
|
||||||
<string name="host_your_own_server">ເຊີເວີຂອງທ່ານເອງ</string>
|
<string name="host_your_own_server">ເຊີເວີຂອງທ່ານເອງ</string>
|
||||||
<string name="in_folder">ໃນໂຟນເດີ %1$s</string>
|
|
||||||
<string name="instant_upload_existing">ອັບໂຫຼດຟາຍທີ່ມີຢູ່ແລ້ວ</string>
|
<string name="instant_upload_existing">ອັບໂຫຼດຟາຍທີ່ມີຢູ່ແລ້ວ</string>
|
||||||
<string name="instant_upload_on_charging">ພຽງແຕ່ອັບໂຫຼດເທົ່ານັ້ນ</string>
|
<string name="instant_upload_on_charging">ພຽງແຕ່ອັບໂຫຼດເທົ່ານັ້ນ</string>
|
||||||
<string name="instant_upload_path">/ອັບໂຫຼດທັນທີ</string>
|
<string name="instant_upload_path">/ອັບໂຫຼດທັນທີ</string>
|
||||||
|
|
|
@ -376,7 +376,6 @@
|
||||||
<string name="hint_password">Slaptažodis</string>
|
<string name="hint_password">Slaptažodis</string>
|
||||||
<string name="host_not_available">Serveris neprieinamas</string>
|
<string name="host_not_available">Serveris neprieinamas</string>
|
||||||
<string name="host_your_own_server">Administruoti savo serverį</string>
|
<string name="host_your_own_server">Administruoti savo serverį</string>
|
||||||
<string name="in_folder">aplanke %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Taip pat įkelkite esamus failus</string>
|
<string name="instant_upload_existing">Taip pat įkelkite esamus failus</string>
|
||||||
<string name="instant_upload_on_charging">Įkelti failus tik kai kraunasi</string>
|
<string name="instant_upload_on_charging">Įkelti failus tik kai kraunasi</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -358,7 +358,6 @@
|
||||||
<string name="hint_password">Лозинка</string>
|
<string name="hint_password">Лозинка</string>
|
||||||
<string name="host_not_available">Серверот не е достапен</string>
|
<string name="host_not_available">Серверот не е достапен</string>
|
||||||
<string name="host_your_own_server">Хостирајте го вашиот сервер</string>
|
<string name="host_your_own_server">Хостирајте го вашиот сервер</string>
|
||||||
<string name="in_folder">во папката %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Прикачување на постоечките датотеки</string>
|
<string name="instant_upload_existing">Прикачување на постоечките датотеки</string>
|
||||||
<string name="instant_upload_on_charging">Прикачувај само додека се полни</string>
|
<string name="instant_upload_on_charging">Прикачувај само додека се полни</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">i mappen %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Last også opp eksisterende filer</string>
|
<string name="instant_upload_existing">Last også opp eksisterende filer</string>
|
||||||
<string name="instant_upload_on_charging">Bare last opp under lading</string>
|
<string name="instant_upload_on_charging">Bare last opp under lading</string>
|
||||||
<string name="instant_upload_path">/Direkteopplasting</string>
|
<string name="instant_upload_path">/Direkteopplasting</string>
|
||||||
|
|
|
@ -470,7 +470,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">in map %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Upload ook bestaande bestanden</string>
|
<string name="instant_upload_existing">Upload ook bestaande bestanden</string>
|
||||||
<string name="instant_upload_on_charging">Alleen uploaden bij opladen</string>
|
<string name="instant_upload_on_charging">Alleen uploaden bij opladen</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -464,7 +464,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">w katalogu %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Wyślij również istniejące pliki</string>
|
<string name="instant_upload_existing">Wyślij również istniejące pliki</string>
|
||||||
<string name="instant_upload_on_charging">Wysyłaj tylko podczas ładowania</string>
|
<string name="instant_upload_on_charging">Wysyłaj tylko podczas ładowania</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">na pasta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Enviar arquivos existentes também</string>
|
<string name="instant_upload_existing">Enviar arquivos existentes também</string>
|
||||||
<string name="instant_upload_on_charging">Só enviar quando carregando</string>
|
<string name="instant_upload_on_charging">Só enviar quando carregando</string>
|
||||||
<string name="instant_upload_path">/EnvioAutomático</string>
|
<string name="instant_upload_path">/EnvioAutomático</string>
|
||||||
|
|
|
@ -410,7 +410,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">na pasta %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Também envia ficheiros existentes</string>
|
<string name="instant_upload_existing">Também envia ficheiros existentes</string>
|
||||||
<string name="instant_upload_on_charging">Carregar ficheiros apenas quando o carregador está ligado</string>
|
<string name="instant_upload_on_charging">Carregar ficheiros apenas quando o carregador está ligado</string>
|
||||||
<string name="instant_upload_path">/Envio Instantâneo </string>
|
<string name="instant_upload_path">/Envio Instantâneo </string>
|
||||||
|
|
|
@ -434,7 +434,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">în folderul %1$s</string>
|
|
||||||
<string name="instant_upload_existing">De asemenea încarcă fisiere existente</string>
|
<string name="instant_upload_existing">De asemenea încarcă fisiere existente</string>
|
||||||
<string name="instant_upload_on_charging">Se încarcă numai în timpul alimentării cu curent</string>
|
<string name="instant_upload_on_charging">Se încarcă numai în timpul alimentării cu curent</string>
|
||||||
<string name="instant_upload_path">/Încărcare instantă</string>
|
<string name="instant_upload_path">/Încărcare instantă</string>
|
||||||
|
|
|
@ -486,7 +486,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s МПкс</string>
|
<string name="image_preview_unit_megapixel">%s МПкс</string>
|
||||||
<string name="image_preview_unit_millimetres">%s мм</string>
|
<string name="image_preview_unit_millimetres">%s мм</string>
|
||||||
<string name="image_preview_unit_seconds">%s с</string>
|
<string name="image_preview_unit_seconds">%s с</string>
|
||||||
<string name="in_folder">в папку %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Также загрузить существующие файлы</string>
|
<string name="instant_upload_existing">Также загрузить существующие файлы</string>
|
||||||
<string name="instant_upload_on_charging">Только во время зарядки</string>
|
<string name="instant_upload_on_charging">Только во время зарядки</string>
|
||||||
<string name="instant_upload_path">/Автозагрузка</string>
|
<string name="instant_upload_path">/Автозагрузка</string>
|
||||||
|
|
|
@ -362,7 +362,6 @@
|
||||||
<string name="hint_password">Crae</string>
|
<string name="hint_password">Crae</string>
|
||||||
<string name="host_not_available">Su serbidore no est a disponimentu</string>
|
<string name="host_not_available">Su serbidore no est a disponimentu</string>
|
||||||
<string name="host_your_own_server">Retzi su serbidore tuo</string>
|
<string name="host_your_own_server">Retzi su serbidore tuo</string>
|
||||||
<string name="in_folder">in sa cartella %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Càrriga puru is documentos chi esistint giai</string>
|
<string name="instant_upload_existing">Càrriga puru is documentos chi esistint giai</string>
|
||||||
<string name="instant_upload_on_charging">Càrriga isceti cando est carrighende sa bateria</string>
|
<string name="instant_upload_on_charging">Càrriga isceti cando est carrighende sa bateria</string>
|
||||||
<string name="instant_upload_path">/Carrigamentu istantàneu</string>
|
<string name="instant_upload_path">/Carrigamentu istantàneu</string>
|
||||||
|
|
|
@ -463,7 +463,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">v priečinku %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Nahrať aj existujúce súbory</string>
|
<string name="instant_upload_existing">Nahrať aj existujúce súbory</string>
|
||||||
<string name="instant_upload_on_charging">Nahrať iba počas nabíjania</string>
|
<string name="instant_upload_on_charging">Nahrať iba počas nabíjania</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
<string name="action_send_share">Pošlji/Omogoči souporabo</string>
|
<string name="action_send_share">Pošlji/Omogoči souporabo</string>
|
||||||
<string name="action_switch_grid_view">Mrežni pogled</string>
|
<string name="action_switch_grid_view">Mrežni pogled</string>
|
||||||
<string name="action_switch_list_view">Seznamski pogled</string>
|
<string name="action_switch_list_view">Seznamski pogled</string>
|
||||||
|
<string name="actionbar_calendar_contacts_restore">Obnovi stike in koledar</string>
|
||||||
<string name="actionbar_mkdir">Nova mapa</string>
|
<string name="actionbar_mkdir">Nova mapa</string>
|
||||||
<string name="actionbar_move_or_copy">Premakni ali Kopiraj</string>
|
<string name="actionbar_move_or_copy">Premakni ali Kopiraj</string>
|
||||||
<string name="actionbar_open_with">Odpri s programom</string>
|
<string name="actionbar_open_with">Odpri s programom</string>
|
||||||
|
@ -83,6 +84,7 @@
|
||||||
<string name="avatar">Avatar</string>
|
<string name="avatar">Avatar</string>
|
||||||
<string name="away">Ne spremljam</string>
|
<string name="away">Ne spremljam</string>
|
||||||
<string name="backup_settings">Nastavitve varnostnega kopiranja</string>
|
<string name="backup_settings">Nastavitve varnostnega kopiranja</string>
|
||||||
|
<string name="backup_title">Varnostna kopija koledarja in stikov</string>
|
||||||
<string name="battery_optimization_close">Zapri</string>
|
<string name="battery_optimization_close">Zapri</string>
|
||||||
<string name="battery_optimization_disable">Onemogoči</string>
|
<string name="battery_optimization_disable">Onemogoči</string>
|
||||||
<string name="battery_optimization_message">Naprava ima najverjetneje omogočeno možnost optimizacije porabe baterije. Program AutoUpload pravilno deluje le, če je izvzet iz nje.</string>
|
<string name="battery_optimization_message">Naprava ima najverjetneje omogočeno možnost optimizacije porabe baterije. Program AutoUpload pravilno deluje le, če je izvzet iz nje.</string>
|
||||||
|
@ -425,7 +427,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">v mapi %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Pošlji tudi obstoječe datoteke</string>
|
<string name="instant_upload_existing">Pošlji tudi obstoječe datoteke</string>
|
||||||
<string name="instant_upload_on_charging">Usklajuj le med polnjenjem naprave</string>
|
<string name="instant_upload_on_charging">Usklajuj le med polnjenjem naprave</string>
|
||||||
<string name="instant_upload_path">/Hipno nalaganje</string>
|
<string name="instant_upload_path">/Hipno nalaganje</string>
|
||||||
|
@ -665,6 +666,7 @@
|
||||||
<string name="screenshot_04_accounts_heading">Vsi vaši računi</string>
|
<string name="screenshot_04_accounts_heading">Vsi vaši računi</string>
|
||||||
<string name="screenshot_04_accounts_subline">na enem mestu</string>
|
<string name="screenshot_04_accounts_subline">na enem mestu</string>
|
||||||
<string name="screenshot_05_autoUpload_heading">Samodejno pošiljanje</string>
|
<string name="screenshot_05_autoUpload_heading">Samodejno pošiljanje</string>
|
||||||
|
<string name="screenshot_06_davdroid_heading">Koledar in stiki</string>
|
||||||
<string name="screenshot_06_davdroid_subline">Uskladi z DAVx5</string>
|
<string name="screenshot_06_davdroid_subline">Uskladi z DAVx5</string>
|
||||||
<string name="search_error">Napaka pridobivanja zadetkov iskanja</string>
|
<string name="search_error">Napaka pridobivanja zadetkov iskanja</string>
|
||||||
<string name="select_all">Izberi vse</string>
|
<string name="select_all">Izberi vse</string>
|
||||||
|
|
|
@ -471,7 +471,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">У фолдеру %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Отпреми и постојеће фајлове</string>
|
<string name="instant_upload_existing">Отпреми и постојеће фајлове</string>
|
||||||
<string name="instant_upload_on_charging">Отпремај само на пуњењу</string>
|
<string name="instant_upload_on_charging">Отпремај само на пуњењу</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
<string name="add_to_cloud">Lägg till %1$s</string>
|
<string name="add_to_cloud">Lägg till %1$s</string>
|
||||||
<string name="advanced_settings">Avancerade inställningar</string>
|
<string name="advanced_settings">Avancerade inställningar</string>
|
||||||
<string name="allow_resharing">Tillåt dela vidare</string>
|
<string name="allow_resharing">Tillåt dela vidare</string>
|
||||||
|
<string name="app_config_base_url_title">Bas-URL</string>
|
||||||
<string name="app_config_proxy_host_title">Proxy-värdnamn</string>
|
<string name="app_config_proxy_host_title">Proxy-värdnamn</string>
|
||||||
<string name="app_config_proxy_port_title">Proxyport</string>
|
<string name="app_config_proxy_port_title">Proxyport</string>
|
||||||
<string name="app_widget_description">Visa en widget från dashboard</string>
|
<string name="app_widget_description">Visa en widget från dashboard</string>
|
||||||
|
@ -484,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">i mapp %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Ladda även upp befintliga filer</string>
|
<string name="instant_upload_existing">Ladda även upp befintliga filer</string>
|
||||||
<string name="instant_upload_on_charging">Ladda enbart upp när enheten laddas</string>
|
<string name="instant_upload_on_charging">Ladda enbart upp när enheten laddas</string>
|
||||||
<string name="instant_upload_path">/AutomatiskUppladdning</string>
|
<string name="instant_upload_path">/AutomatiskUppladdning</string>
|
||||||
|
|
|
@ -361,7 +361,6 @@
|
||||||
<string name="image_editor_rotate_ccw">หมุนทวนเข็มนาฬิกา</string>
|
<string name="image_editor_rotate_ccw">หมุนทวนเข็มนาฬิกา</string>
|
||||||
<string name="image_editor_rotate_cw">หมุนตามเข็มนาฬิกา</string>
|
<string name="image_editor_rotate_cw">หมุนตามเข็มนาฬิกา</string>
|
||||||
<string name="image_editor_unable_to_edit_image">ไม่สามารถแก้ไขรูปภาพ</string>
|
<string name="image_editor_unable_to_edit_image">ไม่สามารถแก้ไขรูปภาพ</string>
|
||||||
<string name="in_folder">ในโฟลเดอร์ %1$s</string>
|
|
||||||
<string name="instant_upload_existing">อัปโหลดไฟล์ที่มีอยู่เดิมด้วย</string>
|
<string name="instant_upload_existing">อัปโหลดไฟล์ที่มีอยู่เดิมด้วย</string>
|
||||||
<string name="instant_upload_on_charging">อัปโหลดขณะชาร์จเท่านั้น</string>
|
<string name="instant_upload_on_charging">อัปโหลดขณะชาร์จเท่านั้น</string>
|
||||||
<string name="instant_upload_path">/อัพโหลดทันที</string>
|
<string name="instant_upload_path">/อัพโหลดทันที</string>
|
||||||
|
|
|
@ -338,7 +338,6 @@
|
||||||
<string name="hint_password">Açarsöz</string>
|
<string name="hint_password">Açarsöz</string>
|
||||||
<string name="host_not_available">Serwer elýeterli däl</string>
|
<string name="host_not_available">Serwer elýeterli däl</string>
|
||||||
<string name="host_your_own_server">Öz serweriňizi ýerleşdiriň</string>
|
<string name="host_your_own_server">Öz serweriňizi ýerleşdiriň</string>
|
||||||
<string name="in_folder">%1$s bukjada</string>
|
|
||||||
<string name="instant_upload_existing">Bar bolan faýllary hem ýükläň</string>
|
<string name="instant_upload_existing">Bar bolan faýllary hem ýükläň</string>
|
||||||
<string name="instant_upload_on_charging">Diňe zarýad berlende ýükläň</string>
|
<string name="instant_upload_on_charging">Diňe zarýad berlende ýükläň</string>
|
||||||
<string name="instant_upload_path">/ Çaltýüklemek</string>
|
<string name="instant_upload_path">/ Çaltýüklemek</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">%1$s klasöründe</string>
|
|
||||||
<string name="instant_upload_existing">Var olan dosyalar da yüklensin</string>
|
<string name="instant_upload_existing">Var olan dosyalar da yüklensin</string>
|
||||||
<string name="instant_upload_on_charging">Yalnızca şarj edilirken yüklensin</string>
|
<string name="instant_upload_on_charging">Yalnızca şarj edilirken yüklensin</string>
|
||||||
<string name="instant_upload_path">/AnındaYükle</string>
|
<string name="instant_upload_path">/AnındaYükle</string>
|
||||||
|
|
|
@ -476,7 +476,6 @@
|
||||||
<string name="image_preview_image_taking_conditions">Умови отримання зображення</string>
|
<string name="image_preview_image_taking_conditions">Умови отримання зображення</string>
|
||||||
<string name="image_preview_unit_millimetres">%s мм</string>
|
<string name="image_preview_unit_millimetres">%s мм</string>
|
||||||
<string name="image_preview_unit_seconds">%s с</string>
|
<string name="image_preview_unit_seconds">%s с</string>
|
||||||
<string name="in_folder">в каталозі %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Також завантажити існуючі файли</string>
|
<string name="instant_upload_existing">Також завантажити існуючі файли</string>
|
||||||
<string name="instant_upload_on_charging">Завантаження тільки під час заряджання</string>
|
<string name="instant_upload_on_charging">Завантаження тільки під час заряджання</string>
|
||||||
<string name="internal_two_way_sync">Внутрішня двостороння синхронізація</string>
|
<string name="internal_two_way_sync">Внутрішня двостороння синхронізація</string>
|
||||||
|
|
|
@ -387,7 +387,6 @@
|
||||||
<string name="hint_password">Mật khẩu</string>
|
<string name="hint_password">Mật khẩu</string>
|
||||||
<string name="host_not_available">Máy chủ không khả dụng</string>
|
<string name="host_not_available">Máy chủ không khả dụng</string>
|
||||||
<string name="host_your_own_server">Host máy chủ của riêng bạn</string>
|
<string name="host_your_own_server">Host máy chủ của riêng bạn</string>
|
||||||
<string name="in_folder">trong thư mục %1$s</string>
|
|
||||||
<string name="instant_upload_existing">Cũng tải lên các tệp hiện có</string>
|
<string name="instant_upload_existing">Cũng tải lên các tệp hiện có</string>
|
||||||
<string name="instant_upload_on_charging">Chỉ tải lên khi đang sạc pin</string>
|
<string name="instant_upload_on_charging">Chỉ tải lên khi đang sạc pin</string>
|
||||||
<string name="instant_upload_path">/Upload tức thì</string>
|
<string name="instant_upload_path">/Upload tức thì</string>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<string name="account_not_found">找不到账号!</string>
|
<string name="account_not_found">找不到账号!</string>
|
||||||
<string name="action_edit">编辑</string>
|
<string name="action_edit">编辑</string>
|
||||||
<string name="action_empty_notifications">清除所有通知</string>
|
<string name="action_empty_notifications">清除所有通知</string>
|
||||||
<string name="action_empty_trashbin">清空垃圾箱</string>
|
<string name="action_empty_trashbin">清空回收站</string>
|
||||||
<string name="action_send_share">共享</string>
|
<string name="action_send_share">共享</string>
|
||||||
<string name="action_switch_grid_view">网格视图</string>
|
<string name="action_switch_grid_view">网格视图</string>
|
||||||
<string name="action_switch_list_view">列表视图</string>
|
<string name="action_switch_list_view">列表视图</string>
|
||||||
|
@ -459,7 +459,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">在文件夹 %1$s 内 </string>
|
|
||||||
<string name="instant_upload_existing">同时上传现有文件</string>
|
<string name="instant_upload_existing">同时上传现有文件</string>
|
||||||
<string name="instant_upload_on_charging">仅在充电时上传</string>
|
<string name="instant_upload_on_charging">仅在充电时上传</string>
|
||||||
<string name="instant_upload_path">/实时上传</string>
|
<string name="instant_upload_path">/实时上传</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">在資料夾 %1$s</string>
|
|
||||||
<string name="instant_upload_existing">一併上傳存在的檔案</string>
|
<string name="instant_upload_existing">一併上傳存在的檔案</string>
|
||||||
<string name="instant_upload_on_charging">只在充電時上傳</string>
|
<string name="instant_upload_on_charging">只在充電時上傳</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -485,7 +485,6 @@
|
||||||
<string name="image_preview_unit_megapixel">%s MP</string>
|
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||||
<string name="image_preview_unit_millimetres">%s mm</string>
|
<string name="image_preview_unit_millimetres">%s mm</string>
|
||||||
<string name="image_preview_unit_seconds">%s s</string>
|
<string name="image_preview_unit_seconds">%s s</string>
|
||||||
<string name="in_folder">在資料夾 %1$s</string>
|
|
||||||
<string name="instant_upload_existing">同時上傳既有的檔案</string>
|
<string name="instant_upload_existing">同時上傳既有的檔案</string>
|
||||||
<string name="instant_upload_on_charging">只在充電時上傳</string>
|
<string name="instant_upload_on_charging">只在充電時上傳</string>
|
||||||
<string name="instant_upload_path">/InstantUpload</string>
|
<string name="instant_upload_path">/InstantUpload</string>
|
||||||
|
|
|
@ -1075,7 +1075,6 @@
|
||||||
<string name="drawer_item_gallery">Media</string>
|
<string name="drawer_item_gallery">Media</string>
|
||||||
<string name="player_stop">stop</string>
|
<string name="player_stop">stop</string>
|
||||||
<string name="player_toggle">toggle</string>
|
<string name="player_toggle">toggle</string>
|
||||||
<string name="in_folder">in folder %1$s</string>
|
|
||||||
<string name="choose_which_file">Choose which file to keep!</string>
|
<string name="choose_which_file">Choose which file to keep!</string>
|
||||||
<string name="wrong_storage_path">Data storage folder does not exist!</string>
|
<string name="wrong_storage_path">Data storage folder does not exist!</string>
|
||||||
<string name="wrong_storage_path_desc">This might be due to a backup restore on another device. Falling back to default. Please check settings to adjust data storage folder.</string>
|
<string name="wrong_storage_path_desc">This might be due to a backup restore on another device. Falling back to default. Please check settings to adjust data storage folder.</string>
|
||||||
|
|
|
@ -293,7 +293,7 @@ class ConnectivityServiceTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `check request is not sent when server uri is not set`() {
|
fun `check cache value when server uri is not set`() {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// network connectivity is present
|
// network connectivity is present
|
||||||
// user has no server URI (empty)
|
// user has no server URI (empty)
|
||||||
|
@ -307,7 +307,7 @@ class ConnectivityServiceTest {
|
||||||
// THEN
|
// THEN
|
||||||
// connection is walled
|
// connection is walled
|
||||||
// request is not sent
|
// request is not sent
|
||||||
assertTrue("Server should not be accessible", result)
|
assertFalse("Cached value not set", result)
|
||||||
verify(requestBuilder, never()).invoke(any())
|
verify(requestBuilder, never()).invoke(any())
|
||||||
verify(getRequest, never()).execute(any<PlainClient>())
|
verify(getRequest, never()).execute(any<PlainClient>())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
DO NOT TOUCH; GENERATED BY DRONE
|
DO NOT TOUCH; GENERATED BY DRONE
|
||||||
<span class="mdl-layout-title">Lint Report: 3 errors and 61 warnings</span>
|
<span class="mdl-layout-title">Lint Report: 3 errors and 59 warnings</span>
|
||||||
|
|