Prechádzať zdrojové kódy

Hardening on item click

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 rokov pred
rodič
commit
65313a60b2

+ 22 - 20
app/src/main/java/com/nextcloud/talk/controllers/CallsListController.java

@@ -119,26 +119,28 @@ public class CallsListController extends BaseController implements SearchView.On
             new FlexibleAdapter.OnItemClickListener() {
                 @Override
                 public boolean onItemClick(int position) {
-                    RoomItem roomItem = roomItems.get(position);
-                    ncApi.joinCall(Credentials.basic(userEntity.getUsername(), userEntity.getToken()),
-                            ApiHelper.getUrlForCall(userEntity.getBaseUrl(), roomItem.getModel().getToken()))
-                            .subscribeOn(Schedulers.newThread())
-                            .observeOn(AndroidSchedulers.mainThread())
-                            .subscribe(new Consumer<CallOverall>() {
-                                @Override
-                                public void accept(CallOverall callOverall) throws Exception {
-
-                                    overridePushHandler(new SimpleSwapChangeHandler());
-                                    overridePopHandler(new SimpleSwapChangeHandler());
-
-                                    Intent callIntent = new Intent(getActivity(), CallActivity.class);
-                                    BundleBuilder bundleBuilder = new BundleBuilder(new Bundle());
-                                    bundleBuilder.putString("roomToken", roomItem.getModel().getToken());
-                                    bundleBuilder.putString("userDisplayName", userEntity.getDisplayName());
-                                    callIntent.putExtras(bundleBuilder.build());
-                                    startActivity(callIntent);
-                                }
-                            });
+                    if (roomItems.size() > position) {
+                        RoomItem roomItem = roomItems.get(position);
+                        ncApi.joinCall(Credentials.basic(userEntity.getUsername(), userEntity.getToken()),
+                                ApiHelper.getUrlForCall(userEntity.getBaseUrl(), roomItem.getModel().getToken()))
+                                .subscribeOn(Schedulers.newThread())
+                                .observeOn(AndroidSchedulers.mainThread())
+                                .subscribe(new Consumer<CallOverall>() {
+                                    @Override
+                                    public void accept(CallOverall callOverall) throws Exception {
+
+                                        overridePushHandler(new SimpleSwapChangeHandler());
+                                        overridePopHandler(new SimpleSwapChangeHandler());
+
+                                        Intent callIntent = new Intent(getActivity(), CallActivity.class);
+                                        BundleBuilder bundleBuilder = new BundleBuilder(new Bundle());
+                                        bundleBuilder.putString("roomToken", roomItem.getModel().getToken());
+                                        bundleBuilder.putString("userDisplayName", userEntity.getDisplayName());
+                                        callIntent.putExtras(bundleBuilder.build());
+                                        startActivity(callIntent);
+                                    }
+                                });
+                    }
 
                     return true;
                 }