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
This commit is contained in:
Alexander Oprisnik
2023-06-27 09:28:59 -07:00
committed by Facebook GitHub Bot
parent 44925c687e
commit 79e3abf6eb
7 changed files with 24 additions and 17 deletions

View File

@@ -87,6 +87,9 @@ dependencies {
implementation deps.soloader implementation deps.soloader
implementation deps.okhttp3 implementation deps.okhttp3
implementation deps.fresco implementation deps.fresco
implementation deps.frescoUiCommon
implementation deps.frescoVito
implementation deps.frescoVitoLitho
debugImplementation deps.flipperFrescoPlugin debugImplementation deps.flipperFrescoPlugin
// Integration test // Integration test

View File

@@ -14,6 +14,7 @@ import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.flipper.android.AndroidFlipperClient; import com.facebook.flipper.android.AndroidFlipperClient;
import com.facebook.flipper.core.FlipperClient; import com.facebook.flipper.core.FlipperClient;
import com.facebook.flipper.sample.network.NetworkClient; import com.facebook.flipper.sample.network.NetworkClient;
import com.facebook.fresco.vito.init.FrescoVito;
import com.facebook.soloader.SoLoader; import com.facebook.soloader.SoLoader;
public class FlipperSampleApplication extends Application { public class FlipperSampleApplication extends Application {
@@ -22,6 +23,7 @@ public class FlipperSampleApplication extends Application {
super.onCreate(); super.onCreate();
SoLoader.init(this, false); SoLoader.init(this, false);
Fresco.initialize(this); Fresco.initialize(this);
FrescoVito.initialize();
final FlipperClient client = AndroidFlipperClient.getInstance(this); final FlipperClient client = AndroidFlipperClient.getInstance(this);
assert client != null; assert client != null;

View File

@@ -8,10 +8,10 @@
package com.facebook.flipper.sample; package com.facebook.flipper.sample;
import android.content.Intent; import android.content.Intent;
import com.facebook.drawee.backends.pipeline.Fresco; import android.net.Uri;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity; import com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity;
import com.facebook.flipper.sample.network.NetworkClient; import com.facebook.flipper.sample.network.NetworkClient;
import com.facebook.fresco.vito.litho.FrescoVitoImage2;
import com.facebook.litho.ClickEvent; import com.facebook.litho.ClickEvent;
import com.facebook.litho.Column; import com.facebook.litho.Column;
import com.facebook.litho.Component; 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.OnEvent;
import com.facebook.litho.annotations.OnUpdateState; import com.facebook.litho.annotations.OnUpdateState;
import com.facebook.litho.annotations.State; import com.facebook.litho.annotations.State;
import com.facebook.litho.fresco.FrescoImage;
import com.facebook.litho.widget.Text; import com.facebook.litho.widget.Text;
import com.facebook.litho.widget.VerticalScroll; import com.facebook.litho.widget.VerticalScroll;
import com.facebook.yoga.YogaEdge; import com.facebook.yoga.YogaEdge;
@@ -32,9 +31,6 @@ public class RootComponentSpec {
@OnCreateLayout @OnCreateLayout
static Component onCreateLayout(final ComponentContext c, @State boolean displayImage) { 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 col =
Column.create(c) Column.create(c)
.child( .child(
@@ -129,8 +125,8 @@ public class RootComponentSpec {
.textSizeSp(20) .textSizeSp(20)
.clickHandler(RootComponent.triggerCrash(c))) .clickHandler(RootComponent.triggerCrash(c)))
.child( .child(
FrescoImage.create(c) FrescoVitoImage2.create(c)
.controller(controller) .uri(Uri.parse("https://fbflipper.com/img/icon.png"))
.marginDip(YogaEdge.ALL, 10) .marginDip(YogaEdge.ALL, 10)
.widthDip(150) .widthDip(150)
.heightDip(150)) .heightDip(150))

View File

@@ -67,6 +67,10 @@ dependencies {
implementation deps.lithoSectionsDebug implementation deps.lithoSectionsDebug
implementation deps.lithoSectionsWidget implementation deps.lithoSectionsWidget
implementation deps.fresco implementation deps.fresco
implementation deps.frescoUiCommon
implementation deps.frescoVito
implementation deps.frescoVitoCore
implementation deps.frescoVitoLitho
kapt deps.lithoProcessor kapt deps.lithoProcessor
kapt deps.lithoSectionsProcessor kapt deps.lithoSectionsProcessor
} }

View File

@@ -14,6 +14,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.sample.tutorial.plugin.SeaMammalFlipperPlugin 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.config.ComponentsConfiguration
import com.facebook.litho.editor.flipper.LithoFlipperDescriptors import com.facebook.litho.editor.flipper.LithoFlipperDescriptors
import com.facebook.soloader.SoLoader import com.facebook.soloader.SoLoader
@@ -24,6 +25,7 @@ class TutorialApplication : Application() {
SoLoader.init(this, false) SoLoader.init(this, false)
Fresco.initialize(this) Fresco.initialize(this)
FrescoVito.initialize()
// Normally, you would want to make these dependent on BuildConfig.DEBUG. // Normally, you would want to make these dependent on BuildConfig.DEBUG.
ComponentsConfiguration.isDebugModeEnabled = true ComponentsConfiguration.isDebugModeEnabled = true

View File

@@ -8,14 +8,13 @@
package com.facebook.flipper.sample.tutorial.ui package com.facebook.flipper.sample.tutorial.ui
import android.net.Uri 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.Component
import com.facebook.litho.ComponentContext import com.facebook.litho.ComponentContext
import com.facebook.litho.annotations.LayoutSpec import com.facebook.litho.annotations.LayoutSpec
import com.facebook.litho.annotations.OnCreateLayout import com.facebook.litho.annotations.OnCreateLayout
import com.facebook.litho.annotations.Prop import com.facebook.litho.annotations.Prop
import com.facebook.litho.annotations.PropDefault import com.facebook.litho.annotations.PropDefault
import com.facebook.litho.fresco.FrescoImage
@LayoutSpec @LayoutSpec
object SingleImageComponentSpec { object SingleImageComponentSpec {
@@ -27,8 +26,5 @@ object SingleImageComponentSpec {
c: ComponentContext, c: ComponentContext,
@Prop image: Uri, @Prop image: Uri,
@Prop(optional = true) imageAspectRatio: Float @Prop(optional = true) imageAspectRatio: Float
): Component = ): Component = FrescoVitoImage2.create(c).uri(image).imageAspectRatio(imageAspectRatio).build()
Fresco.newDraweeControllerBuilder().setUri(image).build().let {
FrescoImage.create(c).controller(it).imageAspectRatio(imageAspectRatio).build()
}
} }

View File

@@ -110,8 +110,12 @@ ext.deps = [
testCore : 'androidx.test:core:1.4.0', testCore : 'androidx.test:core:1.4.0',
testRules : 'androidx.test:rules:1.5.0', testRules : 'androidx.test:rules:1.5.0',
// Plugin dependencies // 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', frescoFlipper : 'com.facebook.fresco:flipper:3.0.0',
frescoStetho : 'com.facebook.fresco:stetho:2.6.0', frescoStetho : 'com.facebook.fresco:stetho:3.0.0',
fresco : 'com.facebook.fresco:fresco:2.6.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',
] ]