diff --git a/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/ClipboardTool.kt b/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/ClipboardTool.kt index 8b584f4f7c..00feeb7563 100644 --- a/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/ClipboardTool.kt +++ b/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/ClipboardTool.kt @@ -93,6 +93,10 @@ class ClipboardTool( highlightBox() pasteBoxContent() } + + override fun clearClicked() { + clearClipboardContent() + } } clipboardToolOptionsView.setCallback(callback) toolOptionsViewController.showDelayed() @@ -139,6 +143,13 @@ class ClipboardTool( commandManager.addCommand(command) } + private fun clearClipboardContent() { + drawingBitmap?.recycle() + drawingBitmap = null + readyForPaste = false + clipboardToolOptionsView.enablePaste(false) + } + override fun onClickOnButton() { if (!readyForPaste || drawingBitmap == null) { contextCallback.showNotification(R.string.clipboard_tool_copy_hint) diff --git a/Paintroid/src/main/java/org/catrobat/paintroid/tools/options/ClipboardToolOptionsView.kt b/Paintroid/src/main/java/org/catrobat/paintroid/tools/options/ClipboardToolOptionsView.kt index 77a6255d26..7125ef29c6 100644 --- a/Paintroid/src/main/java/org/catrobat/paintroid/tools/options/ClipboardToolOptionsView.kt +++ b/Paintroid/src/main/java/org/catrobat/paintroid/tools/options/ClipboardToolOptionsView.kt @@ -37,5 +37,7 @@ interface ClipboardToolOptionsView { fun cutClicked() fun pasteClicked() + + fun clearClicked() } } diff --git a/Paintroid/src/main/java/org/catrobat/paintroid/ui/tools/DefaultClipboardToolOptionsView.kt b/Paintroid/src/main/java/org/catrobat/paintroid/ui/tools/DefaultClipboardToolOptionsView.kt index 8a99d22e30..9e27797190 100644 --- a/Paintroid/src/main/java/org/catrobat/paintroid/ui/tools/DefaultClipboardToolOptionsView.kt +++ b/Paintroid/src/main/java/org/catrobat/paintroid/ui/tools/DefaultClipboardToolOptionsView.kt @@ -30,6 +30,7 @@ class DefaultClipboardToolOptionsView(rootView: ViewGroup) : ClipboardToolOption private val pasteChip: Chip private val copyChip: Chip private val cutChip: Chip + private val clearChip: Chip private val shapeSizeChip: Chip private val changeSizeShapeSizeChip: Chip private val clipboardToolOptionsView: View @@ -49,6 +50,10 @@ class DefaultClipboardToolOptionsView(rootView: ViewGroup) : ClipboardToolOption pasteChip.setOnClickListener { callback?.pasteClicked() } + + clearChip.setOnClickListener { + callback?.clearClicked() + } } override fun setCallback(callback: ClipboardToolOptionsView.Callback) { @@ -81,8 +86,9 @@ class DefaultClipboardToolOptionsView(rootView: ViewGroup) : ClipboardToolOption val stampToolOptionsView: View = inflater.inflate(R.layout.dialog_pocketpaint_clipboard_tool, rootView) copyChip = stampToolOptionsView.findViewById(R.id.action_copy) - pasteChip = stampToolOptionsView.findViewById(R.id.action_paste) cutChip = stampToolOptionsView.findViewById(R.id.action_cut) + pasteChip = stampToolOptionsView.findViewById(R.id.action_paste) + clearChip = stampToolOptionsView.findViewById(R.id.action_clear) enablePaste(false) initializeListeners() stampToolOptionsView.run { diff --git a/Paintroid/src/main/res/layout/dialog_pocketpaint_clipboard_tool.xml b/Paintroid/src/main/res/layout/dialog_pocketpaint_clipboard_tool.xml index 5baf9ee945..54992c8b2d 100644 --- a/Paintroid/src/main/res/layout/dialog_pocketpaint_clipboard_tool.xml +++ b/Paintroid/src/main/res/layout/dialog_pocketpaint_clipboard_tool.xml @@ -64,6 +64,23 @@ app:chipIcon="@drawable/ic_pocketpaint_paste_chip_icon_selector" app:chipStartPadding="8dp" /> + + + + Paste Copy Cut + Clear Stickers @string/button_import_image