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.okhttp3
implementation deps.fresco
implementation deps.frescoUiCommon
implementation deps.frescoVito
implementation deps.frescoVitoLitho
debugImplementation deps.flipperFrescoPlugin
// 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.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;

View File

@@ -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))

View File

@@ -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
}

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.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

View File

@@ -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()
}

View File

@@ -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',
]