From 65313a60b25420d887df02aa7e2ed0730ee7a587 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Mon, 30 Oct 2017 11:36:07 +0100 Subject: [PATCH] Hardening on item click Signed-off-by: Mario Danic --- .../talk/controllers/CallsListController.java | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallsListController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallsListController.java index 2e1f08abd..ece247b63 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallsListController.java +++ b/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() { - @Override - public void accept(CallOverall callOverall) throws Exception { + 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() { + @Override + public void accept(CallOverall callOverall) throws Exception { - overridePushHandler(new SimpleSwapChangeHandler()); - overridePopHandler(new SimpleSwapChangeHandler()); + 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); - } - }); + 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; }