Avoid NPE (replace scrollToPositionWithOffset(..) with scrollToPosition(0))

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ChatController.processMessagesFromTheFuture (ChatController.kt:2500)
  at com.nextcloud.talk.controllers.ChatController.processMessages (ChatController.kt:2443)
  at com.nextcloud.talk.controllers.ChatController.processMessagesResponse (ChatController.kt:2404)
  at com.nextcloud.talk.controllers.ChatController.access$processMessagesResponse (ChatController.kt:221)
  at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext (ChatController.kt:2315)
  at com.nextcloud.talk.controllers.ChatController$pullChatMessages$2.onNext (ChatController.kt:2300)
  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:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:201)
  at android.os.Looper.loop (Looper.java:288)
  at android.app.ActivityThread.main (ActivityThread.java:7872)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)

 I don't know why scrollToPositionWithOffset was used. scrollToPosition(0) works just fine.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2023-03-06 12:07:33 +01:00
parent af2dba94b7
commit 16a0ef8dcf
No known key found for this signature in database
GPG key ID: C793F8B59F43CE7B

View file

@ -2495,10 +2495,7 @@ class ChatController(args: Bundle) :
addMessagesToAdapter(shouldAddNewMessagesNotice, chatMessageList)
if (shouldAddNewMessagesNotice && adapter != null) {
layoutManager?.scrollToPositionWithOffset(
adapter!!.getMessagePositionByIdInReverse("-1"),
binding?.messagesListView?.height!! / 2
)
layoutManager?.scrollToPosition(0)
}
}