diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt index a2926e02b833f50d86fa3dd78a5f8891ca350bc4..e5681a5b12fd976f38e0d49a5b58f459629c61cb 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt @@ -28,6 +28,10 @@ class DocumentWebViewClient(private val webShare: DocumentWebShare): WebViewClie super.onPageFinished(view, url) webShare.presenter.hideLoadingProgressBar() webShare.presenter.updateAutoReloadState(false) + if (webShare.presenter.getClearHistoryFlg()) { + webShare.presenter.setClearHistoryFlg(false) + view!!.clearHistory(); + } } override fun onReceivedClientCertRequest(view: WebView?, request: ClientCertRequest?) { diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index 9b0e7da7c0b9e4d269a8eabccf81b07b7f2c7996..809a0d5b220f8e818382b20e79da5b11f12f19fc 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -46,6 +46,10 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { private var getUrl: String? = null // webViewからのアラート表示用変数 private var dialog: AlertDialog? = null + //閲覧履歴削除フラグ + private var clearHistoryFlg = false + // タブ選択時初期URLリロードするかどうか + private var reloadTab = false // スワイプのジェスチャー。折に触れて状態設定をする必要があるのでメンバーとして持つ。 // 必要とされるタイミング次第で null のままのことがある恐れがあるので lateinit にはしていない。 @@ -71,6 +75,12 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { } if(getUrl != holdUrl){ applyCookieManager(holdUrl, true) + } else { + if (reloadTab) { + webview?.let { + it.reload() + } + } } } } @@ -81,6 +91,9 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { super.onViewCreated(view, savedInstanceState) webShare = DocumentWebShare(this, DocumentWebDownloader(this, RC_CHOOSE_FILE, RC_SAVE_FILE)) arguments?.let { + DocumentWebFragmentArgs.fromBundle(it).tabChengeReload?.let { + reloadTab = it + } connectUrl = DocumentWebFragmentArgs.fromBundle(it).url if (!connectUrl!!.contains(AwApp.Baseurl())) { connectUrl = AwApp.Baseurl() + connectUrl @@ -310,7 +323,16 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { private fun getSessionAndSetupWebView(view: View, url: String, lasturl: String?, urlLoading: Boolean) { CookieManager.getInstance().apply { setAcceptCookie(true) - webview = WebView(requireActivity()) + if (webview == null) { //webview生成 + webview = WebView(requireActivity()) + } else { // タブ選択時 + setClearHistoryFlg(true) + webview?.let { + if (reloadTab && it.url == url) { + it.reload() + } + } + } view.findViewById(R.id.webviewLelativeLayout)?.let { it.addView(webview, 0, RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.FILL_PARENT)) } @@ -520,6 +542,15 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { } } + //閲覧履歴削除フラグの設定 + override fun setClearHistoryFlg(clearHistory: Boolean) { + clearHistoryFlg = clearHistory + } + //閲覧履歴削除フラグの取得 + override fun getClearHistoryFlg(): Boolean { + return clearHistoryFlg + } + companion object { private const val TAG = "DocumentWebFragmentHandler" diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebPresenter.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebPresenter.kt index 8ce8d0ee7b4f58ab003cbae2a09e112de1146403..fa105ba2a9d5c786172a539b8f3cad664735aba5 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebPresenter.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebPresenter.kt @@ -49,4 +49,14 @@ interface DocumentWebPresenter { * webViewからのアラートをダイアログ表示 */ fun showDialog(message: String, view: WebView) + + /** + * 閲覧履歴の削除フラグ設定 + */ + fun setClearHistoryFlg(clearHistory: Boolean) + + /** + * 閲覧履歴の削除フラグ取得 + */ + fun getClearHistoryFlg(): Boolean } diff --git a/app/src/main/res/navigation/nav_create_document.xml b/app/src/main/res/navigation/nav_create_document.xml index d6e6e28f3f26760fe9481e7db1afb8002b823a09..aad3c1ce5949aaf1272eff4d6e3be00f130f94f4 100644 --- a/app/src/main/res/navigation/nav_create_document.xml +++ b/app/src/main/res/navigation/nav_create_document.xml @@ -12,5 +12,9 @@ android:name="url" android:defaultValue="Broker/Mobile#formSelection" app:argType="string" /> + diff --git a/app/src/main/res/navigation/nav_home.xml b/app/src/main/res/navigation/nav_home.xml index 632085b850bd4595d0836ff439571ddce96cbbef..ca29d6b93c52d18beaf7af2ffb3fe63dc7e069b0 100644 --- a/app/src/main/res/navigation/nav_home.xml +++ b/app/src/main/res/navigation/nav_home.xml @@ -12,5 +12,9 @@ android:name="url" android:defaultValue="Broker/Mobile#home" app:argType="string" /> + diff --git a/app/src/main/res/navigation/nav_search.xml b/app/src/main/res/navigation/nav_search.xml index b6490f8b774a1b5be2d83e7276fe45db051a4db7..771a29dcf726984c72d644278fd1bd7aeb6fbd8c 100644 --- a/app/src/main/res/navigation/nav_search.xml +++ b/app/src/main/res/navigation/nav_search.xml @@ -12,5 +12,9 @@ android:name="url" android:defaultValue="Broker/Mobile#agileWorksSearch" app:argType="string" /> + diff --git a/app/src/main/res/navigation/nav_work.xml b/app/src/main/res/navigation/nav_work.xml index 4a3d37f0d75b21e2015d5bb4cb89d5cf460fa010..8d5cbda0eac61c9efb52b84e22e25497a0cf1b1a 100644 --- a/app/src/main/res/navigation/nav_work.xml +++ b/app/src/main/res/navigation/nav_work.xml @@ -12,5 +12,9 @@ android:name="url" android:defaultValue="Broker/Mobile#work" app:argType="string" /> +