Skip to content

Commit

Permalink
Merge pull request #13 from Merseyside/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
Merseyside authored Dec 29, 2022
2 parents ff9ed13 + 270ac6c commit 27cef3f
Show file tree
Hide file tree
Showing 65 changed files with 1,018 additions and 517 deletions.
6 changes: 3 additions & 3 deletions archy-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ plugins {
with(catalogPlugins.plugins) {
plugin(android.library)
plugin(kotlin.android)
id(mersey.android.convention.id())
id(mersey.kotlin.convention.id())
id(mersey.android.extension.id())
id(mersey.kotlin.extension.id())
plugin(kotlin.kapt)
plugin(android.navigation.args)
}
Expand All @@ -25,7 +25,7 @@ android {
}
}

kotlinConvention {
kotlinExtension {
debug = true
setCompilerArgs(
"-Xinline-classes",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.merseyside.merseyLib.archy.android.di

import androidx.fragment.app.Fragment
import com.merseyside.merseyLib.archy.core.di.SharedScopeHolder
import com.merseyside.merseyLib.utils.core.koin.SharedScopeHolder
import org.koin.core.scope.ScopeID

fun Fragment.findParentSharedScopeHolder(scopeID: ScopeID? = null): SharedScopeHolder? {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.merseyside.merseyLib.archy.android.di.state

import android.os.Bundle
import com.merseyside.merseyLib.archy.core.di.state.KoinStateHolder
import com.merseyside.merseyLib.archy.core.di.state.toSavedState
import com.merseyside.merseyLib.utils.core.koin.state.KoinStateHolder
import com.merseyside.merseyLib.utils.core.koin.state.toBundle
import com.merseyside.merseyLib.utils.core.koin.state.toSavedState
import com.merseyside.merseyLib.utils.core.state.SavedState
import com.merseyside.merseyLib.archy.core.di.state.toBundle
import org.koin.android.scope.AndroidScopeComponent
import org.koin.core.context.loadKoinModules
import org.koin.core.qualifier.Qualifier
Expand All @@ -31,13 +31,6 @@ interface AndroidKoinScopeState : AndroidScopeComponent {
}
}

// private fun getKoinStateScope(): Scope {
// return getKoin().getOrCreateScope(
// scopeId = linkableScope.id,
// qualifier = qualifier
// )
// }

fun getKoinStateHolder(): KoinStateHolder = scope.get()

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import android.os.Bundle
import androidx.annotation.CallSuper
import androidx.databinding.ViewDataBinding
import com.merseyside.archy.presentation.activity.BaseBindingActivity
import com.merseyside.merseyLib.archy.core.di.state.getStateKey
import com.merseyside.merseyLib.utils.core.koin.state.getStateKey
import com.merseyside.merseyLib.archy.core.presentation.viewModel.BaseViewModel
import com.merseyside.merseyLib.archy.core.di.state.saveState
import com.merseyside.merseyLib.utils.core.koin.state.saveState
import com.merseyside.merseyLib.kotlin.logger.Logger
import com.merseyside.merseyLib.utils.core.state.StateSaver
import com.merseyside.utils.reflection.ReflectionUtils
import org.koin.androidx.viewmodel.ext.android.getViewModel
import org.koin.androidx.viewmodel.ext.android.viewModelForClass
import org.koin.core.context.loadKoinModules
import org.koin.core.module.Module
import org.koin.core.parameter.parametersOf
Expand All @@ -37,10 +37,10 @@ abstract class VMActivity<Binding : ViewDataBinding, Model : BaseViewModel>
}

protected open fun provideViewModel(bundle: Bundle?, vararg params: Any): Model {
return getViewModel(
return viewModelForClass(
clazz = getViewModelClass(),
parameters = { parametersOf(bundle, *params) }
)
).value
}

@CallSuper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ abstract class VMEventsActivity<B : ViewDataBinding, Model, Listener>
}
}

override fun onConnectionStateChanged(state: Boolean) {}

