From 4c0d81b8add0372cc7194b17cc6d2bfc58baacd1 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Wed, 18 Aug 2010 22:09:07 -0400 Subject: [PATCH] Fix divide-by-zero when calculating signal level over a large output range. Change-Id: I17eff6fb458532465a836414e1973a8d5b7c715b --- wifi/java/android/net/wifi/WifiManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index a774c12bba5e8..91563581a0e7c 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -765,8 +765,9 @@ public class WifiManager { } else if (rssi >= MAX_RSSI) { return numLevels - 1; } else { - int partitionSize = (MAX_RSSI - MIN_RSSI) / (numLevels - 1); - return (rssi - MIN_RSSI) / partitionSize; + float inputRange = (MAX_RSSI - MIN_RSSI); + float outputRange = (numLevels - 1); + return (int)((float)(rssi - MIN_RSSI) * outputRange / inputRange); } }