From 1f8859e1a6a1fc12c124223c8db2d5527f730ff7 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 6 Mar 2023 14:21:13 +0100 Subject: [PATCH] avoid NPE when starting call Exception java.lang.NullPointerException: at com.nextcloud.talk.controllers.ChatController.startACall (ChatController.kt:2792) at com.nextcloud.talk.controllers.ChatController.onOptionsItemSelected (ChatController.kt:2699) at com.bluelinelabs.conductor.Controller.optionsItemSelected (Controller.java:1399) at com.bluelinelabs.conductor.Router.onOptionsItemSelected (Router.java:703) at com.bluelinelabs.conductor.internal.LifecycleHandler.onOptionsItemSelected (LifecycleHandler.java:282) at android.app.Fragment.performOptionsItemSelected (Fragment.java:2652) at android.app.FragmentManagerImpl.dispatchOptionsItemSelected (FragmentManager.java:3189) at android.app.FragmentController.dispatchOptionsItemSelected (FragmentController.java:374) at android.app.Activity.onMenuItemSelected (Activity.java:4517) at androidx.activity.ComponentActivity.onMenuItemSelected (ComponentActivity.java:514) at androidx.fragment.app.FragmentActivity.onMenuItemSelected (FragmentActivity.java:352) at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected (AppCompatActivity.java:266) at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:110) at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick (ToolbarActionBar.java:66) at androidx.appcompat.widget.Toolbar$1.onMenuItemClick (Toolbar.java:221) at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected (ActionMenuView.java:781) at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:836) at androidx.appcompat.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:159) at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:987) at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:977) at androidx.appcompat.widget.ActionMenuView.invokeItem (ActionMenuView.java:625) at androidx.appcompat.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:156) at android.view.View.performClick (View.java:7881) at android.widget.TextView.performClick (TextView.java:16203) at android.view.View.performClickInternal (View.java:7858) at android.view.View.-$$Nest$mperformClickInternal at android.view.View$PerformClick.run (View.java:30863) at android.os.Handler.handleCallback (Handler.java:942) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8772) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067) Signed-off-by: Marcel Hibbe --- .../talk/controllers/ChatController.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index 746b7a564..c4a971ccf 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -2823,14 +2823,18 @@ class ChatController(args: Bundle) : } private fun startACall(isVoiceOnlyCall: Boolean, callWithoutNotification: Boolean) { - val pp = ParticipantPermissions(conversationUser!!, currentConversation!!) - if (!pp.canStartCall() && currentConversation?.hasCall == false) { - Toast.makeText(context, R.string.startCallForbidden, Toast.LENGTH_LONG).show() - } else { - ApplicationWideCurrentRoomHolder.getInstance().isDialing = true - val callIntent = getIntentForCall(isVoiceOnlyCall, callWithoutNotification) - if (callIntent != null) { - startActivity(callIntent) + currentConversation?.let { + if (conversationUser != null) { + val pp = ParticipantPermissions(conversationUser, it) + if (!pp.canStartCall() && currentConversation?.hasCall == false) { + Toast.makeText(context, R.string.startCallForbidden, Toast.LENGTH_LONG).show() + } else { + ApplicationWideCurrentRoomHolder.getInstance().isDialing = true + val callIntent = getIntentForCall(isVoiceOnlyCall, callWithoutNotification) + if (callIntent != null) { + startActivity(callIntent) + } + } } } }