瀏覽代碼

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…
取消
儲存