mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
allow brackets at filenames
This commit is contained in:
@ -30,7 +30,7 @@ class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun isNameValid(name: String): Boolean {
|
fun isNameValid(name: String): Boolean {
|
||||||
val pattern = Pattern.compile("^[-_.A-Za-z0-9 ]+$")
|
val pattern = Pattern.compile("^[-_.A-Za-z0-9() ]+$")
|
||||||
val matcher = pattern.matcher(name)
|
val matcher = pattern.matcher(name)
|
||||||
return matcher.matches()
|
return matcher.matches()
|
||||||
}
|
}
|
||||||
|
@ -165,7 +165,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
|||||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||||
private fun saveTreeUri(resultData: Intent) {
|
private fun saveTreeUri(resultData: Intent) {
|
||||||
val treeUri = resultData.data
|
val treeUri = resultData.data
|
||||||
mConfig.treeUri = resultData.data.toString()
|
mConfig.treeUri = treeUri.toString()
|
||||||
|
|
||||||
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
||||||
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
|
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
|
||||||
|
@ -20,14 +20,14 @@ import kotlinx.android.synthetic.main.copy_item.view.*
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class CopyDialog(val activity: Activity, val files: List<File>, val path: String, val copyListener: CopyTask.CopyListener, val listener: OnCopyListener) {
|
class CopyDialog(val activity: Activity, val files: List<File>, val path: String, val copyListener: CopyTask.CopyListener, val listener: OnCopyListener) {
|
||||||
val mContext = activity
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val view = LayoutInflater.from(mContext).inflate(R.layout.copy_item, null)
|
val context = activity
|
||||||
|
val view = LayoutInflater.from(context).inflate(R.layout.copy_item, null)
|
||||||
view.source.text = "${path.trimEnd('/')}/"
|
view.source.text = "${path.trimEnd('/')}/"
|
||||||
|
|
||||||
view.destination.setOnClickListener {
|
view.destination.setOnClickListener {
|
||||||
val config = Config.newInstance(mContext)
|
val config = Config.newInstance(context)
|
||||||
FilePickerDialog(activity, path, false, config.showHidden, object : FilePickerDialog.OnFilePickerListener {
|
FilePickerDialog(activity, path, false, config.showHidden, object : FilePickerDialog.OnFilePickerListener {
|
||||||
override fun onFail(error: FilePickerDialog.FilePickerResult) {
|
override fun onFail(error: FilePickerDialog.FilePickerResult) {
|
||||||
}
|
}
|
||||||
@ -38,8 +38,8 @@ class CopyDialog(val activity: Activity, val files: List<File>, val path: String
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog.Builder(mContext)
|
AlertDialog.Builder(context)
|
||||||
.setTitle(mContext.resources.getString(if (files.size == 1) R.string.copy_item else R.string.copy_items))
|
.setTitle(context.resources.getString(if (files.size == 1) R.string.copy_item else R.string.copy_items))
|
||||||
.setView(view)
|
.setView(view)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
@ -73,7 +73,7 @@ class CopyDialog(val activity: Activity, val files: List<File>, val path: String
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Utils.needsStupidWritePermissions(context, destinationPath) && Config.newInstance(context).treeUri.isEmpty()) {
|
if (Utils.needsStupidWritePermissions(context, destinationPath) && Config.newInstance(context).treeUri.isEmpty()) {
|
||||||
WritePermissionDialog(activity, object: WritePermissionDialog.OnWritePermissionListener {
|
WritePermissionDialog(activity, object : WritePermissionDialog.OnWritePermissionListener {
|
||||||
override fun onConfirmed() {
|
override fun onConfirmed() {
|
||||||
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
||||||
activity.startActivityForResult(intent, MainActivity.OPEN_DOCUMENT_TREE)
|
activity.startActivityForResult(intent, MainActivity.OPEN_DOCUMENT_TREE)
|
||||||
@ -85,7 +85,7 @@ class CopyDialog(val activity: Activity, val files: List<File>, val path: String
|
|||||||
if (view.dialog_radio_group.checkedRadioButtonId == R.id.dialog_radio_copy) {
|
if (view.dialog_radio_group.checkedRadioButtonId == R.id.dialog_radio_copy) {
|
||||||
context.toast(R.string.copying)
|
context.toast(R.string.copying)
|
||||||
val pair = Pair<List<File>, File>(files, destinationDir)
|
val pair = Pair<List<File>, File>(files, destinationDir)
|
||||||
CopyTask(copyListener, mContext).execute(pair)
|
CopyTask(copyListener, context).execute(pair)
|
||||||
dismiss()
|
dismiss()
|
||||||
} else {
|
} else {
|
||||||
if (Utils.isPathOnSD(context, view.source.value) && Utils.isPathOnSD(context, destinationPath)) {
|
if (Utils.isPathOnSD(context, view.source.value) && Utils.isPathOnSD(context, destinationPath)) {
|
||||||
@ -100,7 +100,7 @@ class CopyDialog(val activity: Activity, val files: List<File>, val path: String
|
|||||||
} else {
|
} else {
|
||||||
context.toast(R.string.copying_no_delete, Toast.LENGTH_LONG)
|
context.toast(R.string.copying_no_delete, Toast.LENGTH_LONG)
|
||||||
val pair = Pair<List<File>, File>(files, destinationDir)
|
val pair = Pair<List<File>, File>(files, destinationDir)
|
||||||
CopyTask(copyListener, mContext).execute(pair)
|
CopyTask(copyListener, context).execute(pair)
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user