Refactor a bit
This commit is contained in:
parent
4165d7451f
commit
f488ab6b61
|
@ -8,21 +8,17 @@ import com.facebook.react.ReactApplication;
|
|||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.modules.network.ForwardingCookieHandler;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
import com.facebook.react.modules.network.ReactCookieJarContainer;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
|
||||
import org.skolplattformen.modules.OkHttpClientFactoryCustom;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.CookieHandler;
|
||||
import java.util.List;
|
||||
|
||||
import okhttp3.CookieJar;
|
||||
import okhttp3.JavaNetCookieJar;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost =
|
||||
new ReactNativeHost(this) {
|
||||
@Override
|
||||
|
@ -55,27 +51,13 @@ public class MainApplication extends Application implements ReactApplication {
|
|||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
changeCookieManager();
|
||||
|
||||
ReactInstanceManager mReactInstanceManager = getReactNativeHost().getReactInstanceManager();
|
||||
mReactInstanceManager.addReactInstanceEventListener(reactContext ->
|
||||
OkHttpClientProvider.setOkHttpClientFactory(new OkHttpClientFactoryCustom(reactContext)));
|
||||
|
||||
}
|
||||
|
||||
private void changeCookieManager() {
|
||||
OkHttpClientProvider.setOkHttpClientFactory(() -> {
|
||||
OkHttpClient.Builder builder = OkHttpClientProvider.createClientBuilder(
|
||||
mReactNativeHost.getReactInstanceManager().getCurrentReactContext());
|
||||
|
||||
|
||||
builder.cookieJar(new ReactCookieJarContainer() {
|
||||
|
||||
@Override
|
||||
public void setCookieJar(CookieJar cookieJar) {
|
||||
super.setCookieJar(new OBJavaNetCookieJar(new ForwardingCookieHandler(mReactNativeHost.getReactInstanceManager().getCurrentReactContext())));
|
||||
}
|
||||
});
|
||||
return builder.build();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
||||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
package org.skolplattformen.app;
|
||||
package org.skolplattformen.modules;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.CookieHandler;
|
||||
import java.net.HttpCookie;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -18,11 +17,10 @@ import static okhttp3.internal.Util.delimiterOffset;
|
|||
import static okhttp3.internal.Util.trimSubstring;
|
||||
import static okhttp3.internal.platform.Platform.WARN;
|
||||
|
||||
|
||||
final class OBJavaNetCookieJar implements CookieJar {
|
||||
final class CookieJarCustom implements CookieJar {
|
||||
private final CookieHandler cookieHandler;
|
||||
|
||||
public OBJavaNetCookieJar(CookieHandler cookieHandler) {
|
||||
|
||||
public CookieJarCustom(CookieHandler cookieHandler) {
|
||||
this.cookieHandler = cookieHandler;
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package org.skolplattformen.modules;
|
||||
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.modules.network.ForwardingCookieHandler;
|
||||
import com.facebook.react.modules.network.OkHttpClientFactory;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
import com.facebook.react.modules.network.ReactCookieJarContainer;
|
||||
|
||||
import okhttp3.CookieJar;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class OkHttpClientFactoryCustom implements OkHttpClientFactory {
|
||||
|
||||
private final ReactContext context;
|
||||
|
||||
public OkHttpClientFactoryCustom(ReactContext context) {
|
||||
super();
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OkHttpClient createNewNetworkModuleClient() {
|
||||
|
||||
OkHttpClient.Builder builder = OkHttpClientProvider.createClientBuilder(this.context);
|
||||
CookieJarCustom cookieJarCustom = new CookieJarCustom(new ForwardingCookieHandler(this.context));
|
||||
|
||||
builder.cookieJar(new ReactCookieJarContainer() {
|
||||
|
||||
@Override
|
||||
public void setCookieJar(CookieJar cookieJar) {
|
||||
super.setCookieJar(cookieJarCustom);
|
||||
}
|
||||
});
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue