Set up Fresco in sample app

Summary:
This looks bad. There are two things I want to follow up on in future
diffs before landing this:

- Make loading the image conditional by adding another button.
- Add a default constructor to the plugin that avoids this crazy bit of boilerplate.

Reviewed By: oprisnik

Differential Revision: D14165569

fbshipit-source-id: 25c5fbaee32e72c6469979cda694cc9f13a92166
This commit is contained in:
Pascal Hartig
2019-02-22 02:46:51 -08:00
committed by Facebook Github Bot
parent 2067e5e1fc
commit d371a211a8
4 changed files with 39 additions and 1 deletions

View File

@@ -9,10 +9,16 @@ package com.facebook.flipper.sample;
import android.app.Application;
import android.content.Context;
import androidx.annotation.Nullable;
import com.facebook.common.memory.manager.NoOpDebugMemoryManager;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.flipper.android.AndroidFlipperClient;
import com.facebook.flipper.core.FlipperArray;
import com.facebook.flipper.core.FlipperClient;
import com.facebook.flipper.perflogger.NoOpFlipperPerfLogger;
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
import com.facebook.flipper.plugins.example.ExampleFlipperPlugin;
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
import com.facebook.flipper.plugins.fresco.objecthelper.FlipperObjectHelper;
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
import com.facebook.flipper.plugins.leakcanary.LeakCanaryFlipperPlugin;
@@ -21,6 +27,7 @@ import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin.SharedPreferencesDescriptor;
import com.facebook.imagepipeline.debug.FlipperImageTracker;
import com.facebook.litho.config.ComponentsConfiguration;
import com.facebook.soloader.SoLoader;
import java.util.Arrays;
@@ -35,6 +42,7 @@ public class FlipperSampleApplication extends Application {
public void onCreate() {
super.onCreate();
SoLoader.init(this, false);
Fresco.initialize(this);
final FlipperClient client = AndroidFlipperClient.getInstance(this);
final DescriptorMapping descriptorMapping = DescriptorMapping.withDefaults();
@@ -63,6 +71,19 @@ public class FlipperSampleApplication extends Application {
new SharedPreferencesDescriptor("sample", Context.MODE_PRIVATE),
new SharedPreferencesDescriptor("other_sample", Context.MODE_PRIVATE))));
client.addPlugin(new LeakCanaryFlipperPlugin());
client.addPlugin(
new FrescoFlipperPlugin(
new FlipperImageTracker(),
Fresco.getImagePipelineFactory().getPlatformBitmapFactory(),
new FlipperObjectHelper() {
@Override
public FlipperArray fromCallerContext(Object callerContext) {
return null;
}
},
new NoOpDebugMemoryManager(),
new NoOpFlipperPerfLogger(),
null));
client.addPlugin(new ExampleFlipperPlugin());
client.addPlugin(CrashReporterPlugin.getInstance());
client.start();

View File

@@ -9,6 +9,8 @@ package com.facebook.flipper.sample;
import android.content.Intent;
import android.util.Log;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.flipper.android.AndroidFlipperClient;
import com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity;
import com.facebook.flipper.core.FlipperClient;
@@ -21,6 +23,7 @@ import com.facebook.litho.ComponentContext;
import com.facebook.litho.annotations.LayoutSpec;
import com.facebook.litho.annotations.OnCreateLayout;
import com.facebook.litho.annotations.OnEvent;
import com.facebook.litho.fresco.FrescoImage;
import com.facebook.litho.widget.Text;
import java.io.IOException;
import okhttp3.Call;
@@ -35,6 +38,8 @@ public class RootComponentSpec {
@OnCreateLayout
static Component onCreateLayout(final ComponentContext c) {
final DraweeController controller =
Fresco.newDraweeControllerBuilder().setUri("https://fbflipper.com/img/icon.png").build();
return Column.create(c)
.child(
Text.create(c)
@@ -60,6 +65,7 @@ public class RootComponentSpec {
.key("3")
.textSizeSp(20)
.clickHandler(RootComponent.openDiagnostics(c)))
.child(FrescoImage.create(c).controller(controller))
.build();
}