Skip to content

Commit 66e8e69

Browse files
author
Patrick Jackson
committed
[WIP] working without state type param on view
1 parent dbd3db2 commit 66e8e69

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

android/src/main/java/com/jackson/openlibrary/store/BaseLibraryViewFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import androidx.lifecycle.*
66
import com.willowtreeapps.common.AppState
77
import com.willowtreeapps.common.external.*
88

9-
abstract class BaseLibraryViewFragment<V: ViewWithProvider<AppState>>: Fragment(), ViewWithProvider<AppState> {
9+
abstract class BaseLibraryViewFragment<V: ViewWithProvider>: Fragment(), ViewWithProvider {
1010

1111
private val presenterObserver = PresenterLifecycleObserver(this)
1212
private var viewRecreated: Boolean = false
@@ -56,7 +56,7 @@ abstract class BaseLibraryViewFragment<V: ViewWithProvider<AppState>>: Fragment(
5656
}
5757

5858

59-
class PresenterLifecycleObserver(val view: ViewWithProvider<AppState>): LifecycleObserver {
59+
class PresenterLifecycleObserver(val view: ViewWithProvider): LifecycleObserver {
6060

6161
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
6262
fun onAttach() {

common/src/commonMain/kotlin/com/willowtreeapps/common/LibraryApp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class LibraryApp(navigator: Navigator,
2222
createStore(combineReducers(reducer, navigationReducer), AppState.INITIAL_STATE, compose(listOf(
2323
presenterEnhancer,
2424
applyMiddleware(
25-
presenterMiddleware<AppState, ViewWithProvider<AppState>>(uiContext),
25+
presenterMiddleware<AppState, ViewWithProvider>(uiContext),
2626
coroutineDispatcher(uiContext),
2727
loggerMiddleware,
2828
createThunkMiddleware(),

common/src/commonMain/kotlin/com/willowtreeapps/common/external/PresenterInjecter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ interface View {
2020
}
2121

2222

23-
interface PresenterProvider<S: Any> {
23+
interface PresenterProvider {
2424
fun presenter(): Presenter<View> = throw NotImplementedError("Must implement this method to provide a presenterBuilder for ${this::class}")
2525
}
2626

27-
interface ViewWithProvider<S: Any> : View, PresenterProvider<S>
27+
interface ViewWithProvider: View, PresenterProvider
2828

2929
enum class ViewLifecycle {
3030
ATTACHED,
@@ -49,7 +49,7 @@ val presenterEnhancer: StoreEnhancer = { storeCreator: StoreCreator ->
4949
* Attaching sets the presenter to the view.
5050
* PresenterFactory subscribes to changes in state, and passes state to presenters.
5151
*/
52-
fun <S : Any, V : ViewWithProvider<S>> presenterMiddleware(uiContext: CoroutineContext): Middleware = { store ->
52+
fun <S : Any, V : ViewWithProvider> presenterMiddleware(uiContext: CoroutineContext): Middleware = { store ->
5353

5454
val uiScope = CoroutineScope(uiContext)
5555
val subscribers = mutableMapOf<V, StoreSubscriberHolder>()
@@ -93,7 +93,7 @@ fun <S : Any, V : ViewWithProvider<S>> presenterMiddleware(uiContext: CoroutineC
9393
subscribers[view] = StoreSubscriberHolder(ViewLifecycle.DETACHED, subscribers[view]!!.subscriber)
9494
}
9595

96-
fun clearView(view: ViewWithProvider<S>) {
96+
fun clearView(view: ViewWithProvider) {
9797
Logger.d("ClearView: $view", Logger.Category.LIFECYCLE)
9898
subscribers.remove(view)
9999

common/src/commonMain/kotlin/com/willowtreeapps/common/ui/LibraryBaseView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ import com.willowtreeapps.common.AppState
44
import com.willowtreeapps.common.external.ViewWithProvider
55

66

7-
interface LibraryView : ViewWithProvider<AppState>
7+
interface LibraryView : ViewWithProvider

0 commit comments

Comments
 (0)