From 75fa7c9ac98c9860321edfc686cbdef30968c4ba Mon Sep 17 00:00:00 2001
From: mingboz <mingboz@codeaurora.org>
Date: Tue, 20 Sep 2016 17:14:03 +0800
Subject: [PATCH] FMStats: Fix GetFMStatsForFreq error for non-cherokee

Fix GetFMStatsForFreq error for non-cherokee chip.

Change-Id: I294f9d032fa46a3b16248d832e88c1eca5aa1c6c
CRs-Fixed: 1069167
---
 fmapp2/src/com/caf/fmradio/FMStats.java | 111 ++++++++++++++----------
 1 file changed, 64 insertions(+), 47 deletions(-)

diff --git a/fmapp2/src/com/caf/fmradio/FMStats.java b/fmapp2/src/com/caf/fmradio/FMStats.java
index 1e7a25d..a0bc184 100644
--- a/fmapp2/src/com/caf/fmradio/FMStats.java
+++ b/fmapp2/src/com/caf/fmradio/FMStats.java
@@ -3265,27 +3265,32 @@ public class FMStats extends Activity  {
         int ret;
         Log.d(LOGTAG,"freq is "+freq);
         result.setFreq(Integer.toString(freq));
+        boolean isCherokeeChip = isCherokeeChip();
         if((null != mService)) {
             try {
-                ret = mService.getRssi();
-                 if (ret != 0) {
-                     Log.e(LOGTAG, "getrssi cmd failed: ret = " + ret);
-                     return null;
-                 }
-                lastCmdSent = CMD_STNPARAM_RSSI;
-                Log.e(LOGTAG, "wait for response of mService.getRssi");
-                synchronized (obj) {
-                    try {
-                        obj.wait();
-                    } catch (InterruptedException e) {
-                        Log.e(LOGTAG, "getRSSI:THREAD interrupted");
-                        e.printStackTrace();
-                        return null;
+                if (isCherokeeChip) {
+                    ret = mService.getRssi();
+                     if (ret != 0) {
+                         Log.e(LOGTAG, "getrssi cmd failed: ret = " + ret);
+                         return null;
+                     }
+                    lastCmdSent = CMD_STNPARAM_RSSI;
+                    Log.e(LOGTAG, "wait for response of mService.getRssi");
+                    synchronized (obj) {
+                        try {
+                            obj.wait();
+                        } catch (InterruptedException e) {
+                            Log.e(LOGTAG, "getRSSI:THREAD interrupted");
+                            e.printStackTrace();
+                            return null;
+                        }
                     }
+                } else {
+                    nRssi = mService.getRssi();
                 }
                 Log.e(LOGTAG, "Got response of mService.getRssi");
                 if (nRssi != Integer.MAX_VALUE) {
-                    result.setRSSI(Integer.toString(nRssi));
+                    result.setRSSI(Integer.toString((byte)nRssi));
                 } else {
                     return null;
                 }
@@ -3297,17 +3302,21 @@ public class FMStats extends Activity  {
 
             if(!isRomeChip()) {
                 try {
-                    mService.getIoC();
-                    lastCmdSent = CMD_STNDBGPARAM_IOVERC;
-                    Log.e(LOGTAG, "wait for response of mService.getIoC");
-                    synchronized (obj) {
-                        try {
-                            obj.wait();
-                        } catch (InterruptedException e) {
-                            Log.e(LOGTAG, "getIOC:THREAD interrupted");
-                            e.printStackTrace();
-                            return null;
+                    if (isCherokeeChip) {
+                        mService.getIoC();
+                        lastCmdSent = CMD_STNDBGPARAM_IOVERC;
+                        Log.e(LOGTAG, "wait for response of mService.getIoC");
+                        synchronized (obj) {
+                            try {
+                                obj.wait();
+                            } catch (InterruptedException e) {
+                                Log.e(LOGTAG, "getIOC:THREAD interrupted");
+                                e.printStackTrace();
+                                return null;
+                            }
                         }
+                    } else {
+                        nIoC = mService.getIoC();
                     }
                     Log.e(LOGTAG, "GOT response of mService.getIoC");
                     if (nIoC != Integer.MAX_VALUE)
@@ -3321,23 +3330,27 @@ public class FMStats extends Activity  {
                 }
             }
 
-            if(isTransportLayerSMD() || isRomeChip() || isCherokeeChip()) {
+            if(isTransportLayerSMD() || isRomeChip() || isCherokeeChip) {
                 try {
-                    mService.getSINR();
-                    lastCmdSent = CMD_STNPARAM_SINR;
-                    Log.e(LOGTAG, "wait for response of mService.getSINR");
-                    synchronized (obj) {
-                        try {
-                            obj.wait();
-                        } catch (InterruptedException e) {
-                            Log.e(LOGTAG, "getSINR:THREAD interrupted");
-                            e.printStackTrace();
-                            return null;
+                    if (isCherokeeChip) {
+                        mService.getSINR();
+                        lastCmdSent = CMD_STNPARAM_SINR;
+                        Log.e(LOGTAG, "wait for response of mService.getSINR");
+                        synchronized (obj) {
+                            try {
+                                obj.wait();
+                            } catch (InterruptedException e) {
+                                Log.e(LOGTAG, "getSINR:THREAD interrupted");
+                                e.printStackTrace();
+                                return null;
+                            }
                         }
+                    } else {
+                        nSINR = mService.getSINR();
                     }
                     Log.e(LOGTAG, "Got response of mService.getSINR");
                     if (nSINR != Integer.MAX_VALUE) {
-                        result.setSINR(Integer.toString(nSINR));
+                        result.setSINR(Integer.toString((byte)nSINR));
                     } else {
                         return null;
                     }
@@ -3362,17 +3375,21 @@ public class FMStats extends Activity  {
 
             if(!isRomeChip()) {
                 try {
-                    mService.getIntDet();
-                    lastCmdSent = CMD_STNDBGPARAM_INFDETOUT;
-                    Log.e(LOGTAG, "wait for response of mService.getIntDet");
-                    synchronized (obj) {
-                        try {
-                            obj.wait();
-                        } catch (InterruptedException e) {
-                            Log.e(LOGTAG, "getIntDet:THREAD interrupted");
-                            e.printStackTrace();
-                            return null;
+                    if (isCherokeeChip) {
+                        mService.getIntDet();
+                        lastCmdSent = CMD_STNDBGPARAM_INFDETOUT;
+                        Log.e(LOGTAG, "wait for response of mService.getIntDet");
+                        synchronized (obj) {
+                            try {
+                                obj.wait();
+                            } catch (InterruptedException e) {
+                                Log.e(LOGTAG, "getIntDet:THREAD interrupted");
+                                e.printStackTrace();
+                                return null;
+                            }
                         }
+                    } else {
+                        nIntDet = mService.getIntDet();
                     }
                     Log.e(LOGTAG, "Got response of mService.getIntDet");
                     if (nIntDet != Integer.MAX_VALUE)
-- 
GitLab