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:
committed by
Facebook Github Bot
parent
2067e5e1fc
commit
d371a211a8
@@ -7,7 +7,7 @@ android {
|
||||
minSdkVersion rootProject.minSdkVersion
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
applicationId 'com.facebook.flipper.sample'
|
||||
targetSdkVersion 24
|
||||
targetSdkVersion 28
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
@@ -29,11 +29,21 @@ dependencies {
|
||||
implementation deps.lithoCore
|
||||
implementation deps.lithoWidget
|
||||
implementation deps.lithoAnnotations
|
||||
// TODO(T40752310): Temporary while we depend on the jitpack artifact with a different group.
|
||||
implementation(deps.lithoFresco) {
|
||||
exclude group: 'com.facebook.fresco'
|
||||
}
|
||||
annotationProcessor deps.lithoProcessor
|
||||
|
||||
// Third-party
|
||||
implementation deps.soloader
|
||||
implementation deps.okhttp3
|
||||
// TODO(T40752310): Temporary till Fresco has a stable release.
|
||||
implementation('com.github.facebook:fresco:0ff379c262') {
|
||||
exclude group: 'com.squareup.okhttp3'
|
||||
exclude group: 'com.github.facebook.fresco', module: 'animated-base-test'
|
||||
exclude group: 'com.github.facebook.fresco', module: 'imagepipeline-test'
|
||||
}
|
||||
|
||||
// Integration test
|
||||
androidTestImplementation deps.testCore
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user