ソースを参照

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

読み込み中…
キャンセル
保存