浏览代码

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
     protected JitsiMeetView getJitsiView() {
107
     protected JitsiMeetView getJitsiView() {
108
         JitsiMeetFragment fragment
108
         JitsiMeetFragment fragment
109
             = (JitsiMeetFragment) getSupportFragmentManager().findFragmentById(R.id.jitsiFragment);
109
             = (JitsiMeetFragment) getSupportFragmentManager().findFragmentById(R.id.jitsiFragment);
110
-        return fragment.getJitsiView();
110
+        return fragment != null ? fragment.getJitsiView() : null;
111
     }
111
     }
112
 
112
 
113
     public void join(@Nullable String url) {
113
     public void join(@Nullable String url) {
119
     }
119
     }
120
 
120
 
121
     public void join(JitsiMeetConferenceOptions options) {
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
     public void leave() {
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
     private @Nullable JitsiMeetConferenceOptions getConferenceOptions(Intent intent) {
141
     private @Nullable JitsiMeetConferenceOptions getConferenceOptions(Intent intent) {
191
 
203
 
192
     @Override
204
     @Override
193
     protected void onUserLeaveHint() {
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
     // JitsiMeetActivityInterface
213
     // JitsiMeetActivityInterface

正在加载...
取消
保存