diff --git a/android/tutorial/build.gradle b/android/tutorial/build.gradle new file mode 100644 index 000000000..1bd1e38ab --- /dev/null +++ b/android/tutorial/build.gradle @@ -0,0 +1,62 @@ +/* + * 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. + */ + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' + +android { + compileSdkVersion 28 + + + defaultConfig { + applicationId "com.facebook.flipper.sample.tutorial" + minSdkVersion 23 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + } + + compileOptions { + targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_1_8 + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION" + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.core:core-ktx:1.0.1' + + // Flipper + // For simplicity, we use Flipper for both debug and release builds here. + // Check out the "sample" app to see how to separate your build flavors. + implementation project(':android') + implementation deps.soloader + + // Litho + implementation deps.lithoCore + implementation deps.lithoWidget + implementation deps.lithoAnnotations + implementation deps.lithoSectionsAnnotations + implementation deps.lithoFresco + implementation deps.lithoSectionsCore + implementation deps.lithoSectionsDebug + implementation deps.lithoSectionsWidget + implementation deps.fresco + kapt deps.lithoProcessor + kapt deps.lithoSectionsProcessor +} diff --git a/android/tutorial/proguard-rules.pro b/android/tutorial/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/android/tutorial/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/android/tutorial/src/main/AndroidManifest.xml b/android/tutorial/src/main/AndroidManifest.xml new file mode 100644 index 000000000..715beeef2 --- /dev/null +++ b/android/tutorial/src/main/AndroidManifest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MainActivity.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MainActivity.kt new file mode 100644 index 000000000..f09570ecd --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MainActivity.kt @@ -0,0 +1,27 @@ +/* + * 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 + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import com.facebook.flipper.sample.tutorial.ui.RootComponent +import com.facebook.litho.LithoView +import com.facebook.litho.sections.SectionContext + +class MainActivity : AppCompatActivity() { + + private val sectionContext: SectionContext by lazy { SectionContext(this) } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView( + LithoView.create(this, RootComponent.create(sectionContext).build()) + ) + } +} 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 new file mode 100644 index 000000000..f11aed57b --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/TutorialApplication.kt @@ -0,0 +1,32 @@ +/* + * 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 + +import android.app.Application +import com.facebook.drawee.backends.pipeline.Fresco +import com.facebook.flipper.android.AndroidFlipperClient +import com.facebook.flipper.core.FlipperClient +import com.facebook.flipper.plugins.inspector.DescriptorMapping +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin +import com.facebook.flipper.plugins.litho.LithoFlipperDescriptors +import com.facebook.soloader.SoLoader + +class TutorialApplication : Application() { + override fun onCreate() { + super.onCreate() + + SoLoader.init(this, false) + Fresco.initialize(this) + val flipperClient = AndroidFlipperClient.getInstance(this) + val descriptorMapping = DescriptorMapping.withDefaults() + LithoFlipperDescriptors.addWithSections(descriptorMapping) + + flipperClient.addPlugin(InspectorFlipperPlugin(this, descriptorMapping)) + flipperClient.start() + } +} 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 new file mode 100644 index 000000000..bb11f87ab --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedItemCardSpec.kt @@ -0,0 +1,37 @@ +/* + * 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 com.facebook.litho.Column +import com.facebook.litho.Component +import com.facebook.litho.ComponentContext +import com.facebook.litho.annotations.LayoutSpec +import com.facebook.litho.annotations.OnCreateLayout +import com.facebook.litho.annotations.Prop +import com.facebook.litho.widget.Card + +import com.facebook.yoga.YogaEdge.HORIZONTAL +import com.facebook.yoga.YogaEdge.VERTICAL + +@LayoutSpec +object FeedItemCardSpec { + + @OnCreateLayout + fun onCreateLayout( + c: ComponentContext, + @Prop mammal: MarineMammal): Component = + Column.create(c) + .paddingDip(VERTICAL, 8f) + .paddingDip(HORIZONTAL, 16f) + .child( + Card.create(c) + .content( + MarineMammelComponent.create(c) + .mammal(mammal))) + .build() +} \ No newline at end of file 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 new file mode 100644 index 000000000..a63e93a43 --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/FeedSectionSpec.kt @@ -0,0 +1,39 @@ +/* + * 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 com.facebook.litho.annotations.FromEvent +import com.facebook.litho.annotations.OnEvent +import com.facebook.litho.annotations.Prop +import com.facebook.litho.sections.Children +import com.facebook.litho.sections.SectionContext +import com.facebook.litho.sections.annotations.GroupSectionSpec +import com.facebook.litho.sections.annotations.OnCreateChildren +import com.facebook.litho.sections.common.DataDiffSection +import com.facebook.litho.sections.common.RenderEvent +import com.facebook.litho.widget.ComponentRenderInfo +import com.facebook.litho.widget.RenderInfo + +@GroupSectionSpec +object FeedSectionSpec { + @OnCreateChildren + fun onCreateChildren(c: SectionContext, @Prop data: List): Children = + Children.create() + .child(DataDiffSection.create(c) + .data(data) + .renderEventHandler(FeedSection.render(c))) + .build() + + @OnEvent(RenderEvent::class) + fun render( + c: SectionContext, + @FromEvent model: MarineMammal): RenderInfo = + ComponentRenderInfo.create() + .component(FeedItemCard.create(c).mammal(model).build()) + .build() +} \ No newline at end of file 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/ui/MarineMammal.kt new file mode 100644 index 000000000..3d98df4bf --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammal.kt @@ -0,0 +1,12 @@ +/* + * 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 android.net.Uri + +data class MarineMammal(val title: String, val picture_url: Uri) \ No newline at end of file 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 new file mode 100644 index 000000000..5d98dfbb2 --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammals.kt @@ -0,0 +1,19 @@ +/* + * 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 new file mode 100644 index 000000000..f5ed5c14d --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/MarineMammelComponentSpec.kt @@ -0,0 +1,47 @@ +/* + * 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 android.graphics.Typeface +import com.facebook.litho.Column +import com.facebook.litho.Component +import com.facebook.litho.ComponentContext +import com.facebook.litho.annotations.LayoutSpec +import com.facebook.litho.annotations.OnCreateLayout +import com.facebook.litho.annotations.Prop +import com.facebook.litho.widget.Text +import com.facebook.yoga.YogaEdge.BOTTOM +import com.facebook.yoga.YogaEdge.LEFT +import com.facebook.yoga.YogaEdge.HORIZONTAL +import com.facebook.yoga.YogaPositionType.ABSOLUTE + +@LayoutSpec +object MarineMammelComponentSpec { + @OnCreateLayout + fun onCreateLayout( + c: ComponentContext, + @Prop mammal: MarineMammal + ): Component = + Column.create(c) + .child(SingleImageComponent.create(c) + .image(mammal.picture_url) + .build() + ) + .child( + Text.create(c) + .text(mammal.title) + .textStyle(Typeface.BOLD) + .textSizeDip(24f) + .backgroundColor(0xDDFFFFFF.toInt()) + .positionType(ABSOLUTE) + .positionDip(BOTTOM, 4f) + .positionDip(LEFT, 4f) + .paddingDip(HORIZONTAL, 6f)) + .build() + +} 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 new file mode 100644 index 000000000..196347b2c --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/RootComponentSpec.kt @@ -0,0 +1,27 @@ +/* + * 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 com.facebook.litho.Component +import com.facebook.litho.ComponentContext +import com.facebook.litho.annotations.LayoutSpec +import com.facebook.litho.annotations.OnCreateLayout +import com.facebook.litho.sections.SectionContext +import com.facebook.litho.sections.widget.RecyclerCollectionComponent +import com.facebook.yoga.YogaEdge + +@LayoutSpec +object RootComponentSpec { + @OnCreateLayout + fun onCreateLayout(c: ComponentContext): Component = + RecyclerCollectionComponent.create(c) + .disablePTR(true) + .section(FeedSection.create(SectionContext(c)).data(MarineMammals.list).build()) + .paddingDip(YogaEdge.TOP, 8f) + .build() +} \ No newline at end of file diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/SingleImageComponentSpec.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/SingleImageComponentSpec.kt new file mode 100644 index 000000000..69a2b28ac --- /dev/null +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/ui/SingleImageComponentSpec.kt @@ -0,0 +1,39 @@ +/* + * 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 android.net.Uri +import com.facebook.drawee.backends.pipeline.Fresco +import com.facebook.litho.Component +import com.facebook.litho.ComponentContext +import com.facebook.litho.annotations.LayoutSpec +import com.facebook.litho.annotations.OnCreateLayout +import com.facebook.litho.annotations.Prop +import com.facebook.litho.annotations.PropDefault +import com.facebook.litho.fresco.FrescoImage + +@LayoutSpec +object SingleImageComponentSpec { + + @PropDefault + val imageAspectRatio = 1f + + @OnCreateLayout + fun onCreateLayout( + c: ComponentContext, + @Prop image: Uri, + @Prop(optional = true) imageAspectRatio: Float): Component = + Fresco.newDraweeControllerBuilder() + .setUri(image) + .build().let { + FrescoImage.create(c) + .controller(it) + .imageAspectRatio(imageAspectRatio) + .build() + } +} \ No newline at end of file diff --git a/android/tutorial/src/main/res/drawable-v24/ic_launcher_foreground.xml b/android/tutorial/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 000000000..098c81685 --- /dev/null +++ b/android/tutorial/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + diff --git a/android/tutorial/src/main/res/drawable/ic_launcher_background.xml b/android/tutorial/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..fffc51dc0 --- /dev/null +++ b/android/tutorial/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/tutorial/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/tutorial/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..0f788cef8 --- /dev/null +++ b/android/tutorial/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/android/tutorial/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/tutorial/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..0f788cef8 --- /dev/null +++ b/android/tutorial/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/android/tutorial/src/main/res/mipmap-hdpi/ic_launcher.png b/android/tutorial/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..898f3ed59 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/tutorial/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/tutorial/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 000000000..dffca3601 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/android/tutorial/src/main/res/mipmap-mdpi/ic_launcher.png b/android/tutorial/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..64ba76f75 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/tutorial/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/tutorial/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 000000000..dae5e0823 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/tutorial/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/tutorial/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..e5ed46597 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/tutorial/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/tutorial/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 000000000..14ed0af35 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/android/tutorial/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/tutorial/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..b0907cac3 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/tutorial/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/tutorial/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 000000000..d8ae03154 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/android/tutorial/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/tutorial/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..2c18de9e6 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/tutorial/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/tutorial/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 000000000..beed3cdd2 Binary files /dev/null and b/android/tutorial/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/tutorial/src/main/res/values/colors.xml b/android/tutorial/src/main/res/values/colors.xml new file mode 100644 index 000000000..42b275a66 --- /dev/null +++ b/android/tutorial/src/main/res/values/colors.xml @@ -0,0 +1,13 @@ + + + + + #008577 + #00574B + #D81B60 + diff --git a/android/tutorial/src/main/res/values/strings.xml b/android/tutorial/src/main/res/values/strings.xml new file mode 100644 index 000000000..ca16ffb7b --- /dev/null +++ b/android/tutorial/src/main/res/values/strings.xml @@ -0,0 +1,10 @@ + + + + Flipper Tutorial + diff --git a/android/tutorial/src/main/res/values/styles.xml b/android/tutorial/src/main/res/values/styles.xml new file mode 100644 index 000000000..9a5f2b7f4 --- /dev/null +++ b/android/tutorial/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/tutorial/src/test/java/com/facebook/flipper/sample/tutorial/ExampleUnitTest.kt b/android/tutorial/src/test/java/com/facebook/flipper/sample/tutorial/ExampleUnitTest.kt new file mode 100644 index 000000000..9a75e1043 --- /dev/null +++ b/android/tutorial/src/test/java/com/facebook/flipper/sample/tutorial/ExampleUnitTest.kt @@ -0,0 +1,24 @@ +/* + * 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 + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/build.gradle b/build.gradle index 3dd36c1de..372a402f2 100644 --- a/build.gradle +++ b/build.gradle @@ -3,13 +3,14 @@ // This source code is licensed under the MIT license found in the LICENSE file // in the root directory of this source tree. -buildscript { +buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.4.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION" } } @@ -67,10 +68,13 @@ ext.deps = [ // Litho lithoAnnotations : "com.facebook.litho:litho-annotations:$LITHO_VERSION", lithoCore : "com.facebook.litho:litho-core:$LITHO_VERSION", + lithoSectionsAnnotations: "com.facebook.litho:litho-sections-annotations:$LITHO_VERSION", lithoSectionsDebug : "com.facebook.litho:litho-sections-debug:$LITHO_VERSION", lithoSectionsCore : "com.facebook.litho:litho-sections-core:$LITHO_VERSION", + lithoSectionsWidget : "com.facebook.litho:litho-sections-widget:$LITHO_VERSION", lithoWidget : "com.facebook.litho:litho-widget:$LITHO_VERSION", lithoProcessor : "com.facebook.litho:litho-processor:$LITHO_VERSION", + lithoSectionsProcessor: "com.facebook.litho:litho-sections-processor:$LITHO_VERSION", lithoFresco : "com.facebook.litho:litho-fresco:$LITHO_VERSION", lithoTesting : "com.facebook.litho:litho-testing:$LITHO_VERSION", // Debugging and testing diff --git a/gradle.properties b/gradle.properties index 2de8cd206..a919ab54b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,6 +14,7 @@ POM_DEVELOPER_NAME=facebook # Shared version numbers LITHO_VERSION=0.25.0 ANDROIDX_VERSION=1.0.0 +KOTLIN_VERSION=1.3.21 # Gradle internals org.gradle.internal.repository.max.retries=10 diff --git a/settings.gradle b/settings.gradle index 210a380a5..f22f63277 100644 --- a/settings.gradle +++ b/settings.gradle @@ -13,6 +13,7 @@ include ':fbjni' include ':easywsclient' include ':sonarcpp' include ':sample' +include ':tutorial' include ':doubleconversion' include ':glog' include ':libevent' @@ -24,6 +25,7 @@ project(':fbjni').projectDir = file('libs/fbjni') project(':easywsclient').projectDir = file('libs/easywsclient') project(':sonarcpp').projectDir = file('xplat') project(':sample').projectDir = file('android/sample') +project(':tutorial').projectDir = file('android/tutorial') project(':android').projectDir = file('android') project(':doubleconversion').projectDir = file('android/third-party/external/double-conversion/') project(':glog').projectDir = file('android/third-party/external/glog/')