Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changed template to make migration to v2 easier #365

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sandbox/detekt-baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
<ID>PackageNaming:DialogExampleTest.kt$package com.badoo.ribs.sandbox.rib.dialog_example</ID>
<ID>PackageNaming:DialogExampleView.kt$package com.badoo.ribs.sandbox.rib.dialog_example</ID>
<ID>PackageNaming:Dialogs.kt$package com.badoo.ribs.sandbox.rib.dialog_example.dialog</ID>
<ID>PackageNaming:FooBar.kt$package com.badoo.ribs.sandbox.rib.foo_bar</ID>
<ID>PackageNaming:FooBarRib.kt$package com.badoo.ribs.sandbox.rib.foo_bar</ID>
<ID>PackageNaming:FooBarAnalytics.kt$package com.badoo.ribs.sandbox.rib.foo_bar.analytics</ID>
<ID>PackageNaming:FooBarBuilder.kt$package com.badoo.ribs.sandbox.rib.foo_bar</ID>
<ID>PackageNaming:FooBarFeature.kt$package com.badoo.ribs.sandbox.rib.foo_bar.feature</ID>
Expand Down
10 changes: 5 additions & 5 deletions templates/release-0.27/detekt-baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
<ID>NotImplementedDeclaration:NewsToOutput.kt$NewsToOutput$TODO("Implement FooBarNewsToOutput mapping")</ID>
<ID>NotImplementedDeclaration:StateToViewModel.kt$StateToViewModel$TODO("Implement StateToViewModel mapping")</ID>
<ID>NotImplementedDeclaration:ViewEventToWish.kt$ViewEventToWish$TODO("Implement FooBarViewEventToWish mapping")</ID>
<ID>PackageNaming:FooBar.kt$package com.badoo.ribs.template.leaf.foo_bar</ID>
<ID>PackageNaming:FooBar.kt$package com.badoo.ribs.template.leaf_view_only.foo_bar</ID>
<ID>PackageNaming:FooBar.kt$package com.badoo.ribs.template.node.foo_bar</ID>
<ID>PackageNaming:FooBar.kt$package com.badoo.ribs.template.node_dagger.foo_bar</ID>
<ID>PackageNaming:FooBar.kt$package com.badoo.ribs.template.node_dagger_build_param.foo_bar</ID>
<ID>PackageNaming:FooBarRib.kt$package com.badoo.ribs.template.leaf.foo_bar</ID>
<ID>PackageNaming:FooBarRib.kt$package com.badoo.ribs.template.leaf_view_only.foo_bar</ID>
<ID>PackageNaming:FooBarRib.kt$package com.badoo.ribs.template.node.foo_bar</ID>
<ID>PackageNaming:FooBarRib.kt$package com.badoo.ribs.template.node_dagger.foo_bar</ID>
<ID>PackageNaming:FooBarRib.kt$package com.badoo.ribs.template.node_dagger_build_param.foo_bar</ID>
<ID>PackageNaming:FooBarAnalytics.kt$package com.badoo.ribs.template.leaf.foo_bar.analytics</ID>
<ID>PackageNaming:FooBarAnalytics.kt$package com.badoo.ribs.template.node.foo_bar.analytics</ID>
<ID>PackageNaming:FooBarAnalytics.kt$package com.badoo.ribs.template.node_dagger.foo_bar.analytics</ID>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.badoo.ribs.template.leaf.foo_bar
package com.badoo.ribs.template.leaf.foo_bar.v1

import android.os.Bundle
import com.badoo.ribs.test.RibsRule
import com.badoo.ribs.test.RibTestActivity
import com.badoo.ribs.core.modality.BuildContext.Companion.root
import com.badoo.ribs.template.leaf.foo_bar.common.FooBar
import org.junit.Rule
import org.junit.Test

