From dee8265d23ab3479303cb8776ff543fda40009c0 Mon Sep 17 00:00:00 2001 From: Haeeul Date: Wed, 21 Feb 2024 15:24:15 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20#299=20=EC=B5=9C=EC=A0=80=EA=B0=80=20?= =?UTF-8?q?=EB=B9=84=EA=B5=90=20=EC=9B=B9=20=EC=82=AC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0=20=EC=8B=9C=20=EA=B8=B0=EC=A1=B4=EC=97=90=20?= =?UTF-8?q?=EC=9E=88=EB=8D=98=20BaseWebView=EB=A1=9C=20=EC=97=B0=EA=B2=B0?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/ui/detail/LowestPriceFragment.kt | 77 ------------------- .../ui/detail/PerfumeDetailActivity.kt | 16 ++-- .../ui/detail/info/DetailInfoFragment.kt | 2 +- .../ui/filter/brand/FilterBrandFragment.kt | 2 +- .../android/ui/home/MoreNewPerfumeActivity.kt | 2 +- .../scentsnote/android/ui/my/MyFragment.kt | 4 +- .../android/ui/search/SearchFragment.kt | 2 +- .../android/ui/setting/EditMyInfoActivity.kt | 2 +- .../android/utils/base/BaseWebViewActivity.kt | 49 ++++++++---- ...t_price.xml => activity_base_web_view.xml} | 16 ++-- .../res/layout/activity_web_google_form.xml | 21 ----- 11 files changed, 56 insertions(+), 137 deletions(-) delete mode 100644 app/src/main/java/com/scentsnote/android/ui/detail/LowestPriceFragment.kt rename app/src/main/res/layout/{fragment_lowest_price.xml => activity_base_web_view.xml} (67%) delete mode 100644 app/src/main/res/layout/activity_web_google_form.xml diff --git a/app/src/main/java/com/scentsnote/android/ui/detail/LowestPriceFragment.kt b/app/src/main/java/com/scentsnote/android/ui/detail/LowestPriceFragment.kt deleted file mode 100644 index 52c316fc..00000000 --- a/app/src/main/java/com/scentsnote/android/ui/detail/LowestPriceFragment.kt +++ /dev/null @@ -1,77 +0,0 @@ -package com.scentsnote.android.ui.detail - -import android.content.Context -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.webkit.WebViewClient -import androidx.activity.OnBackPressedCallback -import com.scentsnote.android.R -import com.scentsnote.android.databinding.FragmentLowestPriceBinding -import com.scentsnote.android.utils.extension.closeSelfWithAnimation -import com.scentsnote.android.utils.extension.setOnSafeClickListener - -class LowestPriceFragment : Fragment() { - private var _binding: FragmentLowestPriceBinding? = null - private val binding get() = _binding!! - - private lateinit var onBackPressedCallback: OnBackPressedCallback - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - super.onCreateView(inflater, container, savedInstanceState) - _binding = FragmentLowestPriceBinding.inflate(inflater) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - initView() - } - - override fun onAttach(context: Context) { - super.onAttach(context) - - onBackPressedCallback = object : OnBackPressedCallback(true) { - override fun handleOnBackPressed() { - closeSelfWithAnimation() - } - } - requireActivity().onBackPressedDispatcher.addCallback(this, onBackPressedCallback) - } - - override fun onDetach() { - super.onDetach() - onBackPressedCallback.remove() - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - private fun initView(){ - binding.toolbarLowestPrice.apply { - toolbar = R.drawable.icon_btn_cancel - toolbartxt = "가격 비교" - - toolbarBtn.setOnSafeClickListener { - closeSelfWithAnimation() - } - } - - binding.wvLowestPrice.apply { - webViewClient = WebViewClient() - loadUrl("https://www.naver.com/") - } - } - - companion object { - fun newInstance(): LowestPriceFragment = LowestPriceFragment() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/scentsnote/android/ui/detail/PerfumeDetailActivity.kt b/app/src/main/java/com/scentsnote/android/ui/detail/PerfumeDetailActivity.kt index b31437e5..29cd6050 100644 --- a/app/src/main/java/com/scentsnote/android/ui/detail/PerfumeDetailActivity.kt +++ b/app/src/main/java/com/scentsnote/android/ui/detail/PerfumeDetailActivity.kt @@ -18,6 +18,7 @@ import com.scentsnote.android.ScentsNoteApplication.Companion.firebaseAnalytics import com.scentsnote.android.viewmodel.detail.PerfumeDetailViewModel import com.scentsnote.android.utils.adapter.BindingAdapter.setNoteBtnText import com.scentsnote.android.utils.base.BaseActivity +import com.scentsnote.android.utils.base.BaseWebViewActivity import com.scentsnote.android.utils.extension.* import com.scentsnote.android.utils.listener.TabSelectedListener @@ -155,15 +156,12 @@ class PerfumeDetailActivity : } binding.btnLowestPrice.setOnSafeClickListener { - supportFragmentManager.beginTransaction() - .setCustomAnimations( - R.anim.slide_up, - R.anim.slide_down, - R.anim.slide_up, - R.anim.slide_down - ) - .add(R.id.fc_detail, LowestPriceFragment.newInstance()) - .commitAllowingStateLoss() + val intent = Intent(this, BaseWebViewActivity::class.java) + intent.apply { + putExtra("type", "lowestPrice") + putExtra("url","https://www.naver.com") + } + startActivity(intent) } } diff --git a/app/src/main/java/com/scentsnote/android/ui/detail/info/DetailInfoFragment.kt b/app/src/main/java/com/scentsnote/android/ui/detail/info/DetailInfoFragment.kt index 813a7155..fbcdfcdb 100644 --- a/app/src/main/java/com/scentsnote/android/ui/detail/info/DetailInfoFragment.kt +++ b/app/src/main/java/com/scentsnote/android/ui/detail/info/DetailInfoFragment.kt @@ -422,7 +422,7 @@ class DetailInfoFragment(val perfumeIdx: Int) : Fragment() { /** 정보 수정 제안 버튼 - 현재(2023.05) 구글폼으로 연결 */ fun onClickInfoReportBtn(view: View){ val intent = Intent(activity, BaseWebViewActivity::class.java) - intent.putExtra("url", "infoReport") + intent.putExtra("type", "infoReport") startActivity(intent) } } \ No newline at end of file diff --git a/app/src/main/java/com/scentsnote/android/ui/filter/brand/FilterBrandFragment.kt b/app/src/main/java/com/scentsnote/android/ui/filter/brand/FilterBrandFragment.kt index ca61fbb9..046475bd 100644 --- a/app/src/main/java/com/scentsnote/android/ui/filter/brand/FilterBrandFragment.kt +++ b/app/src/main/java/com/scentsnote/android/ui/filter/brand/FilterBrandFragment.kt @@ -97,7 +97,7 @@ class FilterBrandFragment : Fragment() { fun onClickWithdrawalBtn(view: View) { val intent = Intent(requireContext(), BaseWebViewActivity::class.java) - intent.putExtra("url", "tipOff") + intent.putExtra("type", "tipOff") startActivity(intent) } diff --git a/app/src/main/java/com/scentsnote/android/ui/home/MoreNewPerfumeActivity.kt b/app/src/main/java/com/scentsnote/android/ui/home/MoreNewPerfumeActivity.kt index 8a622dbe..6020315f 100644 --- a/app/src/main/java/com/scentsnote/android/ui/home/MoreNewPerfumeActivity.kt +++ b/app/src/main/java/com/scentsnote/android/ui/home/MoreNewPerfumeActivity.kt @@ -71,7 +71,7 @@ class MoreNewPerfumeActivity : AppCompatActivity() { fun onClickWithdrawalBtn(view: View) { val intent = Intent(this, BaseWebViewActivity::class.java) - intent.putExtra("url", "tipOff") + intent.putExtra("type", "tipOff") startActivity(intent) } } \ No newline at end of file diff --git a/app/src/main/java/com/scentsnote/android/ui/my/MyFragment.kt b/app/src/main/java/com/scentsnote/android/ui/my/MyFragment.kt index bb4402b4..abfdf128 100644 --- a/app/src/main/java/com/scentsnote/android/ui/my/MyFragment.kt +++ b/app/src/main/java/com/scentsnote/android/ui/my/MyFragment.kt @@ -160,9 +160,9 @@ class MyFragment : Fragment() { else->{ val intent = Intent(requireContext(), BaseWebViewActivity::class.java) if(menuItem.itemId == R.id.feedback){ - intent.putExtra("url", "feedback") + intent.putExtra("type", "feedback") }else{ - intent.putExtra("url", "tipOff") + intent.putExtra("type", "tipOff") } startActivity(intent) } diff --git a/app/src/main/java/com/scentsnote/android/ui/search/SearchFragment.kt b/app/src/main/java/com/scentsnote/android/ui/search/SearchFragment.kt index 66a29354..dbd48333 100644 --- a/app/src/main/java/com/scentsnote/android/ui/search/SearchFragment.kt +++ b/app/src/main/java/com/scentsnote/android/ui/search/SearchFragment.kt @@ -226,7 +226,7 @@ class SearchFragment : Fragment() { fun onClickTipOffBtn(view: View) { val intent = Intent(requireContext(), BaseWebViewActivity::class.java) - intent.putExtra("url", "tipOff") + intent.putExtra("type", "tipOff") startActivity(intent) } } \ No newline at end of file diff --git a/app/src/main/java/com/scentsnote/android/ui/setting/EditMyInfoActivity.kt b/app/src/main/java/com/scentsnote/android/ui/setting/EditMyInfoActivity.kt index 6ccad83e..ecf3a877 100644 --- a/app/src/main/java/com/scentsnote/android/ui/setting/EditMyInfoActivity.kt +++ b/app/src/main/java/com/scentsnote/android/ui/setting/EditMyInfoActivity.kt @@ -62,7 +62,7 @@ class EditMyInfoActivity : AppCompatActivity() { fun onClickWithdrawalBtn(view: View) { val intent = Intent(this, BaseWebViewActivity::class.java) - intent.putExtra("url", "withdrawal") + intent.putExtra("type", "withdrawal") startActivity(intent) } diff --git a/app/src/main/java/com/scentsnote/android/utils/base/BaseWebViewActivity.kt b/app/src/main/java/com/scentsnote/android/utils/base/BaseWebViewActivity.kt index 02492f29..ae11ba79 100644 --- a/app/src/main/java/com/scentsnote/android/utils/base/BaseWebViewActivity.kt +++ b/app/src/main/java/com/scentsnote/android/utils/base/BaseWebViewActivity.kt @@ -2,19 +2,29 @@ package com.scentsnote.android.utils.base import android.annotation.SuppressLint import android.os.Bundle +import android.view.View import android.webkit.WebViewClient +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil import com.scentsnote.android.R -import com.scentsnote.android.databinding.ActivityWebGoogleFormBinding +import com.scentsnote.android.databinding.ActivityBaseWebViewBinding +import com.scentsnote.android.utils.extension.setOnSafeClickListener class BaseWebViewActivity : AppCompatActivity() { - lateinit var binding: ActivityWebGoogleFormBinding + lateinit var binding: ActivityBaseWebViewBinding + + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (binding.wvMyInquiry.canGoBack()) binding.wvMyInquiry.goBack() + else finish() + } + } @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = DataBindingUtil.setContentView(this,R.layout.activity_web_google_form) + binding = DataBindingUtil.setContentView(this,R.layout.activity_base_web_view) val url = getUrl() @@ -23,21 +33,12 @@ class BaseWebViewActivity : AppCompatActivity() { settings.javaScriptEnabled = true loadUrl(url) } - } - override fun onBackPressed() { - if (binding.wvMyInquiry.canGoBack()) - { - binding.wvMyInquiry.goBack() - } - else - { - finish() - } + this.onBackPressedDispatcher.addCallback(this, callback) } private fun getUrl() : String{ - return when (intent.getStringExtra("url")) { + return when (intent.getStringExtra("type")) { "feedback" -> "https://docs.google.com/forms/d/e/1FAIpQLSfnvvc2O3_1X59lL243vsVXAjy-PIcq6-cgDgrhPph9mCAI1g/viewform" "withdrawal" -> "https://docs.google.com/forms/d/e/1FAIpQLSeZL-aslJd_YDgX2kLx31Gra1CXjG6ivaHqyAlko_iDQEVzYg/viewform" @@ -46,7 +47,25 @@ class BaseWebViewActivity : AppCompatActivity() { "infoReport" -> "https://docs.google.com/forms/d/e/1FAIpQLSfMs2BF3y7urW5u4drHde2C1dOOXCY4SMczjSBeQ0zQF_xotw/viewform" - else -> "" + "lowestPrice" -> { + showToolbar() + intent.getStringExtra("url") ?: "https://www.naver.com" + } + + else -> "https://www.naver.com" + } + } + + private fun showToolbar() { + binding.tbWebView.apply { + root.visibility = View.VISIBLE + + toolbar = R.drawable.icon_btn_cancel + toolbartxt = "가격 비교" + + toolbarBtn.setOnSafeClickListener { + finish() + } } } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_lowest_price.xml b/app/src/main/res/layout/activity_base_web_view.xml similarity index 67% rename from app/src/main/res/layout/fragment_lowest_price.xml rename to app/src/main/res/layout/activity_base_web_view.xml index 346db3d6..a33822e4 100644 --- a/app/src/main/res/layout/fragment_lowest_price.xml +++ b/app/src/main/res/layout/activity_base_web_view.xml @@ -1,29 +1,29 @@ - + tools:context=".utils.base.BaseWebViewActivity"> + app:layout_constraintTop_toTopOf="parent" + android:visibility="gone" /> - + app:layout_constraintTop_toBottomOf="@+id/tb_web_view" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_web_google_form.xml b/app/src/main/res/layout/activity_web_google_form.xml deleted file mode 100644 index c54533ff..00000000 --- a/app/src/main/res/layout/activity_web_google_form.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - \ No newline at end of file