Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ import com.itsaky.androidide.actions.ActionData
import com.itsaky.androidide.actions.requireFile
import com.itsaky.androidide.eventbus.events.file.FileDeletionEvent
import com.itsaky.androidide.idetooltips.TooltipTag
import com.itsaky.androidide.idetooltips.attachTooltip
import com.itsaky.androidide.projects.FileManager
import com.itsaky.androidide.resources.R
import com.itsaky.androidide.tasks.executeAsync
import com.itsaky.androidide.utils.DialogUtils
import com.itsaky.androidide.utils.FileUtils
import com.itsaky.androidide.utils.FlashType
import com.itsaky.androidide.utils.flashMessage
import com.itsaky.androidide.utils.showWithLongPressTooltip
import org.greenrobot.eventbus.EventBus
import java.io.File

Expand Down Expand Up @@ -95,10 +95,9 @@ class DeleteAction(
String.format("%s [%s]", file.name, file.absolutePath),
),
).setCancelable(false)
.showWithLongPressTooltip(
context = context,
tooltipTag = TooltipTag.PROJECT_CONFIRM_DELETE,
)
.create()
.attachTooltip(TooltipTag.PROJECT_CONFIRM_DELETE)
.show()
}

private fun notifyFileDeleted(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import com.itsaky.androidide.actions.requireFile
import com.itsaky.androidide.databinding.LayoutCreateFileJavaBinding
import com.itsaky.androidide.eventbus.events.file.FileCreationEvent
import com.itsaky.androidide.idetooltips.TooltipTag
import com.itsaky.androidide.idetooltips.attachTooltip
import com.itsaky.androidide.preferences.databinding.LayoutDialogTextInputBinding
import com.itsaky.androidide.projects.IProjectManager
import com.itsaky.androidide.projects.ProjectManagerImpl
Expand All @@ -40,7 +41,6 @@ import com.itsaky.androidide.utils.ProjectWriter
import com.itsaky.androidide.utils.SingleTextWatcher
import com.itsaky.androidide.utils.flashError
import com.itsaky.androidide.utils.flashSuccess
import com.itsaky.androidide.utils.showWithLongPressTooltip
import com.unnamed.b.atv.model.TreeNode
import jdkx.lang.model.SourceVersion
import kotlinx.coroutines.CancellationException
Expand Down Expand Up @@ -204,10 +204,9 @@ class NewFileAction(
builder.setNegativeButton(android.R.string.cancel, null)
builder
.setCancelable(false)
.showWithLongPressTooltip(
context = context,
tooltipTag = TooltipTag.PROJECT_FOLDER_NEWTYPE,
)
.create()
.attachTooltip(TooltipTag.PROJECT_FOLDER_NEWTYPE)
.show()
}

private fun doCreateSourceFile(
Expand Down Expand Up @@ -401,10 +400,9 @@ class NewFileAction(
2 -> createMenuRes(context, node, File(file, "menu"))
3 -> createNewFile(context, node, file, true)
}
}.showWithLongPressTooltip(
context = context,
tooltipTag = TooltipTag.PROJECT_FOLDER_NEWXML,
)
}.create()
.attachTooltip(TooltipTag.PROJECT_FOLDER_NEWXML)
.show()
}

private fun createNewEmptyFile(
Expand Down Expand Up @@ -469,10 +467,9 @@ class NewFileAction(
}
builder
.setNegativeButton(android.R.string.cancel, null)
.showWithLongPressTooltip(
context = context,
tooltipTag = TooltipTag.PROJECT_NEWFILE_DIALOG,
)
.create()
.attachTooltip(TooltipTag.PROJECT_NEWFILE_DIALOG)
.show()
}

