From 05ab58e96d116ec05e03fe8922a25d1b420052bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Brul=C3=A9?=
 <raphael.brule@savoirfairelinux.com>
Date: Thu, 13 Aug 2020 11:22:05 -0400
Subject: [PATCH] location sharing: fix thread issue

Fixes an issue regarding the location sharing
noticed on the Beta channel.

Change-Id: I3832aa50a816c0c1345e2a8f21853319f8791629
---
 .../fragments/LocationSharingFragment.java    | 22 ++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java
index 91c8827fa..312293926 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java
@@ -294,16 +294,18 @@ public class LocationSharingFragment extends Fragment {
         mDisposableBag.add(mServiceDisposableBag);
         mDisposableBag.add(mShowControlsSubject.subscribe(this::setShowControls));
         mDisposableBag.add(mIsSharingSubject.subscribe(this::setIsSharing));
-        mDisposableBag.add(mShowMapSubject.subscribe(state -> {
-            Fragment p = getParentFragment();
-            if (p instanceof ConversationFragment) {
-                ConversationFragment parent = (ConversationFragment) p;
-                if (state == MapState.FULL)
-                    parent.openLocationSharing();
-                else
-                    parent.closeLocationSharing(state == MapState.MINI);
-            }
-        }));
+        mDisposableBag.add(mShowMapSubject
+                .subscribeOn(AndroidSchedulers.mainThread())
+                .subscribe(state -> {
+                    Fragment p = getParentFragment();
+                    if (p instanceof ConversationFragment) {
+                        ConversationFragment parent = (ConversationFragment) p;
+                        if (state == MapState.FULL)
+                            parent.openLocationSharing();
+                        else
+                            parent.closeLocationSharing(state == MapState.MINI);
+                    }
+                }));
         mDisposableBag.add(mIsContactSharingSubject
                 .distinctUntilChanged()
                 .observeOn(AndroidSchedulers.mainThread())
-- 
GitLab