Add Flipper support for secondary processes

Summary: Allow callers to pass id, deviceName, processName, and packageName when initializing Flipper. Since these are used to create the connection id, callers can use these to configure Flipper to work for secondary processes.

Reviewed By: calebgomer

Differential Revision: D44719389

fbshipit-source-id: 3df6d47855c113f454f37031df32c4891626aa66
This commit is contained in:
Razvan Racasanu
2023-04-07 12:58:52 -07:00
committed by Facebook GitHub Bot
parent ff85744911
commit c3381a3c9f

View File

@@ -26,7 +26,8 @@ public final class AndroidFlipperClient {
private static final String[] REQUIRED_PERMISSIONS = private static final String[] REQUIRED_PERMISSIONS =
new String[] {"android.permission.INTERNET", "android.permission.ACCESS_WIFI_STATE"}; new String[] {"android.permission.INTERNET", "android.permission.ACCESS_WIFI_STATE"};
public static synchronized FlipperClient getInstance(Context context) { public static synchronized FlipperClient getInstance(
Context context, String id, String deviceName, String processName, String packageName) {
if (!sIsInitialized) { if (!sIsInitialized) {
if (!(BuildConfig.IS_INTERNAL_BUILD || BuildConfig.LOAD_FLIPPER_EXPLICIT)) { if (!(BuildConfig.IS_INTERNAL_BUILD || BuildConfig.LOAD_FLIPPER_EXPLICIT)) {
Log.e("Flipper", "Attempted to initialize in non-internal build"); Log.e("Flipper", "Attempted to initialize in non-internal build");
@@ -58,16 +59,23 @@ public final class AndroidFlipperClient {
FlipperProps.getAltSecurePort(), FlipperProps.getAltSecurePort(),
getServerHost(app), getServerHost(app),
"Android", "Android",
getFriendlyDeviceName(), deviceName,
getId(), id,
getRunningAppName(app), processName,
getPackageName(app), packageName,
privateAppDirectory); privateAppDirectory);
sIsInitialized = true; sIsInitialized = true;
} }
return FlipperClientImpl.getInstance(); return FlipperClientImpl.getInstance();
} }
public static synchronized FlipperClient getInstance(Context context) {
final Context app =
context.getApplicationContext() == null ? context : context.getApplicationContext();
return getInstance(
context, getId(), getFriendlyDeviceName(), getRunningAppName(app), getPackageName(app));
}
@Nullable @Nullable
public static synchronized FlipperClient getInstanceIfInitialized() { public static synchronized FlipperClient getInstanceIfInitialized() {
if (!sIsInitialized) { if (!sIsInitialized) {