private fun createFile(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ import com.itsaky.androidide.actions.ActionData
import com.itsaky.androidide.actions.requireFile
import com.itsaky.androidide.adapters.viewholders.FileTreeViewHolder
import com.itsaky.androidide.idetooltips.TooltipTag
import com.itsaky.androidide.idetooltips.attachTooltip
import com.itsaky.androidide.preferences.databinding.LayoutDialogTextInputBinding
import com.itsaky.androidide.resources.R
import com.itsaky.androidide.utils.DialogUtils
import com.itsaky.androidide.utils.flashError
import com.itsaky.androidide.utils.flashSuccess
import com.itsaky.androidide.utils.showWithLongPressTooltip
import com.unnamed.b.atv.model.TreeNode
import java.io.File

Expand All @@ -37,60 +37,64 @@ import java.io.File
*
* @author Akash Yadav
*/
class NewFolderAction(context: Context, override val order: Int) :
BaseDirNodeAction(
context = context,
labelRes = R.string.new_folder,
iconRes = R.drawable.ic_new_folder
) {
class NewFolderAction(
context: Context,
override val order: Int,
) : BaseDirNodeAction(
context = context,
labelRes = R.string.new_folder,
iconRes = R.drawable.ic_new_folder,
) {
override val id: String = "ide.editor.fileTree.newFolder"

override val id: String = "ide.editor.fileTree.newFolder"
override fun retrieveTooltipTag(isAlternateContext: Boolean): String = TooltipTag.PROJECT_FOLDER_NEW_FOLDER

override fun retrieveTooltipTag(isAlternateContext: Boolean): String =
TooltipTag.PROJECT_FOLDER_NEW_FOLDER
override suspend fun execAction(data: ActionData) {
val context = data.requireActivity()
val currentDir = data.requireFile()
val lastHeld = data.getTreeNode()
val binding = LayoutDialogTextInputBinding.inflate(LayoutInflater.from(context))
val builder = DialogUtils.newMaterialDialogBuilder(context)
binding.name.editText!!.setHint(R.string.folder_name)
builder.setTitle(R.string.new_folder)
builder.setMessage(R.string.msg_can_contain_slashes)
builder.setView(binding.root)
builder.setCancelable(false)
builder.setPositiveButton(R.string.text_create) { dialogInterface, _ ->
dialogInterface.dismiss()
val name: String =
binding.name.editText!!
.text
.toString()
.trim()
if (name.length !in 1..40 || name.startsWith("/")) {
flashError(R.string.msg_invalid_name)
return@setPositiveButton
}

override suspend fun execAction(data: ActionData) {
val context = data.requireActivity()
val currentDir = data.requireFile()
val lastHeld = data.getTreeNode()
val binding = LayoutDialogTextInputBinding.inflate(LayoutInflater.from(context))
val builder = DialogUtils.newMaterialDialogBuilder(context)
binding.name.editText!!.setHint(R.string.folder_name)
builder.setTitle(R.string.new_folder)
builder.setMessage(R.string.msg_can_contain_slashes)
builder.setView(binding.root)
builder.setCancelable(false)
builder.setPositiveButton(R.string.text_create) { dialogInterface, _ ->
dialogInterface.dismiss()
val name: String = binding.name.editText!!.text.toString().trim()
if (name.length !in 1..40 || name.startsWith("/")) {
flashError(R.string.msg_invalid_name)
return@setPositiveButton
}
val newDir = File(currentDir, name)
if (newDir.exists()) {
flashError(R.string.msg_folder_exists)
return@setPositiveButton
}

val newDir = File(currentDir, name)
if (newDir.exists()) {
flashError(R.string.msg_folder_exists)
return@setPositiveButton
}
if (!newDir.mkdirs()) {
flashError(R.string.msg_folder_creation_failed)
return@setPositiveButton
}

if (!newDir.mkdirs()) {
flashError(R.string.msg_folder_creation_failed)
return@setPositiveButton
}

flashSuccess(R.string.msg_folder_created)
if (lastHeld != null) {
requestCollapseNode(lastHeld, false)
requestExpandNode(lastHeld)
} else {
requestFileListing()
}
}
builder.setNegativeButton(android.R.string.cancel, null)
builder.showWithLongPressTooltip(
context = context,
tooltipTag = TooltipTag.PROJECT_NEW_FOLDER_DIALOG
)
}
flashSuccess(R.string.msg_folder_created)
if (lastHeld != null) {
requestCollapseNode(lastHeld, false)
requestExpandNode(lastHeld)
} else {
requestFileListing()
}
}
builder.setNegativeButton(android.R.string.cancel, null)
builder
.create()
.attachTooltip(TooltipTag.PROJECT_NEW_FOLDER_DIALOG)
.show()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ import com.itsaky.androidide.R
import com.itsaky.androidide.actions.ActionData
import com.itsaky.androidide.actions.requireFile
import com.itsaky.androidide.idetooltips.TooltipTag
import com.itsaky.androidide.idetooltips.attachTooltip
import com.itsaky.androidide.preferences.databinding.LayoutDialogTextInputBinding
import com.itsaky.androidide.utils.DialogUtils
import com.itsaky.androidide.utils.flashError
import com.itsaky.androidide.utils.showWithLongPressTooltip
import com.itsaky.androidide.viewmodel.FileManagerViewModel

/**
Expand Down Expand Up @@ -93,9 +93,9 @@ class RenameAction(
}
}

builder.showWithLongPressTooltip(
context = context,
tooltipTag = TooltipTag.PROJECT_RENAME_DIALOG,
)
builder
.create()
.attachTooltip(TooltipTag.PROJECT_RENAME_DIALOG)
.show()
}
}
Loading
Loading