mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 19:49:33 +01:00
Start chat from push
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
c24ee9e910
commit
62cf45778e
@ -188,6 +188,13 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
||||
}
|
||||
|
||||
this.roomPassword = args.getString(BundleKeys.KEY_CONVERSATION_PASSWORD, "");
|
||||
|
||||
if (conversationUser.getUserId().equals("-1")) {
|
||||
credentials = null;
|
||||
} else {
|
||||
credentials = ApiUtils.getCredentials(conversationUser.getUserId(), conversationUser.getToken());
|
||||
}
|
||||
|
||||
this.startCallFromNotification = args.getBoolean(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL);
|
||||
}
|
||||
|
||||
@ -325,7 +332,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
||||
if (adapterWasNull && startCallFromNotification == null) {
|
||||
setupMentionAutocomplete();
|
||||
joinRoomWithPassword();
|
||||
} else if (adapterWasNull) {
|
||||
} else {
|
||||
handleFromNotification();
|
||||
}
|
||||
}
|
||||
@ -396,21 +403,39 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
||||
}
|
||||
}
|
||||
|
||||
private void startPing() {
|
||||
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
|
||||
.takeWhile(observable -> inChat)
|
||||
.retry(3, observable -> inChat)
|
||||
.subscribe(new Observer<GenericOverall>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
disposableList.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(GenericOverall genericOverall) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void joinRoomWithPassword() {
|
||||
String password = "";
|
||||
|
||||
if (!TextUtils.isEmpty(roomPassword)) {
|
||||
password = roomPassword;
|
||||
}
|
||||
|
||||
if (conversationUser.getUserId().equals("-1")) {
|
||||
credentials = null;
|
||||
} else {
|
||||
credentials = ApiUtils.getCredentials(conversationUser.getUserId(), conversationUser.getToken());
|
||||
}
|
||||
|
||||
if (currentCall == null) {
|
||||
ncApi.joinRoom(credentials, ApiUtils.getUrlForRoomParticipants(baseUrl, roomToken), password)
|
||||
ncApi.joinRoom(credentials, ApiUtils.getUrlForRoomParticipants(baseUrl, roomToken), roomPassword)
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(3)
|
||||
@ -501,35 +526,6 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
||||
});
|
||||
}
|
||||
|
||||
private void startPing() {
|
||||
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
|
||||
.takeWhile(observable -> inChat)
|
||||
.retry(3, observable -> inChat)
|
||||
.subscribe(new Observer<GenericOverall>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
disposableList.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(GenericOverall genericOverall) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void pullChatMessages(int lookIntoFuture) {
|
||||
if (!lookingIntoFuture && lookIntoFuture == 1) {
|
||||
lookingIntoFuture = true;
|
||||
|
@ -57,6 +57,7 @@ import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.Authenticator;
|
||||
import okhttp3.Cache;
|
||||
import okhttp3.Credentials;
|
||||
import okhttp3.Dispatcher;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.JavaNetCookieJar;
|
||||
import okhttp3.OkHttpClient;
|
||||
@ -163,12 +164,21 @@ public class RestModule {
|
||||
return new Cache(NextcloudTalkApplication.getSharedApplication().getCacheDir(), cacheSize);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Dispatcher provideDispatcher() {
|
||||
Dispatcher dispatcher = new Dispatcher();
|
||||
dispatcher.setMaxRequestsPerHost(100);
|
||||
dispatcher.setMaxRequests(100);
|
||||
return dispatcher;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
OkHttpClient provideHttpClient(Proxy proxy, AppPreferences appPreferences,
|
||||
MagicTrustManager magicTrustManager,
|
||||
SSLSocketFactoryCompat sslSocketFactoryCompat, Cache cache,
|
||||
CookieManager cookieManager) {
|
||||
CookieManager cookieManager, Dispatcher dispatcher) {
|
||||
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
|
||||
|
||||
httpClient.connectTimeout(45, TimeUnit.SECONDS);
|
||||
@ -189,6 +199,7 @@ public class RestModule {
|
||||
httpClient.retryOnConnectionFailure(true);
|
||||
httpClient.hostnameVerifier(magicTrustManager.getHostnameVerifier(OkHostnameVerifier.INSTANCE));
|
||||
|
||||
httpClient.dispatcher(dispatcher);
|
||||
if (!Proxy.NO_PROXY.equals(proxy)) {
|
||||
httpClient.proxy(proxy);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user