Преглед изворни кода

fix(android) avoid crashes if view is null

This may happen due to API misuse, but also in complex applications where
activity lifetimes are not straightforward.
master
Saúl Ibarra Corretgé пре 4 година
родитељ
комит
a01e3e9d8a
1 измењених фајлова са 20 додато и 4 уклоњено
  1. 20
    4
      android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java

+ 20
- 4
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java Прегледај датотеку

@@ -107,7 +107,7 @@ public class JitsiMeetActivity extends FragmentActivity
107 107
     protected JitsiMeetView getJitsiView() {
108 108
         JitsiMeetFragment fragment
109 109
             = (JitsiMeetFragment) getSupportFragmentManager().findFragmentById(R.id.jitsiFragment);
110
-        return fragment.getJitsiView();
110
+        return fragment != null ? fragment.getJitsiView() : null;
111 111
     }
112 112
 
113 113
     public void join(@Nullable String url) {
@@ -119,11 +119,23 @@ public class JitsiMeetActivity extends FragmentActivity
119 119
     }
120 120
 
121 121
     public void join(JitsiMeetConferenceOptions options) {
122
-        getJitsiView().join(options);
122
+        JitsiMeetView view = getJitsiView();
123
+
124
+        if (view != null) {
125
+            view.join(options);
126
+        } else {
127
+            JitsiMeetLogger.w("Cannot join, view is null");
128
+        }
123 129
     }
124 130
 
125 131
     public void leave() {
126
-        getJitsiView().leave();
132
+        JitsiMeetView view = getJitsiView();
133
+
134
+        if (view != null) {
135
+            view.leave();
136
+        } else {
137
+            JitsiMeetLogger.w("Cannot leave, view is null");
138
+        }
127 139
     }
128 140
 
129 141
     private @Nullable JitsiMeetConferenceOptions getConferenceOptions(Intent intent) {
@@ -191,7 +203,11 @@ public class JitsiMeetActivity extends FragmentActivity
191 203
 
192 204
     @Override
193 205
     protected void onUserLeaveHint() {
194
-        getJitsiView().enterPictureInPicture();
206
+        JitsiMeetView view = getJitsiView();
207
+
208
+        if (view != null) {
209
+            view.enterPictureInPicture();
210
+        }
195 211
     }
196 212
 
197 213
     // JitsiMeetActivityInterface

Loading…
Откажи
Сачувај