private fun showErrorMsg(textMessage: TextMessage) {
with(textMessage) {
actionMsg?.let {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import com.merseyside.merseyLib.archy.core.presentation.viewModel.BaseViewModel
import com.merseyside.merseyLib.archy.core.presentation.viewModel.entity.TextMessage
import com.merseyside.merseyLib.kotlin.logger.Logger
import com.merseyside.utils.reflection.ReflectionUtils
import org.koin.androidx.viewmodel.ext.android.getViewModel
import org.koin.androidx.viewmodel.ext.android.viewModelForClass
import org.koin.core.context.loadKoinModules
import org.koin.core.module.Module
import org.koin.core.parameter.parametersOf
Expand Down Expand Up @@ -39,7 +39,7 @@ abstract class VMDialog<Binding : ViewDataBinding, Model : BaseViewModel>

override fun performInjection(bundle: Bundle?, vararg params: Any) {
loadKoinModules(getKoinModules(bundle, *params))
viewModel = provideViewModel(bundle, params)
viewModel = provideViewModel(bundle, *params)
}

open fun getKoinModules(bundle: Bundle?, vararg params: Any): List<Module> {
Expand All @@ -49,10 +49,10 @@ abstract class VMDialog<Binding : ViewDataBinding, Model : BaseViewModel>
}

protected open fun provideViewModel(bundle: Bundle?, vararg params: Any): Model {
return getViewModel(
return viewModelForClass(
clazz = getViewModelClass(),
parameters = { parametersOf(bundle, *params) }
)
).value
}

private fun showErrorMsg(textMessage: TextMessage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ abstract class VMEventsFragment<Binding : ViewDataBinding, Model, Listener> :
}
}

override fun onConnectionStateChanged(state: Boolean) {}

private fun showErrorMsg(textMessage: TextMessage) {
with(textMessage) {
actionMsg?.let {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import android.os.Bundle
import android.view.View
import androidx.databinding.ViewDataBinding
import com.merseyside.archy.presentation.fragment.BaseBindingFragment
import com.merseyside.merseyLib.archy.core.di.state.getStateKey
import com.merseyside.merseyLib.archy.core.di.state.saveState
import com.merseyside.merseyLib.utils.core.koin.state.getStateKey
import com.merseyside.merseyLib.utils.core.koin.state.saveState
import com.merseyside.merseyLib.archy.core.presentation.viewModel.BaseViewModel
import com.merseyside.merseyLib.kotlin.logger.Logger
import com.merseyside.merseyLib.utils.core.state.StateSaver
import com.merseyside.utils.reflection.ReflectionUtils
import org.koin.androidx.viewmodel.ext.android.getViewModel
import org.koin.androidx.viewmodel.ext.android.viewModelForClass
import org.koin.core.context.loadKoinModules
import org.koin.core.module.Module
import org.koin.core.parameter.parametersOf
Expand Down Expand Up @@ -46,10 +46,10 @@ abstract class VMFragment<Binding : ViewDataBinding, Model : BaseViewModel>
}

protected open fun provideViewModel(bundle: Bundle?, vararg params: Any): Model {
return getViewModel(
return viewModelForClass(
clazz = getViewModelClass(),
parameters = { parametersOf(*params, bundle) }
)
).value
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.merseyside.merseyLib.archy.android.presentation.recycler

import android.view.View
import androidx.recyclerview.widget.RecyclerView
import com.merseyside.merseyLib.kotlin.utils.safeLet

abstract class PaginationScrollListener(
private val loadItemsCountOffset: Int = 5
) : RecyclerView.OnChildAttachStateChangeListener {

abstract val recyclerView: RecyclerView
abstract val onLoadNextPage: () -> Unit

override fun onChildViewAttachedToWindow(view: View) {
if (needToLoadNextPage(view)) onLoadNextPage()
}

override fun onChildViewDetachedFromWindow(view: View) {}

private fun needToLoadNextPage(view: View): Boolean {
with(recyclerView) {
val lastPosition = getChildAdapterPosition(view)
val itemCount = adapter?.itemCount
return safeLet(itemCount) {
(it - lastPosition) <= loadItemsCountOffset
} ?: false
}
}
}
6 changes: 3 additions & 3 deletions archy-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ plugins {
with(catalogPlugins.plugins) {
plugin(android.library)
plugin(kotlin.multiplatform)
id(mersey.android.convention.id())
id(mersey.kotlin.convention.id())
id(mersey.android.extension.id())
id(mersey.kotlin.extension.id())
plugin(kotlin.serialization)
plugin(kotlin.kapt)
plugin(moko.multiplatform)
Expand Down Expand Up @@ -39,7 +39,7 @@ kotlin {
}
}

kotlinConvention {
kotlinExtension {
debug = true
setCompilerArgs(
"-Xinline-classes",
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 27cef3f

Please sign in to comment.