Expand All @@ -13,7 +14,7 @@ class FooBarTest {
val ribsRule = RibsRule { activity, savedInstanceState -> buildRib(activity, savedInstanceState) }

// TODO use rib for interactions based on it implementing Connectable<Input, Output>
lateinit var rib: FooBar
lateinit var rib: FooBarRib

private fun buildRib(ribTestActivity: RibTestActivity, savedInstanceState: Bundle?) =
FooBarBuilder(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.badoo.ribs.template.node.foo_bar
package com.badoo.ribs.template.node.foo_bar.v1

import android.os.Bundle
import com.badoo.ribs.test.RibsRule
import com.badoo.ribs.test.RibTestActivity
import com.badoo.ribs.core.modality.BuildContext.Companion.root
import com.badoo.ribs.template.node.foo_bar.common.FooBar
import org.junit.Rule
import org.junit.Test

Expand All @@ -13,7 +14,7 @@ class FooBarTest {
val ribsRule = RibsRule { activity, savedInstanceState -> buildRib(activity, savedInstanceState) }

// TODO use rib for interactions based on it implementing Connectable<Input, Output>
lateinit var rib: FooBar
lateinit var rib: FooBarRib

private fun buildRib(ribTestActivity: RibTestActivity, savedInstanceState: Bundle?) =
FooBarBuilder(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.badoo.ribs.template.leaf.foo_bar.common

interface FooBar {

interface Dependency

sealed class Input

sealed class Output

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.badoo.ribs.template.node.foo_bar.analytics
package com.badoo.ribs.template.leaf.foo_bar.common.analytics

import com.badoo.ribs.template.node.foo_bar.FooBarView
import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView
import io.reactivex.functions.Consumer

internal object FooBarAnalytics : Consumer<FooBarAnalytics.Event> {
Expand All @@ -9,7 +9,7 @@ internal object FooBarAnalytics : Consumer<FooBarAnalytics.Event> {
data class ViewEvent(val event: FooBarView.Event) : Event()
}

override fun accept(event: FooBarAnalytics.Event) {
override fun accept(event: Event) {
// TODO Implement tracking
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.badoo.ribs.template.leaf.foo_bar.feature
package com.badoo.ribs.template.leaf.foo_bar.common.feature

import com.badoo.mvicore.element.Actor
import com.badoo.mvicore.element.Bootstrapper
import com.badoo.mvicore.element.NewsPublisher
import com.badoo.mvicore.element.Reducer
import com.badoo.mvicore.feature.ActorReducerFeature
import com.badoo.ribs.template.leaf.foo_bar.feature.FooBarFeature.Effect
import com.badoo.ribs.template.leaf.foo_bar.feature.FooBarFeature.News
import com.badoo.ribs.template.leaf.foo_bar.feature.FooBarFeature.State
import com.badoo.ribs.template.leaf.foo_bar.feature.FooBarFeature.Wish
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.Effect
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.News
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.State
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.Wish
import io.reactivex.Observable
import io.reactivex.Observable.empty

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.badoo.ribs.template.leaf.foo_bar.common.mapper

import com.badoo.ribs.template.leaf.foo_bar.common.FooBar.Input
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.Wish

internal object InputToWish : (Input) -> Wish? {

override fun invoke(event: Input): Wish? =
TODO("Implement FooBarInputToWish mapping")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.badoo.ribs.template.leaf.foo_bar.common.mapper

import com.badoo.ribs.template.leaf.foo_bar.common.FooBar.Output
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.News

internal object NewsToOutput : (News) -> Output? {

override fun invoke(news: News): Output? =
TODO("Implement FooBarNewsToOutput mapping")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.badoo.ribs.template.leaf.foo_bar.common.mapper

import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView.ViewModel
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.State

internal object StateToViewModel : (State) -> ViewModel {

override fun invoke(state: State): ViewModel =
TODO("Implement StateToViewModel mapping")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.badoo.ribs.template.leaf.foo_bar.common.mapper

import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView.Event
import com.badoo.ribs.template.leaf.foo_bar.common.analytics.FooBarAnalytics
import com.badoo.ribs.template.leaf.foo_bar.common.analytics.FooBarAnalytics.Event.ViewEvent

internal object ViewEventToAnalyticsEvent : (Event) -> FooBarAnalytics.Event? {

override fun invoke(event: Event): FooBarAnalytics.Event? =
ViewEvent(event)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.badoo.ribs.template.leaf.foo_bar.common.mapper

import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView.Event
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature.Wish

internal object ViewEventToWish : (Event) -> Wish? {

override fun invoke(event: Event): Wish? =
TODO("Implement FooBarViewEventToWish mapping")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.badoo.ribs.template.leaf.foo_bar.common.view

import com.badoo.ribs.core.view.RibView
import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView.Event
import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView.ViewModel
import io.reactivex.ObservableSource
import io.reactivex.functions.Consumer


interface FooBarView : RibView,
ObservableSource<Event>,
Consumer<ViewModel> {

sealed class Event

data class ViewModel(
val i: Int = 0
)
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package com.badoo.ribs.template.leaf.foo_bar
package com.badoo.ribs.template.leaf.foo_bar.v1

import com.badoo.ribs.builder.SimpleBuilder
import com.badoo.ribs.core.modality.BuildParams
import com.badoo.ribs.rx2.disposables
import com.badoo.ribs.template.leaf.foo_bar.feature.FooBarFeature
import com.badoo.ribs.template.leaf.foo_bar.common.FooBar
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature

class FooBarBuilder(
private val dependency: FooBar.Dependency
) : SimpleBuilder<FooBar>() {
) : SimpleBuilder<FooBarRib>() {

override fun build(buildParams: BuildParams<Nothing?>): FooBar {
val customisation = buildParams.getOrDefault(FooBar.Customisation())
override fun build(buildParams: BuildParams<Nothing?>): FooBarRib {
val customisation = buildParams.getOrDefault(FooBarRib.Customisation())
val feature = feature()
val interactor = interactor(buildParams, feature)

Expand All @@ -30,7 +31,7 @@ class FooBarBuilder(

private fun node(
buildParams: BuildParams<Nothing?>,
customisation: FooBar.Customisation,
customisation: FooBarRib.Customisation,
feature: FooBarFeature,
interactor: FooBarInteractor
) = FooBarNode(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
package com.badoo.ribs.template.leaf.foo_bar
package com.badoo.ribs.template.leaf.foo_bar.v1

import androidx.lifecycle.Lifecycle
import com.badoo.mvicore.android.lifecycle.createDestroy
import com.badoo.mvicore.android.lifecycle.startStop
import com.badoo.binder.using
import com.badoo.ribs.clienthelper.interactor.Interactor
import com.badoo.ribs.core.modality.BuildParams
import com.badoo.ribs.template.leaf.foo_bar.analytics.FooBarAnalytics
import com.badoo.ribs.template.leaf.foo_bar.feature.FooBarFeature
import com.badoo.ribs.template.leaf.foo_bar.mapper.InputToWish
import com.badoo.ribs.template.leaf.foo_bar.mapper.NewsToOutput
import com.badoo.ribs.template.leaf.foo_bar.mapper.StateToViewModel
import com.badoo.ribs.template.leaf.foo_bar.mapper.ViewEventToAnalyticsEvent
import com.badoo.ribs.template.leaf.foo_bar.mapper.ViewEventToWish
import com.badoo.ribs.template.leaf.foo_bar.common.analytics.FooBarAnalytics
import com.badoo.ribs.template.leaf.foo_bar.common.feature.FooBarFeature
import com.badoo.ribs.template.leaf.foo_bar.common.mapper.InputToWish
import com.badoo.ribs.template.leaf.foo_bar.common.mapper.NewsToOutput
import com.badoo.ribs.template.leaf.foo_bar.common.mapper.StateToViewModel
import com.badoo.ribs.template.leaf.foo_bar.common.mapper.ViewEventToAnalyticsEvent
import com.badoo.ribs.template.leaf.foo_bar.common.mapper.ViewEventToWish
import com.badoo.ribs.template.leaf.foo_bar.common.view.FooBarView

internal class FooBarInteractor(
buildParams: BuildParams<*>,
private val feature: FooBarFeature
) : Interactor<FooBar, FooBarView>(
) : Interactor<FooBarRib, FooBarView>(
buildParams = buildParams
) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.badoo.ribs.template.leaf.foo_bar
package com.badoo.ribs.template.leaf.foo_bar.v1

import com.badoo.ribs.rx2.clienthelper.connector.Connectable
import com.badoo.ribs.rx2.clienthelper.connector.NodeConnector
import com.badoo.ribs.core.modality.BuildParams
import com.badoo.ribs.core.plugin.Plugin
import com.badoo.ribs.core.view.ViewFactory
import com.badoo.ribs.template.leaf.foo_bar.FooBar.Input
import com.badoo.ribs.template.leaf.foo_bar.FooBar.Output
import com.badoo.ribs.template.leaf.foo_bar.common.FooBar.Input
import com.badoo.ribs.template.leaf.foo_bar.common.FooBar.Output
import com.badoo.ribs.rx2.workflows.RxWorkflowNode
import io.reactivex.Single

Expand All @@ -19,9 +19,9 @@ class FooBarNode internal constructor(
buildParams = buildParams,
viewFactory = viewFactory,
plugins = plugins
), FooBar, Connectable<Input, Output> by connector {
), FooBarRib, Connectable<Input, Output> by connector {

override fun businessLogicOperation(): Single<FooBar> =
override fun businessLogicOperation(): Single<FooBarRib> =
executeWorkflow {
// todo e.g. push wish to feature / trigger input / output
// feature.accept()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
package com.badoo.ribs.template.leaf.foo_bar
package com.badoo.ribs.template.leaf.foo_bar.v1

import com.badoo.ribs.rx2.clienthelper.connector.Connectable
import com.badoo.ribs.core.Rib
import com.badoo.ribs.core.customisation.RibCustomisation
import com.badoo.ribs.template.leaf.foo_bar.FooBar.Input
import com.badoo.ribs.template.leaf.foo_bar.FooBar.Output
import com.badoo.ribs.template.leaf.foo_bar.common.FooBar.Input
import com.badoo.ribs.template.leaf.foo_bar.common.FooBar.Output
import io.reactivex.Single

interface FooBar : Rib, Connectable<Input, Output> {

interface Dependency

sealed class Input

sealed class Output
interface FooBarRib : Rib, Connectable<Input, Output> {

class Customisation(
val viewFactory: FooBarView.Factory = FooBarViewImpl.Factory()
Expand All @@ -22,7 +16,7 @@ interface FooBar : Rib, Connectable<Input, Output> {
// Workflow
// todo: rename rather than delete, and add more
// todo: expose all meaningful operations
fun businessLogicOperation(): Single<FooBar>
fun businessLogicOperation(): Single<FooBarRib>

// todo: expose all possible children (even permanent parts), or remove if there's none
// fun attachChild1(): Single<Child>
Expand Down
Loading