Updated on 2026-08-14

This commit is contained in:
Tangem 2020-03-19 10:57:17 +03:00
parent ad014e143e
commit 36eef84d80
12 changed files with 0 additions and 477 deletions

View file

@ -1,71 +0,0 @@
package com.tangem.tangemtest._arch.mvp.dialog
import android.content.Context
import android.os.Bundle
import android.view.View
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.tangem.tangemtest.commons.OnBackPressHandler
import ru.dev.gbixahue.eu4d.lib.kotlin.common.LayoutHolder
/**
[REDACTED_AUTHOR]
*/
abstract class BaseMvpBottomSheetDialog(
context: Context
) : BottomSheetDialog(context), MvpDlgView, LayoutHolder {
protected val presenter: MvpDlgPresenter<MvpDlgView>
protected val mainView: View
init {
initComponent()
presenter = getMvpPresenter()
presenter.attached(this)
mainView = layoutInflater.inflate(getLayoutId(), null, false)
setContentView(mainView)
presenter.contentViewSet()
}
abstract fun initComponent()
abstract fun getMvpPresenter(): MvpDlgPresenter<MvpDlgView>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter.created()
}
override fun onStart() {
super.onStart()
presenter.started()
}
override fun show() {
super.show()
presenter.showed()
}
override fun onStop() {
super.onStop()
presenter.stopped()
}
override fun dismiss() {
super.dismiss()
presenter.dismissed()
}
override fun cancel() {
super.cancel()
presenter.cancelled()
presenter.detached()
}
override fun onBackPressed() {
super.onBackPressed()
(presenter as? OnBackPressHandler)?.onBackPressed()
}
protected fun <T : View> bindView(id: Int): T {
return mainView.findViewById(id) as T
}
}

View file

@ -1,64 +0,0 @@
package com.tangem.tangemtest._arch.mvp.dialog
import com.tangem.tangemtest.commons.OnBackPressHandler
import io.reactivex.disposables.CompositeDisposable
import ru.dev.gbixahue.eu4d.lib.android.global.log.Log
/**
[REDACTED_AUTHOR]
*/
open class BaseMvpBottomSheetPresenter<View : MvpDlgView> : MvpDlgPresenter<View>, OnBackPressHandler {
protected var view: View? = null
protected val stopDisposable = CompositeDisposable()
protected val dismissDisposable = CompositeDisposable()
protected val cancelDisposable = CompositeDisposable()
override fun attached(view: View) {
Log.d(this, "mvpView attached")
this.view = view
}
override fun contentViewSet() {
Log.d(this, "contentViewSet")
}
override fun created() {
Log.d(this, "created")
}
override fun started() {
Log.d(this, "started")
}
override fun showed() {
Log.d(this, "showed")
}
override fun stopped() {
Log.d(this, "stoped")
stopDisposable.clear()
}
override fun dismissed() {
Log.d(this, "dismissed")
dismissDisposable.clear()
}
override fun cancelled() {
Log.d(this, "cancelled")
cancelDisposable.clear()
}
override fun detached() {
Log.d(this, "detached")
view = null
}
override fun onBackPressed(): Boolean {
Log.d(this, "onBackPressed")
return true
}
}

View file

@ -1,18 +0,0 @@
package com.tangem.tangemtest._arch.mvp.dialog
/**
[REDACTED_AUTHOR]
*/
interface MvpDlgPresenter<T : MvpDlgView> {
fun attached(view: T)
fun contentViewSet()
fun created()
fun started()
fun showed()
fun stopped()
fun dismissed()
fun cancelled()
fun detached()
}

View file

@ -1,8 +0,0 @@
package com.tangem.tangemtest._arch.mvp.dialog
import com.tangem.tangemtest._arch.mvp.view.MvpView
/**
[REDACTED_AUTHOR]
*/
interface MvpDlgView : MvpView

View file

@ -1,76 +0,0 @@
package com.tangem.tangemtest._arch.mvp.presenter
import com.tangem.tangemtest._arch.mvp.view.MvpView
import com.tangem.tangemtest.commons.OnBackPressHandler
import io.reactivex.disposables.CompositeDisposable
import ru.dev.gbixahue.eu4d.lib.android.global.log.Log
/**
[REDACTED_AUTHOR]
*/
abstract class BaseMvpPresenter<View : MvpView> : MvpPresenter<View>, OnBackPressHandler, DisposableHolder {
protected var view: View? = null
protected val pauseDisposable = CompositeDisposable()
protected val stopDisposable = CompositeDisposable()
protected val destroyDisposable = CompositeDisposable()
override fun attached(view: View) {
Log.d(this, "attached")
this.view = view
}
override fun created() {
Log.d(this, "created")
}
override fun createView() {
Log.d(this, "createView")
}
override fun viewCreated() {
Log.d(this, "viewCreated")
}
override fun started() {
Log.d(this, "started")
}
override fun resumed() {
Log.d(this, "resumed")
}
override fun paused() {
Log.d(this, "paused")
pauseDisposable.clear()
}
override fun stopped() {
Log.d(this, "stopped")
stopDisposable.clear()
}
override fun destroyView() {
Log.d(this, "destroyView")
destroyDisposable.clear()
}
override fun viewDestroyed() {
Log.d(this, "viewDestroyed")
}
override fun detached() {
Log.d(this, "detached")
this.view = null
}
override fun disposeAll() {
pauseDisposable.clear()
stopDisposable.clear()
destroyDisposable.clear()
}
override fun onBackPressed(): Boolean = true
}

View file

@ -1,5 +0,0 @@
package com.tangem.tangemtest._arch.mvp.presenter
interface DisposableHolder {
fun disposeAll()
}

View file

@ -1,19 +0,0 @@
package com.tangem.tangemtest._arch.mvp.presenter
import com.tangem.tangemtest._arch.mvp.view.MvpView
interface MvpPresenter<T : MvpView> {
fun attached(view: T)
fun created()
fun createView()
fun viewCreated()
fun started()
fun resumed()
fun paused()
fun stopped()
fun destroyView()
fun viewDestroyed()
fun detached()
}

View file

@ -1,55 +0,0 @@
package com.tangem.tangemtest._arch.mvp.view
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.tangem.tangemtest._arch.mvp.presenter.MvpPresenter
import ru.dev.gbixahue.eu4d.lib.kotlin.common.LayoutHolder
/**
[REDACTED_AUTHOR]
*/
abstract class BaseMvpActivity : AppCompatActivity(), MvpView, LayoutHolder {
protected var presenter: MvpPresenter<in MvpView>? = null
protected abstract fun initComponent()
protected abstract fun getMvpPresenter(): MvpPresenter<in MvpView>?
override fun onCreate(savedInstanceState: Bundle?) {
initComponent()
presenter = getMvpPresenter()
presenter?.attached(this)
super.onCreate(savedInstanceState)
presenter?.created()
setContentView(getLayoutId())
presenter?.createView()
presenter?.viewCreated()
}
override fun onStart() {
super.onStart()
presenter?.started()
}
override fun onResume() {
super.onResume()
presenter?.resumed()
}
override fun onPause() {
super.onPause()
presenter?.paused()
}
override fun onStop() {
super.onStop()
presenter?.stopped()
}
override fun onDestroy() {
presenter?.destroyView()
super.onDestroy()
presenter?.viewDestroyed()
presenter?.detached()
}
}

View file

@ -1,85 +0,0 @@
package com.tangem.tangemtest._arch.mvp.view
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.tangem.tangemtest._arch.mvp.presenter.MvpPresenter
import com.tangem.tangemtest.commons.OnBackPressHandler
/**
[REDACTED_AUTHOR]
*/
abstract class BaseMvpFragment : Fragment(), MvpView, OnBackPressHandler {
protected lateinit var mainView: View
protected var presenter: MvpPresenter<in MvpView>? = null
protected abstract fun getMvpPresenter(): MvpPresenter<in MvpView>
override fun onAttach(context: Context) {
super.onAttach(context)
presenter = getMvpPresenter()
presenter?.attached(this)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter?.created()
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
mainView = super.onCreateView(inflater, container, savedInstanceState)!!
presenter?.createView()
return mainView
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
presenter?.viewCreated()
}
override fun onStart() {
super.onStart()
presenter?.started()
}
override fun onResume() {
super.onResume()
presenter?.resumed()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> onBackPressed()
}
return super.onOptionsItemSelected(item)
}
override fun onBackPressed()
: Boolean = (presenter as? OnBackPressHandler)?.onBackPressed() ?: false
override fun onPause() {
super.onPause()
presenter?.paused()
}
override fun onStop() {
super.onStop()
presenter?.stopped()
}
override fun onDestroyView() {
presenter?.destroyView()
super.onDestroyView()
presenter?.viewDestroyed()
}
override fun onDetach() {
super.onDetach()
presenter?.detached()
}
}

View file

@ -1,7 +0,0 @@
package com.tangem.tangemtest._arch.mvp.view
/**
[REDACTED_AUTHOR]
*/
interface MvpView

View file

@ -1,51 +0,0 @@
package com.tangem.tangemtest._arch.mvp.view.custom
import android.view.View
import com.tangem.tangemtest._arch.mvp.presenter.MvpPresenter
import com.tangem.tangemtest._arch.mvp.view.MvpView
/**
[REDACTED_AUTHOR]
*/
open class BaseMvpCustomView<in V : MvpView>(
protected val mainView: View,
protected val presenter: MvpPresenter<in V>
) : MvpCustomView {
override fun onViewCreated() {
presenter.created()
presenter.viewCreated()
}
override fun onStart() {
presenter.started()
}
override fun onResume() {
presenter.resumed()
}
override fun onPause() {
presenter.paused()
}
override fun onStop() {
presenter.stopped()
}
override fun onDestroyView() {
presenter.destroyView()
}
override fun onViewDestroyed() {
presenter.viewDestroyed()
}
override fun onDetach() {
presenter.detached()
}
protected fun <T> bindView(id: Int): T {
return mainView.findViewById<View>(id) as T
}
}

View file

@ -1,18 +0,0 @@
package com.tangem.tangemtest._arch.mvp.view.custom
import com.tangem.tangemtest._arch.mvp.view.MvpView
/**
[REDACTED_AUTHOR]
*/
interface MvpCustomView : MvpView {
fun onViewCreated()
fun onStart()
fun onResume()
fun onPause()
fun onStop()
fun onDestroyView()
fun onViewDestroyed()
fun onDetach()
}