mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-29 00:19:44 +01:00
Fix proxy / network on main thread
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
bed7bc3d9e
commit
af472a8687
@ -74,15 +74,9 @@ public class RestModule {
|
|||||||
Proxy provideProxy(AppPreferences appPreferences) {
|
Proxy provideProxy(AppPreferences appPreferences) {
|
||||||
if (!TextUtils.isEmpty(appPreferences.getProxyType()) && !"No proxy".equals(appPreferences.getProxyType())
|
if (!TextUtils.isEmpty(appPreferences.getProxyType()) && !"No proxy".equals(appPreferences.getProxyType())
|
||||||
&& !TextUtils.isEmpty(appPreferences.getProxyHost())) {
|
&& !TextUtils.isEmpty(appPreferences.getProxyHost())) {
|
||||||
if (Proxy.Type.SOCKS.equals(Proxy.Type.valueOf(appPreferences.getProxyType()))) {
|
GetProxyRunnable getProxyRunnable = new GetProxyRunnable(appPreferences);
|
||||||
return (new Proxy(Proxy.Type.valueOf(appPreferences.getProxyType()),
|
new Thread(getProxyRunnable).start();
|
||||||
InetSocketAddress.createUnresolved(appPreferences.getProxyHost(), Integer.parseInt(
|
return getProxyRunnable.getProxyValue();
|
||||||
appPreferences.getProxyPort()))));
|
|
||||||
} else {
|
|
||||||
return (new Proxy(Proxy.Type.valueOf(appPreferences.getProxyType()),
|
|
||||||
new InetSocketAddress(appPreferences.getProxyHost(),
|
|
||||||
Integer.parseInt(appPreferences.getProxyPort()))));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return Proxy.NO_PROXY;
|
return Proxy.NO_PROXY;
|
||||||
}
|
}
|
||||||
@ -215,4 +209,30 @@ public class RestModule {
|
|||||||
return chain.proceed(request);
|
return chain.proceed(request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class GetProxyRunnable implements Runnable {
|
||||||
|
private volatile Proxy proxy;
|
||||||
|
private AppPreferences appPreferences;
|
||||||
|
|
||||||
|
public GetProxyRunnable(AppPreferences appPreferences) {
|
||||||
|
this.appPreferences = appPreferences;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (Proxy.Type.SOCKS.equals(Proxy.Type.valueOf(appPreferences.getProxyType()))) {
|
||||||
|
proxy = new Proxy(Proxy.Type.valueOf(appPreferences.getProxyType()),
|
||||||
|
InetSocketAddress.createUnresolved(appPreferences.getProxyHost(), Integer.parseInt(
|
||||||
|
appPreferences.getProxyPort())));
|
||||||
|
} else {
|
||||||
|
proxy = new Proxy(Proxy.Type.valueOf(appPreferences.getProxyType()),
|
||||||
|
new InetSocketAddress(appPreferences.getProxyHost(),
|
||||||
|
Integer.parseInt(appPreferences.getProxyPort())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Proxy getProxyValue() {
|
||||||
|
return proxy;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user