From 5b1f1504c3d60f2000d2961bf15279d2060f49b6 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sun, 10 Mar 2019 22:50:05 +0100
Subject: [PATCH] Fixes crash clusters f9e159aa and 75156383

---
 .../ui/fastscroll/views/FastScroller.java     | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/fastscroll/views/FastScroller.java b/app/src/main/java/de/kuschku/quasseldroid/util/ui/fastscroll/views/FastScroller.java
index 71bd5fd57..d510abbca 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/fastscroll/views/FastScroller.java
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/fastscroll/views/FastScroller.java
@@ -261,10 +261,23 @@ public class FastScroller {
     }
     // do not create new objects here, this is called quite often
     mInvalidateRect.set(mRecyclerView.getPaddingLeft() + mThumbPosition.x + mOffset.x, mRecyclerView.getPaddingTop() + mOffset.y, mThumbPosition.x + mOffset.x + mWidth - mRecyclerView.getPaddingRight(), mRecyclerView.getPaddingTop() + mRecyclerView.getHeight() - mRecyclerView.getPaddingBottom() + mOffset.y);
-    mThumbPosition.set(
-      x * (mRecyclerView.getWidth() - mRecyclerView.getPaddingLeft() - mRecyclerView.getPaddingLeft()) / mRecyclerView.getWidth() + mRecyclerView.getPaddingLeft(),
-      y * (mRecyclerView.getHeight() - mRecyclerView.getPaddingTop() - mRecyclerView.getPaddingBottom()) / mRecyclerView.getHeight() + mRecyclerView.getPaddingTop()
-    );
+    int totalWidth = mRecyclerView.getWidth() + mRecyclerView.getPaddingLeft();
+    int totalHeight = mRecyclerView.getHeight() + mRecyclerView.getPaddingTop();
+
+    int dx;
+    if (totalWidth == 0) {
+      dx = 0;
+    } else {
+      dx = x * (mRecyclerView.getWidth() - mRecyclerView.getPaddingLeft() - mRecyclerView.getPaddingLeft()) / totalWidth;
+    }
+
+    int dy;
+    if (totalHeight == 0) {
+      dy = 0;
+    } else {
+      dy = y * (mRecyclerView.getHeight() - mRecyclerView.getPaddingTop() - mRecyclerView.getPaddingBottom()) / totalHeight;
+    }
+    mThumbPosition.set(dx, dy);
     mInvalidateTmpRect.set(mRecyclerView.getPaddingLeft() + mThumbPosition.x + mOffset.x, mRecyclerView.getPaddingTop() + mOffset.y, mThumbPosition.x + mOffset.x + mWidth - mRecyclerView.getPaddingRight(), mRecyclerView.getPaddingTop() + mRecyclerView.getHeight() - mRecyclerView.getPaddingBottom() + mOffset.y);
     mInvalidateRect.union(mInvalidateTmpRect);
     mRecyclerView.invalidate(mInvalidateRect);
-- 
GitLab