diff --git a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.java b/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.java index 03c49e2e7..b060fa6d7 100644 --- a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.java +++ b/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.java @@ -55,7 +55,6 @@ import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.OkHttpNetworkFetcherWithCache; import com.nextcloud.talk.utils.database.arbitrarystorage.ArbitraryStorageModule; import com.nextcloud.talk.utils.database.user.UserModule; -import com.nextcloud.talk.utils.singletons.MerlinTheWizard; import com.nextcloud.talk.utils.preferences.AppPreferences; import com.nextcloud.talk.webrtc.MagicWebRTCUtils; import com.vanniktech.emoji.EmojiManager; @@ -170,8 +169,6 @@ public class NextcloudTalkApplication extends MultiDexApplication implements Lif OneTimeWorkRequest capabilitiesUpdateWork = new OneTimeWorkRequest.Builder(CapabilitiesWorker.class).build(); OneTimeWorkRequest signalingSettingsWork = new OneTimeWorkRequest.Builder(SignalingSettingsWorker.class).build(); - new MerlinTheWizard().initMerlin(); - WorkManager.getInstance().enqueue(pushRegistrationWork); WorkManager.getInstance().enqueue(accountRemovalWork); WorkManager.getInstance().enqueue(capabilitiesUpdateWork); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java index a88669caa..44d4755a8 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java @@ -54,7 +54,7 @@ import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder; -import com.nextcloud.talk.utils.singletons.MerlinTheWizard; + import io.reactivex.CompletableObserver; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -268,7 +268,6 @@ public class AccountVerificationController extends BaseController { @Override public void onNext(UserEntity userEntity) { internalAccountId = userEntity.getId(); - new MerlinTheWizard().initMerlin(); if (new ClosedInterfaceImpl().isGooglePlayServicesAvailable()) { registerForPush(); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java index 638b11048..455a7a575 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -77,7 +77,6 @@ import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.power.PowerManagerUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; import com.nextcloud.talk.utils.singletons.ApplicationWideCurrentRoomHolder; -import com.nextcloud.talk.utils.singletons.MerlinTheWizard; import com.nextcloud.talk.webrtc.*; import com.wooplr.spotlight.SpotlightView; import io.reactivex.Observable; @@ -1384,7 +1383,6 @@ public class CallController extends BaseController { } private void hangupNetworkCalls(boolean shutDownView) { - if (MerlinTheWizard.isConnectedToInternet()) { ncApi.leaveCall(credentials, ApiUtils.getUrlForCall(baseUrl, roomToken)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -1421,9 +1419,6 @@ public class CallController extends BaseController { } }); - } else if (shutDownView && getActivity() != null) { - getActivity().finish(); - } } private void leaveRoom(boolean shutDownView) { @@ -1706,9 +1701,7 @@ public class CallController extends BaseController { } else if (peerConnectionEvent.getPeerConnectionEventType().equals(PeerConnectionEvent.PeerConnectionEventType.PUBLISHER_FAILED)) { currentCallStatus = CallStatus.PUBLISHER_FAILED; webSocketClient.clearResumeId(); - if (MerlinTheWizard.isConnectedToInternet()) { - hangup(false); - } + hangup(false); } } @@ -1725,7 +1718,7 @@ public class CallController extends BaseController { magicPeerConnectionWrapper = magicPeerConnectionWrapperList.get(i); Observable .interval(1, TimeUnit.SECONDS) - .repeatUntil(() -> (!isConnectionEstablished() || isBeingDestroyed() || isDestroyed() || !MerlinTheWizard.isConnectedToInternet())) + .repeatUntil(() -> (!isConnectionEstablished() || isBeingDestroyed() || isDestroyed())) .observeOn(Schedulers.io()) .subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java index 3bb49ba2b..eb625d244 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java @@ -66,7 +66,6 @@ import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; import com.nextcloud.talk.utils.preferences.MagicUserInputModule; import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder; -import com.nextcloud.talk.utils.singletons.MerlinTheWizard; import com.yarolegovich.lovelydialog.LovelySaveStateHandler; import com.yarolegovich.lovelydialog.LovelyStandardDialog; import com.yarolegovich.mp.*; @@ -371,12 +370,6 @@ public class SettingsController extends BaseController { private void removeCurrentAccount() { boolean otherUserExists = userUtils.scheduleUserForDeletionWithId(currentUser.getId()); - if (otherUserExists) { - new MerlinTheWizard().initMerlin(); - } else { - new MerlinTheWizard().getMerlin().unbind(); - } - OneTimeWorkRequest accountRemovalWork = new OneTimeWorkRequest.Builder(AccountRemovalWorker.class).build(); WorkManager.getInstance().enqueue(accountRemovalWork); diff --git a/app/src/main/java/com/nextcloud/talk/utils/singletons/MerlinTheWizard.java b/app/src/main/java/com/nextcloud/talk/utils/singletons/MerlinTheWizard.java deleted file mode 100644 index 5e348a4d9..000000000 --- a/app/src/main/java/com/nextcloud/talk/utils/singletons/MerlinTheWizard.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Nextcloud Talk application - * - * @author Mario Danic - * Copyright (C) 2017-2019 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.nextcloud.talk.utils.singletons; - -import android.content.Context; -import autodagger.AutoInjector; -import com.nextcloud.talk.application.NextcloudTalkApplication; -import com.nextcloud.talk.events.NetworkEvent; -import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.utils.database.user.UserUtils; -import com.novoda.merlin.*; -import org.greenrobot.eventbus.EventBus; - -import javax.inject.Inject; - -@AutoInjector(NextcloudTalkApplication.class) -public class MerlinTheWizard { - private static Merlin merlin; - - private UserEntity currentUserEntity; - - @Inject - EventBus eventBus; - - @Inject - Context context; - - @Inject - UserUtils userUtils; - - private static boolean isConnectedToInternet; - - public MerlinTheWizard() { - NextcloudTalkApplication.getSharedApplication().getComponentApplication().inject(this); - } - - public static boolean isConnectedToInternet() { - return isConnectedToInternet; - } - - public void initMerlin() { - if (userUtils.anyUserExists() && (currentUserEntity == null || - (userUtils.getCurrentUser().getId() != currentUserEntity.getId()))) { - currentUserEntity = userUtils.getCurrentUser(); - setupMerlinForCurrentUserEntity(); - } - } - - public Merlin getMerlin() { - if (merlin == null) { - initMerlin(); - } - - return merlin; - } - - private void setupMerlinForCurrentUserEntity() { - Endpoint endpoint = Endpoint.from(currentUserEntity.getBaseUrl() + "/index.php/204"); - ResponseCodeValidator responseCodeValidator = - new ResponseCodeValidator.CaptivePortalResponseCodeValidator(); - - if (merlin != null) { - merlin.unbind(); - } - - merlin = new Merlin.Builder().withAllCallbacks().withEndpoint(endpoint).withResponseCodeValidator(responseCodeValidator).build(context); - - merlin.bind(); - - merlin.registerConnectable(new Connectable() { - @Override - public void onConnect() { - isConnectedToInternet = true; - eventBus.post(new NetworkEvent(NetworkEvent.NetworkConnectionEvent.NETWORK_CONNECTED)); - } - }); - - merlin.registerDisconnectable(new Disconnectable() { - @Override - public void onDisconnect() { - isConnectedToInternet = false; - eventBus.post(new NetworkEvent(NetworkEvent.NetworkConnectionEvent.NETWORK_DISCONNECTED)); - } - }); - } - -} diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java index c53be9d78..d8c66160d 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java @@ -37,7 +37,7 @@ import com.nextcloud.talk.models.json.websocket.*; import com.nextcloud.talk.utils.LoggingUtils; import com.nextcloud.talk.utils.MagicMap; import com.nextcloud.talk.utils.bundle.BundleKeys; -import com.nextcloud.talk.utils.singletons.MerlinTheWizard; + import okhttp3.*; import okio.ByteString; import org.greenrobot.eventbus.EventBus; @@ -136,11 +136,9 @@ public class MagicWebSocketInstance extends WebSocketListener { public void restartWebSocket() { reconnecting = true; - if (MerlinTheWizard.isConnectedToInternet()) { Request request = new Request.Builder().url(connectionUrl).build(); okHttpClient.newWebSocket(request, this); restartCount++; - } } @Override