From 79e3abf6ebfc61b43f7c9079b9966b63040d1dd8 Mon Sep 17 00:00:00 2001 From: Alexander Oprisnik Date: Tue, 27 Jun 2023 09:28:59 -0700 Subject: [PATCH] Migrate Flipper samples to use Fresco Vito (#4861) Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/4861 Reviewed By: steelrooter Differential Revision: D46149846 fbshipit-source-id: 3b2a89da2a4e5ea2ee325e035e793ee18c5ce86d --- android/sample/build.gradle | 3 +++ .../flipper/sample/FlipperSampleApplication.java | 2 ++ .../facebook/flipper/sample/RootComponentSpec.java | 12 ++++-------- android/tutorial/build.gradle | 4 ++++ .../flipper/sample/tutorial/TutorialApplication.kt | 2 ++ .../sample/tutorial/ui/SingleImageComponentSpec.kt | 8 ++------ build.gradle | 10 +++++++--- 7 files changed, 24 insertions(+), 17 deletions(-) diff --git a/android/sample/build.gradle b/android/sample/build.gradle index 10c2e8311..784789994 100644 --- a/android/sample/build.gradle +++ b/android/sample/build.gradle @@ -87,6 +87,9 @@ dependencies { implementation deps.soloader implementation deps.okhttp3 implementation deps.fresco + implementation deps.frescoUiCommon + implementation deps.frescoVito + implementation deps.frescoVitoLitho debugImplementation deps.flipperFrescoPlugin // Integration test diff --git a/android/sample/src/main/java/com/facebook/flipper/sample/FlipperSampleApplication.java b/android/sample/src/main/java/com/facebook/flipper/sample/FlipperSampleApplication.java index b8444ec60..0a1076f07 100644 --- a/android/sample/src/main/java/com/facebook/flipper/sample/FlipperSampleApplication.java +++ b/android/sample/src/main/java/com/facebook/flipper/sample/FlipperSampleApplication.java @@ -14,6 +14,7 @@ import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.flipper.android.AndroidFlipperClient; import com.facebook.flipper.core.FlipperClient; import com.facebook.flipper.sample.network.NetworkClient; +import com.facebook.fresco.vito.init.FrescoVito; import com.facebook.soloader.SoLoader; public class FlipperSampleApplication extends Application { @@ -22,6 +23,7 @@ public class FlipperSampleApplication extends Application { super.onCreate(); SoLoader.init(this, false); Fresco.initialize(this); + FrescoVito.initialize(); final FlipperClient client = AndroidFlipperClient.getInstance(this); assert client != null; diff --git a/android/sample/src/main/java/com/facebook/flipper/sample/RootComponentSpec.java b/android/sample/src/main/java/com/facebook/flipper/sample/RootComponentSpec.java index c38bf733d..5c8a703a1 100644 --- a/android/sample/src/main/java/com/facebook/flipper/sample/RootComponentSpec.java +++ b/android/sample/src/main/java/com/facebook/flipper/sample/RootComponentSpec.java @@ -8,10 +8,10 @@ package com.facebook.flipper.sample; import android.content.Intent; -import com.facebook.drawee.backends.pipeline.Fresco; -import com.facebook.drawee.interfaces.DraweeController; +import android.net.Uri; import com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity; import com.facebook.flipper.sample.network.NetworkClient; +import com.facebook.fresco.vito.litho.FrescoVitoImage2; import com.facebook.litho.ClickEvent; import com.facebook.litho.Column; import com.facebook.litho.Component; @@ -22,7 +22,6 @@ import com.facebook.litho.annotations.OnCreateLayout; import com.facebook.litho.annotations.OnEvent; import com.facebook.litho.annotations.OnUpdateState; import com.facebook.litho.annotations.State; -import com.facebook.litho.fresco.FrescoImage; import com.facebook.litho.widget.Text; import com.facebook.litho.widget.VerticalScroll; import com.facebook.yoga.YogaEdge; @@ -32,9 +31,6 @@ public class RootComponentSpec { @OnCreateLayout static Component onCreateLayout(final ComponentContext c, @State boolean displayImage) { - final DraweeController controller = - Fresco.newDraweeControllerBuilder().setUri("https://fbflipper.com/img/icon.png").build(); - Column col = Column.create(c) .child( @@ -129,8 +125,8 @@ public class RootComponentSpec { .textSizeSp(20) .clickHandler(RootComponent.triggerCrash(c))) .child( - FrescoImage.create(c) - .controller(controller) + FrescoVitoImage2.create(c) + .uri(Uri.parse("https://fbflipper.com/img/icon.png")) .marginDip(YogaEdge.ALL, 10) .widthDip(150) .heightDip(150)) diff --git a/android/tutorial/build.gradle b/android/tutorial/build.gradle index 8bf1a54e7..8fd399071 100644 --- a/android/tutorial/build.gradle +++ b/android/tutorial/build.gradle @@ -67,6 +67,10 @@ dependencies { implementation deps.lithoSectionsDebug implementation deps.lithoSectionsWidget implementation deps.fresco + implementation deps.frescoUiCommon + implementation deps.frescoVito + implementation deps.frescoVitoCore + implementation deps.frescoVitoLitho kapt deps.lithoProcessor kapt deps.lithoSectionsProcessor } 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 870f64fad..5c835082d 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 @@ -14,6 +14,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.sample.tutorial.plugin.SeaMammalFlipperPlugin +import com.facebook.fresco.vito.init.FrescoVito import com.facebook.litho.config.ComponentsConfiguration import com.facebook.litho.editor.flipper.LithoFlipperDescriptors import com.facebook.soloader.SoLoader @@ -24,6 +25,7 @@ class TutorialApplication : Application() { SoLoader.init(this, false) Fresco.initialize(this) + FrescoVito.initialize() // Normally, you would want to make these dependent on BuildConfig.DEBUG. ComponentsConfiguration.isDebugModeEnabled = true 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 index 08b836ba0..5111aedd2 100644 --- 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 @@ -8,14 +8,13 @@ package com.facebook.flipper.sample.tutorial.ui import android.net.Uri -import com.facebook.drawee.backends.pipeline.Fresco +import com.facebook.fresco.vito.litho.FrescoVitoImage2 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 { @@ -27,8 +26,5 @@ object SingleImageComponentSpec { 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() - } + ): Component = FrescoVitoImage2.create(c).uri(image).imageAspectRatio(imageAspectRatio).build() } diff --git a/build.gradle b/build.gradle index 3bb091de8..00b9e307f 100644 --- a/build.gradle +++ b/build.gradle @@ -110,8 +110,12 @@ ext.deps = [ testCore : 'androidx.test:core:1.4.0', testRules : 'androidx.test:rules:1.5.0', // Plugin dependencies - flipperFrescoPlugin: 'com.facebook.flipper:flipper-fresco-plugin:0.182.0', + flipperFrescoPlugin: 'com.facebook.fresco:flipper-fresco-plugin:3.0.0', frescoFlipper : 'com.facebook.fresco:flipper:3.0.0', - frescoStetho : 'com.facebook.fresco:stetho:2.6.0', - fresco : 'com.facebook.fresco:fresco:2.6.0', + frescoStetho : 'com.facebook.fresco:stetho:3.0.0', + fresco : 'com.facebook.fresco:fresco:3.0.0', + frescoUiCommon : 'com.facebook.fresco:ui-common:3.0.0', + frescoVito : 'com.facebook.fresco:vito:3.0.0', + frescoVitoCore : 'com.facebook.fresco:vito-core:3.0.0', + frescoVitoLitho : 'com.facebook.fresco:vito-litho:3.0.0', ]