diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammal.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammal.kt similarity index 85% rename from android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammal.kt rename to android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammal.kt index 3d98df4bf..fa37d856f 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammal.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammal.kt @@ -5,7 +5,7 @@ * in the root directory of this source tree. */ -package com.facebook.flipper.sample.tutorial.ui +package com.facebook.flipper.sample.tutorial import android.net.Uri diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt new file mode 100644 index 000000000..1e73759bd --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ + +package com.facebook.flipper.sample.tutorial + +import androidx.core.net.toUri + +object MarineMammals { + val list = listOf( + MarineMammal( + "Polar Bear", + "https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Ursus_maritimus_4_1996-08-04.jpg/190px-Ursus_maritimus_4_1996-08-04.jpg".toUri()), + MarineMammal( + "Sea Otter", + "https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Sea_otter_cropped.jpg/220px-Sea_otter_cropped.jpg".toUri()), + MarineMammal( + "West Indian Manatee", + "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/FL_fig04.jpg/230px-FL_fig04.jpg".toUri()), + MarineMammal( + "Bottlenose Dolphin", + "https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Tursiops_truncatus_01.jpg/220px-Tursiops_truncatus_01.jpg".toUri()) + ) +} \ No newline at end of file diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/TutorialApplication.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/TutorialApplication.kt index bb84e48c2..effb6eb1d 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/TutorialApplication.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/TutorialApplication.kt @@ -15,6 +15,7 @@ import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin import com.facebook.flipper.plugins.inspector.DescriptorMapping import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin import com.facebook.flipper.plugins.litho.LithoFlipperDescriptors +import com.facebook.flipper.sample.tutorial.plugin.SeaMammalFlipperPlugin import com.facebook.litho.config.ComponentsConfiguration import com.facebook.litho.sections.config.SectionsConfiguration import com.facebook.litho.widget.SectionsDebug @@ -37,6 +38,7 @@ class TutorialApplication : Application() { flipperClient.addPlugin(InspectorFlipperPlugin(this, descriptorMapping)) flipperClient.addPlugin(FrescoFlipperPlugin()) + flipperClient.addPlugin(SeaMammalFlipperPlugin()) flipperClient.start() } } diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/plugin/SeaMammalFlipperPlugin.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/plugin/SeaMammalFlipperPlugin.kt new file mode 100644 index 000000000..45f2f2be1 --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/plugin/SeaMammalFlipperPlugin.kt @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ + +package com.facebook.flipper.sample.tutorial.plugin + +import com.facebook.flipper.core.FlipperConnection +import com.facebook.flipper.core.FlipperObject +import com.facebook.flipper.core.FlipperPlugin +import com.facebook.flipper.sample.tutorial.MarineMammals + +class SeaMammalFlipperPlugin : FlipperPlugin { + private var connection: FlipperConnection? = null + + override fun getId(): String = "sea-mammals" + + override fun onConnect(connection: FlipperConnection?) { + this.connection = connection + + MarineMammals.list.mapIndexed { index, (title, picture_url) -> + FlipperObject.Builder() + .put("id", index) + .put("title", title) + .put("url", picture_url).build() + }.forEach(this::newRow) + } + + override fun onDisconnect() { + connection = null + } + + override fun runInBackground(): Boolean = false + + private fun newRow(row: FlipperObject) { + connection?.send("newRow", row) + } +} \ No newline at end of file diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedItemCardSpec.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedItemCardSpec.kt index bb11f87ab..765ca174e 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedItemCardSpec.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedItemCardSpec.kt @@ -7,6 +7,7 @@ package com.facebook.flipper.sample.tutorial.ui +import com.facebook.flipper.sample.tutorial.MarineMammal import com.facebook.litho.Column import com.facebook.litho.Component import com.facebook.litho.ComponentContext @@ -24,7 +25,8 @@ object FeedItemCardSpec { @OnCreateLayout fun onCreateLayout( c: ComponentContext, - @Prop mammal: MarineMammal): Component = + @Prop mammal: MarineMammal + ): Component = Column.create(c) .paddingDip(VERTICAL, 8f) .paddingDip(HORIZONTAL, 16f) diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedSectionSpec.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedSectionSpec.kt index a63e93a43..572cfa60b 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedSectionSpec.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedSectionSpec.kt @@ -7,6 +7,7 @@ package com.facebook.flipper.sample.tutorial.ui +import com.facebook.flipper.sample.tutorial.MarineMammal import com.facebook.litho.annotations.FromEvent import com.facebook.litho.annotations.OnEvent import com.facebook.litho.annotations.Prop @@ -32,7 +33,8 @@ object FeedSectionSpec { @OnEvent(RenderEvent::class) fun render( c: SectionContext, - @FromEvent model: MarineMammal): RenderInfo = + @FromEvent model: MarineMammal + ): RenderInfo = ComponentRenderInfo.create() .component(FeedItemCard.create(c).mammal(model).build()) .build() diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammals.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammals.kt deleted file mode 100644 index 5d98dfbb2..000000000 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammals.kt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the LICENSE file - * in the root directory of this source tree. - */ - -package com.facebook.flipper.sample.tutorial.ui - -import androidx.core.net.toUri - -object MarineMammals { - val list = listOf( - MarineMammal("Polar Bear", "https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Ursus_maritimus_4_1996-08-04.jpg/190px-Ursus_maritimus_4_1996-08-04.jpg".toUri()), - MarineMammal("Sea Otter", "https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Sea_otter_cropped.jpg/220px-Sea_otter_cropped.jpg".toUri()), - MarineMammal("West Indian Manatee", "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/FL_fig04.jpg/230px-FL_fig04.jpg".toUri()), - MarineMammal("Bottlenose Dolphin", "https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Tursiops_truncatus_01.jpg/220px-Tursiops_truncatus_01.jpg".toUri()) - ) -} \ No newline at end of file diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammelComponentSpec.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammelComponentSpec.kt index f5ed5c14d..9e2839a1a 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammelComponentSpec.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammelComponentSpec.kt @@ -8,6 +8,7 @@ package com.facebook.flipper.sample.tutorial.ui import android.graphics.Typeface +import com.facebook.flipper.sample.tutorial.MarineMammal import com.facebook.litho.Column import com.facebook.litho.Component import com.facebook.litho.ComponentContext diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/RootComponentSpec.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/RootComponentSpec.kt index 196347b2c..1ecda766b 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/RootComponentSpec.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/RootComponentSpec.kt @@ -7,6 +7,7 @@ package com.facebook.flipper.sample.tutorial.ui +import com.facebook.flipper.sample.tutorial.MarineMammals import com.facebook.litho.Component import com.facebook.litho.ComponentContext import com.facebook.litho.annotations.LayoutSpec