avoid NPE in processAutocompleteUserList

did not test why this can happen.   autocompleteUser.id must have been null..

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ContactsController.processAutocompleteUserList (ContactsController.kt:498)
  at com.nextcloud.talk.controllers.ContactsController.processAutocompleteUserList (ContactsController.kt:482)
  at com.nextcloud.talk.controllers.ContactsController.access$processAutocompleteUserList (ContactsController.kt:90)
  at com.nextcloud.talk.controllers.ContactsController$fetchData$1.onNext (ContactsController.kt:438)
  at com.nextcloud.talk.controllers.ContactsController$fetchData$1.onNext (ContactsController.kt:432)
  at io.reactivex.internal.operators.observable.ObservableRetryPredicate$RepeatObserver.onNext (ObservableRetryPredicate.java:69)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:7948)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1075)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2022-12-23 11:16:53 +01:00
parent abb88972fd
commit d9280d3d98
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B

View File

@ -130,13 +130,12 @@ class ContactsController(args: Bundle) :
setHasOptionsMenu(true) setHasOptionsMenu(true)
sharedApplication!!.componentApplication.inject(this) sharedApplication!!.componentApplication.inject(this)
existingParticipants = ArrayList()
if (args.containsKey(BundleKeys.KEY_NEW_CONVERSATION)) { if (args.containsKey(BundleKeys.KEY_NEW_CONVERSATION)) {
isNewConversationView = true isNewConversationView = true
existingParticipants = ArrayList()
} else if (args.containsKey(BundleKeys.KEY_ADD_PARTICIPANTS)) { } else if (args.containsKey(BundleKeys.KEY_ADD_PARTICIPANTS)) {
isAddingParticipantsView = true isAddingParticipantsView = true
conversationToken = args.getString(BundleKeys.KEY_TOKEN) conversationToken = args.getString(BundleKeys.KEY_TOKEN)
existingParticipants = ArrayList()
if (args.containsKey(BundleKeys.KEY_EXISTING_PARTICIPANTS)) { if (args.containsKey(BundleKeys.KEY_EXISTING_PARTICIPANTS)) {
existingParticipants = args.getStringArrayList(BundleKeys.KEY_EXISTING_PARTICIPANTS) existingParticipants = args.getStringArrayList(BundleKeys.KEY_EXISTING_PARTICIPANTS)
} }
@ -497,8 +496,9 @@ class ContactsController(args: Bundle) :
val actorTypeConverter = EnumActorTypeConverter() val actorTypeConverter = EnumActorTypeConverter()
val newUserItemList: MutableList<AbstractFlexibleItem<*>> = ArrayList<AbstractFlexibleItem<*>>() val newUserItemList: MutableList<AbstractFlexibleItem<*>> = ArrayList<AbstractFlexibleItem<*>>()
for (autocompleteUser in autocompleteUsersList) { for (autocompleteUser in autocompleteUsersList) {
if (autocompleteUser.id != currentUser!!.userId && if (autocompleteUser.id != null &&
!existingParticipants!!.contains(autocompleteUser.id!!) autocompleteUser.id != currentUser!!.userId &&
!existingParticipants!!.contains(autocompleteUser.id)
) { ) {
participant = createParticipant(autocompleteUser, actorTypeConverter) participant = createParticipant(autocompleteUser, actorTypeConverter)
val headerTitle = getHeaderTitle(participant) val headerTitle = getHeaderTitle(participant)