Skip to content

Commit 5835e58

Browse files
Merge pull request #16928 from nextcloud/fix/filename-text-watcher-existing-file-names-provider-npe
fix(filename text watcher): existing file names provider npe
2 parents 6ec3e0b + 51a52f0 commit 5835e58

5 files changed

Lines changed: 12 additions & 14 deletions

File tree

app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameTextWatcher.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,12 @@ import com.nextcloud.utils.fileNameValidator.FileNameValidator.isFileHidden
1717
import com.owncloud.android.R
1818
import com.owncloud.android.lib.resources.status.OCCapability
1919

20-
/**
21-
* A TextWatcher which wraps around [FileNameValidator]
22-
*/
2320
@Suppress("LongParameterList")
2421
class FileNameTextWatcher(
2522
private val previousFileName: String?,
2623
private val context: Context,
2724
private val capabilitiesProvider: () -> OCCapability,
28-
private val existingFileNamesProvider: () -> Set<String>?,
25+
private val existingFileNamesProvider: () -> Set<String>,
2926
private val onValidationError: Consumer<String>,
3027
private val onValidationWarning: Consumer<String>,
3128
private val onValidationSuccess: Runnable

app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,14 @@ object FileNameValidator {
3838
filename: String,
3939
capability: OCCapability,
4040
context: Context,
41-
existingFileNames: Set<String>? = null
41+
existingFileNames: Set<String> = setOf()
4242
): String? {
4343
if (filename.isBlank()) {
4444
return context.getString(R.string.filename_empty)
4545
}
4646

47-
existingFileNames?.let {
48-
if (isFileNameAlreadyExist(filename, existingFileNames)) {
49-
return context.getString(R.string.file_already_exists)
50-
}
47+
if (isFileNameAlreadyExist(filename, existingFileNames)) {
48+
return context.getString(R.string.file_already_exists)
5149
}
5250

5351
if (!capability.checkWCFRestrictions()) {

app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
import java.util.ArrayList;
100100
import java.util.Arrays;
101101
import java.util.Calendar;
102+
import java.util.Collections;
102103
import java.util.List;
103104
import java.util.Objects;
104105
import java.util.Stack;
@@ -909,7 +910,9 @@ private FileNameTextWatcher getFileNameTextWatcher(OCCapability capability, Stri
909910
fileName,
910911
this,
911912
() -> capability,
912-
() -> receiveExternalFilesAdapter.getFileNames(),
913+
() -> receiveExternalFilesAdapter != null
914+
? receiveExternalFilesAdapter.getFileNames()
915+
: Collections.emptySet(),
913916
validationError -> {
914917
binding.userInputContainer.setError(validationError);
915918
binding.uploaderChooseFolder.setEnabled(false);

app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ class ChooseRichDocumentsTemplateDialogFragment :
251251
name,
252252
fileDataStorageManager.getCapability(currentAccount.user),
253253
requireContext(),
254-
fileNames
254+
fileNames ?: setOf()
255255
)
256256

257257
if (selectedTemplate == null) {
@@ -301,7 +301,7 @@ class ChooseRichDocumentsTemplateDialogFragment :
301301
name,
302302
fileDataStorageManager.getCapability(currentAccount.user),
303303
requireContext(),
304-
fileNames
304+
fileNames ?: setOf()
305305
)
306306
val isExtension = (
307307
selectedTemplate == null ||

app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class RenameFileDialogFragment :
100100
previousFileName = mTargetFile?.fileName,
101101
context = binding.userInputContainer.context,
102102
capabilitiesProvider = { oCCapability },
103-
existingFileNamesProvider = { fileNames },
103+
existingFileNamesProvider = { fileNames ?: setOf() },
104104
onValidationError = { validationError: String ->
105105
binding.userInputContainer.error = validationError
106106
positiveButton?.isEnabled = false
@@ -162,7 +162,7 @@ class RenameFileDialogFragment :
162162
newFileName = binding.userInput.text.toString()
163163
}
164164

165-
val errorMessage = checkFileName(newFileName, oCCapability, requireContext(), null)
165+
val errorMessage = checkFileName(newFileName, oCCapability, requireContext())
166166
if (errorMessage != null) {
167167
DisplayUtils.showSnackMessage(requireActivity(), errorMessage)
168168
return

0 commit comments

Comments
 (0)