mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Allow back button to navigate to previous URL in WebView, add Forward, Refresh, and Close menu options (#2176)
This commit is contained in:
		| @@ -1,9 +1,7 @@ | ||||
| package eu.kanade.tachiyomi.ui.manga.info | ||||
|  | ||||
| import android.os.Bundle | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import android.view.* | ||||
| import android.webkit.WebView | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| @@ -16,6 +14,10 @@ class MangaWebViewController(bundle: Bundle? = null) : BaseController(bundle) { | ||||
|  | ||||
|     private val sourceManager by injectLazy<SourceManager>() | ||||
|  | ||||
|     init { | ||||
|         setHasOptionsMenu(true) | ||||
|     } | ||||
|  | ||||
|     constructor(sourceId: Long, url: String) : this(Bundle().apply { | ||||
|         putLong(SOURCE_KEY, sourceId) | ||||
|         putString(URL_KEY, url) | ||||
| @@ -43,6 +45,40 @@ class MangaWebViewController(bundle: Bundle? = null) : BaseController(bundle) { | ||||
|         web.loadUrl(url, headers) | ||||
|     } | ||||
|  | ||||
|     override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { | ||||
|         inflater.inflate(R.menu.web_view, menu) | ||||
|     } | ||||
|  | ||||
|     override fun onPrepareOptionsMenu(menu: Menu) { | ||||
|         val web = view as WebView | ||||
|         menu.findItem(R.id.action_forward).isVisible = web.canGoForward() | ||||
|     } | ||||
|  | ||||
|     override fun onOptionsItemSelected(item: MenuItem): Boolean { | ||||
|         when (item.itemId) { | ||||
|             R.id.action_forward -> { | ||||
|                 val web = view as WebView | ||||
|                 if (web.canGoForward()) web.goForward() | ||||
|             } | ||||
|             R.id.action_refresh -> { | ||||
|                 val web = view as WebView | ||||
|                 web.reload() | ||||
|             } | ||||
|             R.id.action_close -> router.popController(this) | ||||
|             else -> return super.onOptionsItemSelected(item) | ||||
|         } | ||||
|         return true | ||||
|     } | ||||
|  | ||||
|     override fun handleBack(): Boolean { | ||||
|         val web = view as WebView | ||||
|         if (web.canGoBack()) { | ||||
|             web.goBack() | ||||
|             return true | ||||
|         } | ||||
|         return super.handleBack() | ||||
|     } | ||||
|  | ||||
|     override fun onDestroyView(view: View) { | ||||
|         val web = view as WebView | ||||
|         web.stopLoading() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user