diff --git a/app/src/main/java/jp/atled/agileworks/model/AppRepository.kt b/app/src/main/java/jp/atled/agileworks/model/AppRepository.kt index 87de81df651a202507385686220ea063fdd6db1b..b89bed8402ceb67153d5946cdbdc7772ac8e60dc 100644 --- a/app/src/main/java/jp/atled/agileworks/model/AppRepository.kt +++ b/app/src/main/java/jp/atled/agileworks/model/AppRepository.kt @@ -9,9 +9,19 @@ class AppRepository { appBackGroundStatus = status } + fun getApprovalUrl(): String? { + return approvalUrl + } + + fun setApprovalUrl(url: String?) { + approvalUrl = url + } + companion object { fun getInstance() = AppRepository() // アプリがバックグラウンドか private var appBackGroundStatus = false + // ウィジェットタップ時のURL保持 + private var approvalUrl: String? = null } } \ No newline at end of file diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt b/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt index f365be262335c2df3cfc4364563d2990e581d7fa..6c5399cd2b608ce399c9f7fa74f1f1854718e3a4 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt @@ -8,13 +8,11 @@ import android.content.res.Configuration import android.os.Build import android.os.Bundle import android.util.Log -import android.widget.TextView import androidx.activity.viewModels import androidx.annotation.RequiresApi import androidx.annotation.StringRes import androidx.appcompat.app.ActionBar import androidx.core.app.NotificationManagerCompat -import androidx.fragment.app.Fragment import androidx.lifecycle.LiveData import androidx.lifecycle.Observer import androidx.navigation.NavController @@ -24,16 +22,12 @@ import androidx.navigation.ui.setupActionBarWithNavController import com.google.android.material.bottomnavigation.BottomNavigationView import jp.atled.agileworks.BuildConfig import jp.atled.agileworks.R -import jp.atled.agileworks.common.util.toFormattedString -import jp.atled.agileworks.model.DeviceInfoRepository -import jp.atled.agileworks.model.FcmRepository +import jp.atled.agileworks.model.AppRepository import jp.atled.agileworks.view.base.BaseActivity import jp.atled.agileworks.view.base.BaseViewModel -import jp.atled.agileworks.view.ui.documentweb.DocumentWebFragment import jp.atled.agileworks.view.ui.login.LoginUtil import jp.atled.agileworks.view.utils.putNonNullStingFromExtra import kotlinx.android.synthetic.main.activity_main.* -import java.util.* class MainActivity : BaseActivity() { private val TAG = "MainActivity" @@ -68,15 +62,10 @@ class MainActivity : BaseActivity() { // ウィジェットタップ時の情報伝達 val deepApproveUrl = intent.getStringExtra(APPROVAL_DEEPLINK_URL_KEY) if (!deepApproveUrl.isNullOrEmpty()) { - intent.putExtra("url", deepApproveUrl) - - val approvalFragment = DocumentWebFragment() - approvalFragment.arguments = intent.extras - - supportFragmentManager.beginTransaction() - .addToBackStack(null) - .replace(R.id.main_nav_fragment, approvalFragment) - .commit() + // タブ切り替え + findViewById(R.id.bottom_navigation_bar).selectedItemId = R.id.workListNavigation + // URL保持 + AppRepository.getInstance().setApprovalUrl(deepApproveUrl) } } 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 ff55f81535d76da81f9ff2d82c68775978eaa3b6..63498022dccedfa05d71e54f9943c5fa8965f5a4 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 @@ -21,6 +21,7 @@ import androidx.lifecycle.lifecycleScope import jp.atled.agileworks.R import jp.atled.agileworks.AwApp import jp.atled.agileworks.databinding.FragmentWebviewDetailBinding +import jp.atled.agileworks.model.AppRepository import jp.atled.agileworks.model.LoginRepository import jp.atled.agileworks.model.SessionRepository import jp.atled.agileworks.view.base.BaseViewModel @@ -41,6 +42,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { private var webview: WebView? = null private var lastUrl: String? = null private var connectUrl: String? = null + private var holdUrl: String? = null private var getUrl: String? = null // webViewからのアラート表示用変数 private var dialog: AlertDialog? = null @@ -65,14 +67,13 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { webview?.let { getUrl = it.getUrl() } - if(getUrl != connectUrl){ - applyCookieManager(connectUrl, true) + if(getUrl != holdUrl){ + applyCookieManager(holdUrl, true) } } } return viewDataBinding.root } - @SuppressLint("ClickableViewAccessibility") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -82,6 +83,13 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { if (!connectUrl!!.contains(AwApp.Baseurl())) { connectUrl = AwApp.Baseurl() + connectUrl } + holdUrl = connectUrl + if (connectUrl!!.endsWith("#work")) { + AppRepository.getInstance().getApprovalUrl()?.let { + connectUrl = it + AppRepository.getInstance().setApprovalUrl(null) + } + } getSessionAndSetupWebView(view, connectUrl!!, lastUrl,true) } // セットワーク切断状態で、webview デフォルトページ表示時に透明view表示