@@ -11,6 +11,7 @@ import com.itsaky.androidide.plugins.extensions.NavigationItem
1111import com.itsaky.androidide.plugins.extensions.ContextMenuContext
1212import com.itsaky.androidide.plugins.services.IdeEditorTabService
1313import com.codeonthego.markdownpreviewer.fragments.MarkdownPreviewFragment
14+ import com.codeonthego.markdownpreviewer.viewmodel.MarkdownPreviewViewModel
1415import java.io.File
1516
1617class MarkdownPreviewerPlugin : IPlugin , UIExtension , EditorTabExtension {
@@ -56,6 +57,9 @@ class MarkdownPreviewerPlugin : IPlugin, UIExtension, EditorTabExtension {
5657
5758 override fun dispose () {
5859 context.logger.info(" MarkdownPreviewerPlugin: Disposing plugin" )
60+ PreviewState .consumePendingFile()
61+ PreviewState .consumePendingUri()
62+ MarkdownPreviewViewModel .reset()
5963 }
6064
6165 // UIExtension - No main menu items (accessed via sidebar/context menu)
@@ -94,7 +98,7 @@ class MarkdownPreviewerPlugin : IPlugin, UIExtension, EditorTabExtension {
9498 NavigationItem (
9599 id = " markdown_preview_sidebar" ,
96100 title = " Preview" ,
97- icon = android. R .drawable.ic_menu_gallery ,
101+ icon = R .drawable.ic_preview ,
98102 isEnabled = true ,
99103 isVisible = true ,
100104 group = " tools" ,
@@ -113,7 +117,7 @@ class MarkdownPreviewerPlugin : IPlugin, UIExtension, EditorTabExtension {
113117 EditorTabItem (
114118 id = " markdown_preview_main_tab" ,
115119 title = " Preview" ,
116- icon = android. R .drawable.ic_menu_gallery ,
120+ icon = R .drawable.ic_preview ,
117121 fragmentFactory = {
118122 context.logger.debug(" Creating MarkdownPreviewFragment" )
119123 MarkdownPreviewFragment ()
@@ -137,6 +141,11 @@ class MarkdownPreviewerPlugin : IPlugin, UIExtension, EditorTabExtension {
137141
138142 override fun onEditorTabClosed (tabId : String ) {
139143 context.logger.info(" Editor tab closed: $tabId " )
144+ if (tabId == " markdown_preview_main_tab" ) {
145+ PreviewState .consumePendingFile()
146+ PreviewState .consumePendingUri()
147+ MarkdownPreviewViewModel .reset()
148+ }
140149 }
141150
142151 override fun canCloseEditorTab (tabId : String ): Boolean {
@@ -182,10 +191,19 @@ class MarkdownPreviewerPlugin : IPlugin, UIExtension, EditorTabExtension {
182191object PreviewState {
183192 @Volatile
184193 var pendingFilePath: String? = null
185-
194+
195+ @Volatile
196+ var pendingUri: android.net.Uri ? = null
197+
186198 fun consumePendingFile (): String? {
187199 val path = pendingFilePath
188200 pendingFilePath = null
189201 return path
190202 }
203+
204+ fun consumePendingUri (): android.net.Uri ? {
205+ val uri = pendingUri
206+ pendingUri = null
207+ return uri
208+ }
191209}
0 commit comments