Merge pull request #13517 from nextcloud/bugfix/ss-test-after-offline-folder-creation
Fix ScreenShot Tests After Offline Folder Creation Operations
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 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: 16 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.3 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
|
||||
*
|
||||
* 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
|
||||
* SPDX-FileCopyrightText: 2024 Alper Ozturk <alper.ozturk@nextcloud.com>
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
package com.nextcloud.client.jobs
|
||||
|
||||
|
@ -11,6 +10,7 @@ import android.Manifest
|
|||
import androidx.test.rule.GrantPermissionRule
|
||||
import androidx.work.WorkManager
|
||||
import com.nextcloud.client.core.ClockImpl
|
||||
import com.nextcloud.client.preferences.AppPreferences
|
||||
import com.nextcloud.client.preferences.AppPreferencesImpl
|
||||
import com.nextcloud.test.RetryTestRule
|
||||
import com.owncloud.android.AbstractIT
|
||||
|
@ -20,8 +20,9 @@ import com.owncloud.android.datamodel.OCFile
|
|||
import com.owncloud.android.operations.DownloadFileOperation
|
||||
import ezvcard.Ezvcard
|
||||
import ezvcard.VCard
|
||||
import junit.framework.Assert.assertEquals
|
||||
import junit.framework.Assert.assertTrue
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Assert.fail
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import java.io.BufferedInputStream
|
||||
|
@ -29,15 +30,15 @@ import java.io.File
|
|||
import java.io.FileInputStream
|
||||
|
||||
class ContactsBackupIT : AbstractOnServerIT() {
|
||||
val workmanager = WorkManager.getInstance(targetContext)
|
||||
val preferences = AppPreferencesImpl.fromContext(targetContext)
|
||||
private val backgroundJobManager = BackgroundJobManagerImpl(workmanager, ClockImpl(), preferences)
|
||||
private val workManager = WorkManager.getInstance(targetContext)
|
||||
private val preferences: AppPreferences = AppPreferencesImpl.fromContext(targetContext)
|
||||
private val backgroundJobManager = BackgroundJobManagerImpl(workManager, ClockImpl(), preferences)
|
||||
|
||||
@get:Rule
|
||||
val writeContactsRule = GrantPermissionRule.grant(Manifest.permission.WRITE_CONTACTS)
|
||||
val writeContactsRule: GrantPermissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_CONTACTS)
|
||||
|
||||
@get:Rule
|
||||
val readContactsRule = GrantPermissionRule.grant(Manifest.permission.READ_CONTACTS)
|
||||
val readContactsRule: GrantPermissionRule = GrantPermissionRule.grant(Manifest.permission.READ_CONTACTS)
|
||||
|
||||
@get:Rule
|
||||
val retryTestRule = RetryTestRule() // flaky test
|
||||
|
@ -46,38 +47,54 @@ class ContactsBackupIT : AbstractOnServerIT() {
|
|||
|
||||
@Test
|
||||
fun importExport() {
|
||||
val intArray = IntArray(1)
|
||||
intArray[0] = 0
|
||||
val intArray = intArrayOf(0)
|
||||
|
||||
// import file to local contacts
|
||||
backgroundJobManager.startImmediateContactsImport(null, null, getFile(vcard).absolutePath, intArray)
|
||||
|
||||
shortSleep()
|
||||
longSleep()
|
||||
|
||||
// export contact
|
||||
backgroundJobManager.startImmediateContactsBackup(user)
|
||||
|
||||
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
|
||||
|
||||
refreshFolder("/")
|
||||
longSleep()
|
||||
|
||||
refreshFolder(backupFolder)
|
||||
longSleep()
|
||||
|
||||
val backupOCFile = storageManager.getFolderContent(
|
||||
storageManager.getFileByDecryptedRemotePath(backupFolder),
|
||||
false
|
||||
)[0]
|
||||
refreshFolder(folderPath)
|
||||
longSleep()
|
||||
longSleep()
|
||||
|
||||
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 backupFileInputStream = BufferedInputStream(FileInputStream(backupFile))
|
||||
val backupFileInputStream = BufferedInputStream(FileInputStream(file))
|
||||
|
||||
// verify same
|
||||
val originalCards: ArrayList<VCard> = ArrayList()
|
||||
|
@ -87,6 +104,17 @@ class ContactsBackupIT : AbstractOnServerIT() {
|
|||
backupCards.addAll(Ezvcard.parse(backupFileInputStream).all())
|
||||
|
||||
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())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,8 +63,8 @@ public class ConflictsResolveActivityIT extends AbstractIT {
|
|||
ConflictsResolveActivity sut = activityRule.launchActivity(intent);
|
||||
|
||||
ConflictsResolveDialog dialog = ConflictsResolveDialog.newInstance(targetContext,
|
||||
existingFile,
|
||||
newFile,
|
||||
existingFile,
|
||||
UserAccountManagerImpl
|
||||
.fromContext(targetContext)
|
||||
.getUser()
|
||||
|
|
|
@ -390,6 +390,7 @@ public class DialogFragmentIT extends AbstractIT {
|
|||
|
||||
DeviceInfo info = new DeviceInfo();
|
||||
OCFile ocFile = new OCFile("/test.md");
|
||||
ocFile.setRemoteId("00000001");
|
||||
|
||||
Intent intent = new Intent(targetContext, FileDisplayActivity.class);
|
||||
FileDisplayActivity fda = activityRule.launchActivity(intent);
|
||||
|
|
|
@ -35,6 +35,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
val sut = testActivityRule.launchActivity(null)
|
||||
|
||||
OCFile("/1.png").apply {
|
||||
remoteId = "00000001"
|
||||
mimeType = "image/png"
|
||||
fileLength = 1024000
|
||||
modificationTimestamp = 1188206955000
|
||||
|
@ -43,6 +44,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/image.png").apply {
|
||||
remoteId = "00000002"
|
||||
mimeType = "image/png"
|
||||
isPreviewAvailable = false
|
||||
fileLength = 3072000
|
||||
|
@ -53,6 +55,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/live photo.png").apply {
|
||||
remoteId = "00000003"
|
||||
mimeType = "image/png"
|
||||
isPreviewAvailable = false
|
||||
fileLength = 3072000
|
||||
|
@ -63,6 +66,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/video.mp4").apply {
|
||||
remoteId = "00000004"
|
||||
mimeType = "video/mp4"
|
||||
isPreviewAvailable = false
|
||||
fileLength = 12092000
|
||||
|
@ -96,6 +100,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
val fragment = OCFileListFragment()
|
||||
|
||||
OCFile("/sharedToUser.jpg").apply {
|
||||
remoteId = "00000001"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(ShareeUser("Admin", "Server Admin", ShareType.USER))
|
||||
|
@ -104,6 +109,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedToGroup.jpg").apply {
|
||||
remoteId = "00000002"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(ShareeUser("group", "Group", ShareType.GROUP))
|
||||
|
@ -112,6 +118,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedToEmail.jpg").apply {
|
||||
remoteId = "00000003"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(ShareeUser("admin@nextcloud.localhost", "admin@nextcloud.localhost", ShareType.EMAIL))
|
||||
|
@ -120,6 +127,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/publicLink.jpg").apply {
|
||||
remoteId = "00000004"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedViaLink = true
|
||||
modificationTimestamp = 1000
|
||||
|
@ -127,6 +135,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedToFederatedUser.jpg").apply {
|
||||
remoteId = "00000005"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(
|
||||
|
@ -137,6 +146,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedToPersonalCircle.jpg").apply {
|
||||
remoteId = "00000006"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(ShareeUser("circle", "Circle (Personal circle)", ShareType.CIRCLE))
|
||||
|
@ -170,6 +180,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
// }
|
||||
|
||||
OCFile("/sharedToUserRoom.jpg").apply {
|
||||
remoteId = "00000007"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(ShareeUser("Conversation", "Admin", ShareType.ROOM))
|
||||
|
@ -178,6 +189,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedToGroupRoom.jpg").apply {
|
||||
remoteId = "00000008"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(ShareeUser("Conversation", "Meeting", ShareType.ROOM))
|
||||
|
@ -186,6 +198,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedToUsers.jpg").apply {
|
||||
remoteId = "00000009"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
isSharedWithSharee = true
|
||||
sharees = listOf(
|
||||
|
@ -198,6 +211,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/notShared.jpg").apply {
|
||||
remoteId = "000000010"
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
modificationTimestamp = 1000
|
||||
sut.storageManager.saveFile(this)
|
||||
|
@ -232,6 +246,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
val fragment = OCFileListFragment()
|
||||
|
||||
OCFile("/normal/").apply {
|
||||
remoteId = "00000001"
|
||||
mimeType = MimeType.DIRECTORY
|
||||
modificationTimestamp = 1624003571000
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
|
@ -239,6 +254,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/sharedViaLink/").apply {
|
||||
remoteId = "00000002"
|
||||
mimeType = MimeType.DIRECTORY
|
||||
isSharedViaLink = true
|
||||
modificationTimestamp = 1619003571000
|
||||
|
@ -247,6 +263,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/share/").apply {
|
||||
remoteId = "00000003"
|
||||
mimeType = MimeType.DIRECTORY
|
||||
isSharedWithSharee = true
|
||||
modificationTimestamp = 1619303571000
|
||||
|
@ -255,6 +272,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/groupFolder/").apply {
|
||||
remoteId = "00000004"
|
||||
mimeType = MimeType.DIRECTORY
|
||||
modificationTimestamp = 1615003571000
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId
|
||||
|
@ -263,6 +281,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/encrypted/").apply {
|
||||
remoteId = "00000005"
|
||||
mimeType = MimeType.DIRECTORY
|
||||
isEncrypted = true
|
||||
decryptedRemotePath = "/encrypted/"
|
||||
|
@ -272,6 +291,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
}
|
||||
|
||||
OCFile("/locked/").apply {
|
||||
remoteId = "00000006"
|
||||
mimeType = MimeType.DIRECTORY
|
||||
isLocked = true
|
||||
decryptedRemotePath = "/locked/"
|
||||
|
@ -310,12 +330,15 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
folder.setFolder()
|
||||
sut.storageManager.saveFile(folder)
|
||||
|
||||
val imageFile = OCFile("/test/image.png")
|
||||
imageFile.mimeType = "image/png"
|
||||
imageFile.fileLength = 1024000
|
||||
imageFile.modificationTimestamp = 1188206955000
|
||||
imageFile.parentId = sut.storageManager.getFileByEncryptedRemotePath("/test/").fileId
|
||||
imageFile.storagePath = getFile("java.md").absolutePath
|
||||
val imageFile = OCFile("/test/image.png").apply {
|
||||
remoteId = "00000001"
|
||||
mimeType = "image/png"
|
||||
fileLength = 1024000
|
||||
modificationTimestamp = 1188206955000
|
||||
parentId = sut.storageManager.getFileByEncryptedRemotePath("/test/").fileId
|
||||
storagePath = getFile("java.md").absolutePath
|
||||
}
|
||||
|
||||
sut.storageManager.saveFile(imageFile)
|
||||
|
||||
sut.addFragment(fragment)
|
||||
|
@ -334,8 +357,11 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
val activity = testActivityRule.launchActivity(null)
|
||||
val sut = OCFileListFragment()
|
||||
|
||||
val folder = OCFile("/test/")
|
||||
folder.setFolder()
|
||||
val folder = OCFile("/test/").apply {
|
||||
remoteId = "000001"
|
||||
setFolder()
|
||||
}
|
||||
|
||||
activity.storageManager.saveFile(folder)
|
||||
|
||||
activity.addFragment(sut)
|
||||
|
@ -357,7 +383,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
|
|||
|
||||
testFolder.richWorkspace = "1"
|
||||
activity.storageManager.saveFile(testFolder)
|
||||
sut.adapter.setCurrentDirectory(testFolder)
|
||||
sut.adapter.currentDirectory = testFolder
|
||||
Assert.assertTrue(sut.adapter.shouldShowHeader())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.nextcloud.client.jobs.transfer.TransferManager
|
|||
import com.owncloud.android.R
|
||||
import com.owncloud.android.datamodel.OCFile
|
||||
import com.owncloud.android.db.OCUpload
|
||||
import java.util.Locale
|
||||
|
||||
class EtmFileTransferFragment : EtmBaseFragment() {
|
||||
|
||||
|
@ -96,7 +97,7 @@ class EtmFileTransferFragment : EtmBaseFragment() {
|
|||
vh.state.text = transfer.state.toString()
|
||||
if (transfer.progress >= 0) {
|
||||
vh.progressEnabled = true
|
||||
vh.progress.text = transfer.progress.toString()
|
||||
vh.progress.text = String.format(Locale.getDefault(), "%d", transfer.progress)
|
||||
} else {
|
||||
vh.progressEnabled = false
|
||||
}
|
||||
|
|
|
@ -777,7 +777,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
}
|
||||
|
||||
public boolean isRootDirectory() {
|
||||
return decryptedRemotePath.equals(ROOT_PATH);
|
||||
return ROOT_PATH.equals(decryptedRemotePath);
|
||||
}
|
||||
|
||||
public boolean isOfflineOperation() {
|
||||
|
|
|
@ -109,8 +109,6 @@ public class UploadFilesActivity extends DrawerActivity implements LocalFileList
|
|||
private UploadFilesLayoutBinding binding;
|
||||
private boolean isWithinEncryptedFolder = false;
|
||||
|
||||
|
||||
@VisibleForTesting
|
||||
public LocalFileListFragment getFileListFragment() {
|
||||
return mFileListFragment;
|
||||
}
|
||||
|
|
|
@ -151,21 +151,21 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
|||
.setNegativeButton(R.string.common_cancel) { _: DialogInterface?, _: Int ->
|
||||
listener?.conflictDecisionMade(Decision.CANCEL)
|
||||
}
|
||||
.setTitle(data?.folderName)
|
||||
.setTitle(data?.dialogTitle)
|
||||
}
|
||||
|
||||
private fun okButtonClick() {
|
||||
binding.run {
|
||||
val isFolderNameNotExists = (data?.folderName == null)
|
||||
val isDialogTitleNotExists = (data?.dialogTitle == null)
|
||||
val decision = when {
|
||||
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 ->
|
||||
if (isFolderNameNotExists) Decision.KEEP_OFFLINE_FOLDER else Decision.KEEP_LOCAL
|
||||
if (isDialogTitleNotExists) Decision.KEEP_OFFLINE_FOLDER else Decision.KEEP_LOCAL
|
||||
|
||||
rightCheckbox.isChecked ->
|
||||
if (isFolderNameNotExists) Decision.KEEP_SERVER_FOLDER else Decision.KEEP_SERVER
|
||||
if (isDialogTitleNotExists) Decision.KEEP_SERVER_FOLDER else Decision.KEEP_SERVER
|
||||
|
||||
else -> null
|
||||
}
|
||||
|
@ -179,19 +179,12 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
|||
data?.let {
|
||||
val (leftData, rightData) = it.checkboxData
|
||||
|
||||
folderName.visibility = if (it.folderName == null) {
|
||||
headline.visibility = if (it.headline == null) {
|
||||
View.GONE
|
||||
} else {
|
||||
View.VISIBLE
|
||||
}
|
||||
folderName.text = it.folderName
|
||||
|
||||
title.visibility = if (it.title == null) {
|
||||
View.GONE
|
||||
} else {
|
||||
View.VISIBLE
|
||||
}
|
||||
title.text = it.title
|
||||
headline.text = it.headline
|
||||
|
||||
description.text = it.description
|
||||
|
||||
|
@ -340,8 +333,6 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
|||
rightFile: OCFile,
|
||||
context: Context
|
||||
): ConflictDialogData {
|
||||
val folderName = null
|
||||
|
||||
val leftTitle = context.getString(R.string.prefs_synced_folders_local_path_title)
|
||||
val leftTimestamp =
|
||||
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 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
|
||||
private fun getFileConflictData(file: File, rightFile: OCFile, context: Context): ConflictDialogData {
|
||||
val parentFile = File(rightFile.remotePath).parentFile
|
||||
val folderName = if (parentFile != null) {
|
||||
String.format(context.getString(R.string.in_folder), parentFile.absolutePath)
|
||||
} else {
|
||||
null
|
||||
}
|
||||
private fun getFileConflictData(leftFile: File, rightFile: OCFile, context: Context): ConflictDialogData {
|
||||
// TODO Path needs to be set it correctly for encrypted folders
|
||||
val title = rightFile.decryptedRemotePath
|
||||
|
||||
val leftTitle = context.getString(R.string.conflict_local_file)
|
||||
val leftTimestamp = DisplayUtils.getRelativeTimestamp(context, file.lastModified())
|
||||
val leftFileSize = DisplayUtils.bytesToHumanReadable(file.length())
|
||||
val leftTimestamp = DisplayUtils.getRelativeTimestamp(context, leftFile.lastModified())
|
||||
val leftFileSize = DisplayUtils.bytesToHumanReadable(leftFile.length())
|
||||
val leftCheckBoxData = ConflictFileData(leftTitle, leftTimestamp.toString(), leftFileSize)
|
||||
|
||||
val rightTitle = context.getString(R.string.conflict_server_file)
|
||||
|
@ -377,9 +364,9 @@ class ConflictsResolveDialog : DialogFragment(), Injectable {
|
|||
val rightFileSize = DisplayUtils.bytesToHumanReadable(rightFile.fileLength)
|
||||
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)
|
||||
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
|
||||
|
||||
data class ConflictDialogData(
|
||||
val folderName: String?,
|
||||
val title: String?,
|
||||
val dialogTitle: String?,
|
||||
val headline: String?,
|
||||
val description: String,
|
||||
val checkboxData: Pair<ConflictFileData, ConflictFileData>
|
||||
) : Parcelable {
|
||||
|
@ -28,8 +28,8 @@ data class ConflictDialogData(
|
|||
)
|
||||
|
||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||
parcel.writeString(folderName)
|
||||
parcel.writeString(title)
|
||||
parcel.writeString(dialogTitle)
|
||||
parcel.writeString(headline)
|
||||
parcel.writeString(description)
|
||||
parcel.writeParcelable(checkboxData.first, flags)
|
||||
parcel.writeParcelable(checkboxData.second, flags)
|
||||
|
|
|
@ -212,6 +212,8 @@ public class OCFileListBottomSheetDialog extends BottomSheetDialog implements In
|
|||
}
|
||||
|
||||
private void filterActionsForOfflineOperations() {
|
||||
if (file == null) return;
|
||||
|
||||
if (!file.isOfflineOperation() || file.isRootDirectory()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -17,14 +17,7 @@
|
|||
android:paddingBottom="@dimen/standard_padding">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/folder_name"
|
||||
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:id="@+id/headline"
|
||||
android:layout_marginTop="@dimen/standard_margin"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -485,7 +485,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s ميغا بكسل</string>
|
||||
<string name="image_preview_unit_millimetres">%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_on_charging">ارفع وقت الشحن فقط</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_millimetres">%s mm</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_path">/XubidaNelIntre</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_millimetres">%s mm</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_on_charging">Only upload when charging</string>
|
||||
<string name="instant_upload_path">/InstantUpload</string>
|
||||
|
|
|
@ -405,7 +405,6 @@
|
|||
<string name="icon_for_empty_list">Икона за празен списък</string>
|
||||
<string name="icon_of_dashboard_widget">Икона на изпълним модул на табло за управление</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_on_charging">Качване само при зареждане</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_of_dashboard_widget">Icona del giny del tauler</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_on_charging">Pujada només durant la càrrega de bateria</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_millimetres">%s mm</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_on_charging">Nahrávat pouze při nabíjení</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_millimetres">%s mm</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_on_charging">Upload kun under opladning</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_millimetres">%s mm</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_on_charging">Nur während des Ladens der Batterie hochladen</string>
|
||||
<string name="instant_upload_path">/SofortUpload</string>
|
||||
|
|
|
@ -411,7 +411,6 @@
|
|||
<string name="icon_of_widget_entry">Εικονίδιο κενού γραφικού στοιχείου</string>
|
||||
<string name="image_editor_flip_horizontal">Οριζόντια περιστροφή</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_on_charging">Μεταφόρτωση μόνο κατά τη διάρκεια φόρτισης</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_millimetres">%s mm</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_on_charging">Cargar archivos sólo con el dispositivo conectado a la toma de corriente</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_cw">Girar en sentido horario</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_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>
|
||||
|
|
|
@ -469,7 +469,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||
<string name="image_preview_unit_millimetres">%s mm</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_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>
|
||||
|
|
|
@ -466,7 +466,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||
<string name="image_preview_unit_millimetres">%s mm</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_on_charging">Subir solo al cargar batería</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_millimetres">%s mm</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_on_charging">Igo bakarrik gailua kargatzean</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_millimetres">%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_on_charging">فقط هنگامی که گوشی شارژ می شود آپلود کنید</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_millimetres">%s mm</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_on_charging">Lähetä vain ladattaessa virtaa</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_millimetres">%s mm</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_on_charging">Téléverser uniquement lors de la recharge</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_millimetres">%s mm</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_on_charging">Íoslódáil ach amháin nuair a mhuirearú</string>
|
||||
<string name="instant_upload_path">/Uaslódáil Meandaracha</string>
|
||||
|
|
|
@ -344,7 +344,6 @@
|
|||
<string name="hint_password">Facal-faire</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="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_on_charging">Na luchdaich suas ach nuair a bhios an t-uidheam ’ga theàirrdseadh</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_millimetres">%s mm</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_on_charging">Enviar só cando estea cargando</string>
|
||||
<string name="instant_upload_path">/EnvíoInstantáneo</string>
|
||||
|
|
|
@ -382,7 +382,6 @@
|
|||
<string name="hint_password">Zaporka</string>
|
||||
<string name="host_not_available">Poslužitelj nije dostupan</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_on_charging">Otpremanje samo tijekom punjenja</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_millimetres">%s mm</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_on_charging">Feltöltés csak töltés közben</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_preview_filedetails">Detail berkas</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_on_charging">Hanya unggah ketika dicas</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_millimetres">%s mm</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_on_charging">Einungis senda inn þegar verið er að hlaða</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_millimetres">%s mm</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_on_charging">Carica solo durante la ricarica</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_millimetres">%s mm</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_on_charging">充電中のみアップロード</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_millimetres">%s mm</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_on_charging">Only upload when charging</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_millimetres">%s mm</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_on_charging">충전 중에만 업로드</string>
|
||||
<string name="instant_upload_path">/InstantUpload</string>
|
||||
|
|
|
@ -347,7 +347,6 @@
|
|||
<string name="hint_password">ລະຫັດຜ່ານ</string>
|
||||
<string name="host_not_available">ເຊີເວີບໍ່ວ່າງ</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_on_charging">ພຽງແຕ່ອັບໂຫຼດເທົ່ານັ້ນ</string>
|
||||
<string name="instant_upload_path">/ອັບໂຫຼດທັນທີ</string>
|
||||
|
|
|
@ -376,7 +376,6 @@
|
|||
<string name="hint_password">Slaptažodis</string>
|
||||
<string name="host_not_available">Serveris neprieinamas</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_on_charging">Įkelti failus tik kai kraunasi</string>
|
||||
<string name="instant_upload_path">/InstantUpload</string>
|
||||
|
|
|
@ -358,7 +358,6 @@
|
|||
<string name="hint_password">Лозинка</string>
|
||||
<string name="host_not_available">Серверот не е достапен</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_on_charging">Прикачувај само додека се полни</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_millimetres">%s mm</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_on_charging">Bare last opp under lading</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_millimetres">%s mm</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_on_charging">Alleen uploaden bij opladen</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_millimetres">%s mm</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_on_charging">Wysyłaj tylko podczas ładowania</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_millimetres">%s mm</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_on_charging">Só enviar quando carregando</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_millimetres">%s mm</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_on_charging">Carregar ficheiros apenas quando o carregador está ligado</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_millimetres">%s mm</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_on_charging">Se încarcă numai în timpul alimentării cu curent</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_millimetres">%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_on_charging">Только во время зарядки</string>
|
||||
<string name="instant_upload_path">/Автозагрузка</string>
|
||||
|
|
|
@ -362,7 +362,6 @@
|
|||
<string name="hint_password">Crae</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="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_on_charging">Càrriga isceti cando est carrighende sa bateria</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_millimetres">%s mm</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_on_charging">Nahrať iba počas nabíjania</string>
|
||||
<string name="instant_upload_path">/InstantUpload</string>
|
||||
|
|
|
@ -427,7 +427,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||
<string name="image_preview_unit_millimetres">%s mm</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_on_charging">Usklajuj le med polnjenjem naprave</string>
|
||||
<string name="instant_upload_path">/Hipno nalaganje</string>
|
||||
|
|
|
@ -471,7 +471,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||
<string name="image_preview_unit_millimetres">%s mm</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_on_charging">Отпремај само на пуњењу</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_millimetres">%s mm</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_on_charging">Ladda enbart upp när enheten laddas</string>
|
||||
<string name="instant_upload_path">/AutomatiskUppladdning</string>
|
||||
|
|
|
@ -361,7 +361,6 @@
|
|||
<string name="image_editor_rotate_ccw">หมุนทวนเข็มนาฬิกา</string>
|
||||
<string name="image_editor_rotate_cw">หมุนตามเข็มนาฬิกา</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_on_charging">อัปโหลดขณะชาร์จเท่านั้น</string>
|
||||
<string name="instant_upload_path">/อัพโหลดทันที</string>
|
||||
|
|
|
@ -338,7 +338,6 @@
|
|||
<string name="hint_password">Açarsöz</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="in_folder">%1$s bukjada</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_path">/ Çaltýüklemek</string>
|
||||
|
|
|
@ -485,7 +485,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||
<string name="image_preview_unit_millimetres">%s mm</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_on_charging">Yalnızca şarj edilirken yüklensin</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_unit_millimetres">%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_on_charging">Завантаження тільки під час заряджання</string>
|
||||
<string name="internal_two_way_sync">Внутрішня двостороння синхронізація</string>
|
||||
|
|
|
@ -387,7 +387,6 @@
|
|||
<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_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_on_charging">Chỉ tải lên khi đang sạc pin</string>
|
||||
<string name="instant_upload_path">/Upload tức thì</string>
|
||||
|
|
|
@ -459,7 +459,6 @@
|
|||
<string name="image_preview_unit_megapixel">%s MP</string>
|
||||
<string name="image_preview_unit_millimetres">%s mm</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_on_charging">仅在充电时上传</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_millimetres">%s mm</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_on_charging">只在充電時上傳</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_millimetres">%s mm</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_on_charging">只在充電時上傳</string>
|
||||
<string name="instant_upload_path">/InstantUpload</string>
|
||||
|
|
|
@ -1075,7 +1075,6 @@
|
|||
<string name="drawer_item_gallery">Media</string>
|
||||
<string name="player_stop">stop</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="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>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
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>
|
||||
|
|