mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
fix: rename files asynchronously (#1439)
This commit is contained in:
@@ -27,11 +27,14 @@ import com.itsaky.androidide.adapters.viewholders.FileTreeViewHolder
|
||||
import com.itsaky.androidide.eventbus.events.file.FileRenameEvent
|
||||
import com.itsaky.androidide.preferences.databinding.LayoutDialogTextInputBinding
|
||||
import com.itsaky.androidide.projects.FileManager
|
||||
import com.itsaky.androidide.tasks.launchAsyncWithProgress
|
||||
import com.itsaky.androidide.utils.DialogUtils
|
||||
import com.itsaky.androidide.utils.FlashType
|
||||
import com.itsaky.androidide.utils.flashMessage
|
||||
import com.unnamed.b.atv.model.TreeNode
|
||||
import java.io.File
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
@@ -65,29 +68,39 @@ class RenameAction(context: Context, override val order: Int) :
|
||||
dialogInterface,
|
||||
_ ->
|
||||
dialogInterface.dismiss()
|
||||
val name: String = binding.name.editText!!.text.toString().trim()
|
||||
val renamed = name.length in 1..40 && FileUtils.rename(file, name)
|
||||
flashMessage(
|
||||
if (renamed) com.itsaky.androidide.resources.R.string.renamed
|
||||
else com.itsaky.androidide.resources.R.string.rename_failed,
|
||||
if (renamed) FlashType.SUCCESS else FlashType.ERROR
|
||||
)
|
||||
if (!renamed) {
|
||||
return@setPositiveButton
|
||||
}
|
||||
actionScope.launchAsyncWithProgress(
|
||||
configureFlashbar = { builder, cancelChecker ->
|
||||
builder.message(com.itsaky.androidide.resources.R.string.please_wait)
|
||||
},
|
||||
action = { _, _ ->
|
||||
val name: String = binding.name.editText!!.text.toString().trim()
|
||||
val renamed = name.length in 1..40 && FileUtils.rename(file, name)
|
||||
|
||||
notifyFileRenamed(file, name, context)
|
||||
if (renamed) {
|
||||
notifyFileRenamed(file, name, context)
|
||||
}
|
||||
|
||||
if (lastHeld != null) {
|
||||
val parent = lastHeld.parent
|
||||
parent.deleteChild(lastHeld)
|
||||
val node = TreeNode(File(file.parentFile, name))
|
||||
node.viewHolder = FileTreeViewHolder(context)
|
||||
parent.addChild(node)
|
||||
requestExpandNode(parent)
|
||||
} else {
|
||||
requestFileListing()
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
flashMessage(
|
||||
if (renamed) com.itsaky.androidide.resources.R.string.renamed
|
||||
else com.itsaky.androidide.resources.R.string.rename_failed,
|
||||
if (renamed) FlashType.SUCCESS else FlashType.ERROR)
|
||||
if (!renamed) {
|
||||
return@withContext
|
||||
}
|
||||
|
||||
if (lastHeld != null) {
|
||||
val parent = lastHeld.parent
|
||||
parent.deleteChild(lastHeld)
|
||||
val node = TreeNode(File(file.parentFile, name))
|
||||
node.viewHolder = FileTreeViewHolder(context)
|
||||
parent.addChild(node)
|
||||
requestExpandNode(parent)
|
||||
} else {
|
||||
requestFileListing()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
builder.create().show()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user