Add a basic android plugin
Summary: Moves some things around for package access reasons. Otherwise sets up the simplest possible plugin that just sends over all the data it shows in the UI on connection time. Is that a good idea? You tell me. JS part coming with the next diff. Reviewed By: jknoxville Differential Revision: D15182282 fbshipit-source-id: da5c1de43dfaee273b4eecc0f4512bef872a0ac6
This commit is contained in:
committed by
Facebook Github Bot
parent
c3efb7b45e
commit
18af62ebfd
@@ -5,7 +5,7 @@
|
|||||||
* in the root directory of this source tree.
|
* 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
|
import android.net.Uri
|
||||||
|
|
||||||
@@ -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())
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@ import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin
|
|||||||
import com.facebook.flipper.plugins.inspector.DescriptorMapping
|
import com.facebook.flipper.plugins.inspector.DescriptorMapping
|
||||||
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin
|
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin
|
||||||
import com.facebook.flipper.plugins.litho.LithoFlipperDescriptors
|
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.config.ComponentsConfiguration
|
||||||
import com.facebook.litho.sections.config.SectionsConfiguration
|
import com.facebook.litho.sections.config.SectionsConfiguration
|
||||||
import com.facebook.litho.widget.SectionsDebug
|
import com.facebook.litho.widget.SectionsDebug
|
||||||
@@ -37,6 +38,7 @@ class TutorialApplication : Application() {
|
|||||||
|
|
||||||
flipperClient.addPlugin(InspectorFlipperPlugin(this, descriptorMapping))
|
flipperClient.addPlugin(InspectorFlipperPlugin(this, descriptorMapping))
|
||||||
flipperClient.addPlugin(FrescoFlipperPlugin())
|
flipperClient.addPlugin(FrescoFlipperPlugin())
|
||||||
|
flipperClient.addPlugin(SeaMammalFlipperPlugin())
|
||||||
flipperClient.start()
|
flipperClient.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
package com.facebook.flipper.sample.tutorial.ui
|
package com.facebook.flipper.sample.tutorial.ui
|
||||||
|
|
||||||
|
import com.facebook.flipper.sample.tutorial.MarineMammal
|
||||||
import com.facebook.litho.Column
|
import com.facebook.litho.Column
|
||||||
import com.facebook.litho.Component
|
import com.facebook.litho.Component
|
||||||
import com.facebook.litho.ComponentContext
|
import com.facebook.litho.ComponentContext
|
||||||
@@ -24,7 +25,8 @@ object FeedItemCardSpec {
|
|||||||
@OnCreateLayout
|
@OnCreateLayout
|
||||||
fun onCreateLayout(
|
fun onCreateLayout(
|
||||||
c: ComponentContext,
|
c: ComponentContext,
|
||||||
@Prop mammal: MarineMammal): Component =
|
@Prop mammal: MarineMammal
|
||||||
|
): Component =
|
||||||
Column.create(c)
|
Column.create(c)
|
||||||
.paddingDip(VERTICAL, 8f)
|
.paddingDip(VERTICAL, 8f)
|
||||||
.paddingDip(HORIZONTAL, 16f)
|
.paddingDip(HORIZONTAL, 16f)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
package com.facebook.flipper.sample.tutorial.ui
|
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.FromEvent
|
||||||
import com.facebook.litho.annotations.OnEvent
|
import com.facebook.litho.annotations.OnEvent
|
||||||
import com.facebook.litho.annotations.Prop
|
import com.facebook.litho.annotations.Prop
|
||||||
@@ -32,7 +33,8 @@ object FeedSectionSpec {
|
|||||||
@OnEvent(RenderEvent::class)
|
@OnEvent(RenderEvent::class)
|
||||||
fun render(
|
fun render(
|
||||||
c: SectionContext,
|
c: SectionContext,
|
||||||
@FromEvent model: MarineMammal): RenderInfo =
|
@FromEvent model: MarineMammal
|
||||||
|
): RenderInfo =
|
||||||
ComponentRenderInfo.create()
|
ComponentRenderInfo.create()
|
||||||
.component(FeedItemCard.create(c).mammal(model).build())
|
.component(FeedItemCard.create(c).mammal(model).build())
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -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())
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
package com.facebook.flipper.sample.tutorial.ui
|
package com.facebook.flipper.sample.tutorial.ui
|
||||||
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
|
import com.facebook.flipper.sample.tutorial.MarineMammal
|
||||||
import com.facebook.litho.Column
|
import com.facebook.litho.Column
|
||||||
import com.facebook.litho.Component
|
import com.facebook.litho.Component
|
||||||
import com.facebook.litho.ComponentContext
|
import com.facebook.litho.ComponentContext
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
package com.facebook.flipper.sample.tutorial.ui
|
package com.facebook.flipper.sample.tutorial.ui
|
||||||
|
|
||||||
|
import com.facebook.flipper.sample.tutorial.MarineMammals
|
||||||
import com.facebook.litho.Component
|
import com.facebook.litho.Component
|
||||||
import com.facebook.litho.ComponentContext
|
import com.facebook.litho.ComponentContext
|
||||||
import com.facebook.litho.annotations.LayoutSpec
|
import com.facebook.litho.annotations.LayoutSpec
|
||||||
|
|||||||
Reference in New Issue
Block a user