diff --git a/app/src/main/java/com/tangem/tap/features/BaseFragment.kt b/app/src/main/java/com/tangem/tap/features/BaseFragment.kt deleted file mode 100644 index 6321957ee1..0000000000 --- a/app/src/main/java/com/tangem/tap/features/BaseFragment.kt +++ /dev/null @@ -1,87 +0,0 @@ -package com.tangem.tap.features - -import android.annotation.SuppressLint -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.activity.addCallback -import androidx.appcompat.widget.Toolbar -import androidx.core.view.MenuHost -import androidx.core.view.MenuProvider -import androidx.fragment.app.Fragment -import androidx.lifecycle.Lifecycle -import androidx.transition.TransitionInflater -import com.google.android.material.snackbar.Snackbar -import com.tangem.common.extensions.VoidCallback -import com.tangem.common.routing.AppRouter -import com.tangem.tap.common.extensions.dispatchNavigationAction -import com.tangem.tap.store -import com.tangem.wallet.R - -/** -[REDACTED_AUTHOR] - */ -abstract class BaseFragment(layoutId: Int) : Fragment(layoutId), FragmentOnBackPressedHandler { - - private lateinit var mainView: View - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - configureTransitions() - } - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - mainView = super.onCreateView(inflater, container, savedInstanceState)!! - return mainView - } - - override fun handleOnBackPressed() { - store.dispatchNavigationAction(AppRouter::pop) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - loadToolbarMenu()?.let { - val menuHost = requireActivity() as? MenuHost ?: return - menuHost.addMenuProvider(it, viewLifecycleOwner, Lifecycle.State.RESUMED) - } - } - - protected open fun loadToolbarMenu(): MenuProvider? = null - - protected open fun configureTransitions() { - configureDefaultTransactions() - } - - protected fun configureDefaultTransactions() { - val inflater = TransitionInflater.from(requireContext()) - enterTransition = inflater.inflateTransition(R.transition.fade) - exitTransition = inflater.inflateTransition(R.transition.fade) - } - - fun showRetrySnackbar(message: String, action: VoidCallback) { - val snackbar = Snackbar.make(mainView, message, Snackbar.LENGTH_INDEFINITE) - snackbar.setAction(getString(R.string.common_retry)) { - snackbar.dismiss() - action() - }.show() - } -} - -interface FragmentOnBackPressedHandler { - fun handleOnBackPressed() -} - -@SuppressLint("FragmentBackPressedCallback") -fun Fragment.addBackPressHandler(handler: FragmentOnBackPressedHandler) { - requireActivity().onBackPressedDispatcher.addCallback( - owner = this, - onBackPressed = { handler.handleOnBackPressed() }, - ) - - view?.findViewById(R.id.toolbar)?.setNavigationOnClickListener { - handler.handleOnBackPressed() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/BaseStoreFragment.kt b/app/src/main/java/com/tangem/tap/features/BaseStoreFragment.kt deleted file mode 100644 index e295c9f100..0000000000 --- a/app/src/main/java/com/tangem/tap/features/BaseStoreFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.tangem.tap.features - -import com.tangem.tap.store -import org.rekotlin.StoreSubscriber - -/** -[REDACTED_AUTHOR] - */ -abstract class BaseStoreFragment(layoutId: Int) : BaseFragment(layoutId) { - - protected val storeSubscribersList = mutableListOf>() - - abstract fun subscribeToStore() - - override fun onStart() { - super.onStart() - subscribeToStore() - } - - override fun onStop() { - storeSubscribersList.forEach { store.unsubscribe(it) } - storeSubscribersList.clear() - super.onStop() - } -} \ No newline at end of file