Add logic to check dynamic property to enable/disable LPF

This adds check for system property defined whether to enable or
disable LPF in soc based on WIFI state or BT State during FM turn ON.
Also checks system property flag while DATA state is CONNECTED or
Disconnected  to decide whether to enable or disable LPF in SOC.

Change-Id: I566fc6439c7bbee7326548d92706d0c74b3ff97f
diff --git a/qcom/fmradio/FmReceiver.java b/qcom/fmradio/FmReceiver.java
index 5ba27c8..af7191a 100644
--- a/qcom/fmradio/FmReceiver.java
+++ b/qcom/fmradio/FmReceiver.java
@@ -372,8 +372,8 @@
               Log.d (TAG, "state: " + Integer.toString(state) +  " networkType: " + Integer.toString(networkType));
               if (state == TelephonyManager.DATA_CONNECTED) {
                   FMcontrolLowPassFilter(state, networkType, ENABLE_LPF);
-              } else {
-                  mControl.enableLPF(sFd, DISABLE_LPF);
+              } else if (state == TelephonyManager.DATA_DISCONNECTED) {
+                  FMcontrolLowPassFilter(state, networkType, DISABLE_LPF);
               }
        }
    };
@@ -401,13 +401,13 @@
 
            if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {
                int newState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
-                        WifiManager.WIFI_STATE_UNKNOWN);
+                       WifiManager.WIFI_STATE_UNKNOWN);
+               int mBtWlanLpf = SystemProperties.getInt("persist.btwlan.lpfenabler", 0);
                if (newState == WifiManager.WIFI_STATE_ENABLED) {
                    Log.d (TAG, "enable LPF on wifi enabled " + newState);
-                   int mBtWlanLpf = SystemProperties.getInt("persist.btwlan.lpfenabler", 0);
                    if ((mBtWlanLpf & mIsWlanLpfEnabled) == mIsWlanLpfEnabled)
                        mControl.enableLPF(sFd, ENABLE_LPF);
-               } else {
+               } else if ((mBtWlanLpf & mIsWlanLpfEnabled) == mIsWlanLpfEnabled) {
                    Log.d (TAG, "Disable LPF on wifi state other than enabled " + newState);
                    mControl.enableLPF(sFd, DISABLE_LPF);
                }
@@ -425,12 +425,12 @@
 
            if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
                int newState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
+               int mBtWlanLpf = SystemProperties.getInt("persist.btwlan.lpfenabler", 0);
                if (newState == BluetoothAdapter.STATE_ON) {
                    Log.d (TAG, "enable LPF on BT enabled " + newState);
-                   int mBtWlanLpf = SystemProperties.getInt("persist.btwlan.lpfenabler", 0);
                    if ((mBtWlanLpf & mIsBtLpfEnabled) == mIsBtLpfEnabled)
                        mControl.enableLPF(sFd, ENABLE_LPF);
-               } else {
+               } else if ((mBtWlanLpf & mIsBtLpfEnabled) == mIsBtLpfEnabled) {
                    Log.d (TAG, "Disable LPF on BT state other than enabled " + newState);
                    mControl.enableLPF(sFd, DISABLE_LPF);
                }
@@ -608,17 +608,22 @@
           mRdsData = new FmRxRdsData(sFd);
           registerDataConnectionStateListener(app_context);
           app_context.registerReceiver(mReceiver, mIntentFilter);
-         WifiManager wifiManager = (WifiManager)app_context.getSystemService(app_context.WIFI_SERVICE);
-         if (wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
-               Log.d(TAG, "enable LPF if WIFI is already on");
-               mControl.enableLPF(sFd, ENABLE_LPF);
-         }
-         app_context.registerReceiver(mBtReceiver, mBtIntentFilter);
-         BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
-         if (btAdapter != null) {
-               Log.d(TAG, "enable LPF if BT is already on");
-               mControl.enableLPF(sFd, ENABLE_LPF);
-         }
+          int mBtWlanLpf = SystemProperties.getInt("persist.btwlan.lpfenabler", 0);
+          WifiManager wifiManager = (WifiManager)app_context.getSystemService(app_context.WIFI_SERVICE);
+          if (wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
+              if ((mBtWlanLpf & mIsWlanLpfEnabled) == mIsWlanLpfEnabled) {
+                 Log.d(TAG, "enable LPF if WIFI is already on");
+                 mControl.enableLPF(sFd, ENABLE_LPF);
+              }
+          }
+          app_context.registerReceiver(mBtReceiver, mBtIntentFilter);
+          BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
+          if (btAdapter != null) {
+              if ((mBtWlanLpf & mIsWlanLpfEnabled) == mIsWlanLpfEnabled) {
+                  Log.d(TAG, "enable LPF if BT is already on");
+                  mControl.enableLPF(sFd, ENABLE_LPF);
+              }
+          }
       }
       else {
          status = false;
@@ -2955,141 +2960,122 @@
        {
 
            case TelephonyManager.NETWORK_TYPE_GPRS:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfGprs  & RatConf) == mEnableLpfGprs)) {
-                   Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
+               if ((mEnableLpfGprs  & RatConf) == mEnableLpfGprs) {
+                   Log.v (TAG, "set LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_EDGE:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfEdge  & RatConf) == mEnableLpfEdge)) {
-                   Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
+               if ((mEnableLpfEdge  & RatConf) == mEnableLpfEdge) {
+                   Log.v (TAG, "set LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_UMTS:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfUmts  & RatConf) == mEnableLpfUmts )) {
-                   Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
+               if ((mEnableLpfUmts  & RatConf) == mEnableLpfUmts ) {
+                   Log.v (TAG, "set LPF for net_type: " + Integer.toString(net_type));
+				   Log.v (TAG,  "enable:" + enable);
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_CDMA:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfCdma & RatConf) == mEnableLpfCdma)) {
+               if ((mEnableLpfCdma & RatConf) == mEnableLpfCdma) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_EVDO_0:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfEvdo0  & RatConf) == mEnableLpfEvdo0 )) {
+               if ((mEnableLpfEvdo0  & RatConf) == mEnableLpfEvdo0 ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_EVDO_A:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfEvdoA  & RatConf) == mEnableLpfEvdoA )) {
+               if ((mEnableLpfEvdoA  & RatConf) == mEnableLpfEvdoA ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_1xRTT:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpf1xRtt  & RatConf) == mEnableLpf1xRtt )) {
+               if ((mEnableLpf1xRtt  & RatConf) == mEnableLpf1xRtt ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_HSDPA:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfHsdpa  & RatConf) == mEnableLpfHsdpa )) {
+               if ((mEnableLpfHsdpa  & RatConf) == mEnableLpfHsdpa ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_HSUPA:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfHsupa & RatConf) == mEnableLpfHsupa)) {
+               if ((mEnableLpfHsupa & RatConf) == mEnableLpfHsupa) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_HSPA:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfHspa  & RatConf) == mEnableLpfHspa )) {
+               if ((mEnableLpfHspa  & RatConf) == mEnableLpfHspa ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_IDEN:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfIden  & RatConf) == mEnableLpfIden )) {
+               if ((mEnableLpfIden  & RatConf) == mEnableLpfIden ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_EVDO_B:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfEvdoB  & RatConf) == mEnableLpfEvdoB )) {
+               if ((mEnableLpfEvdoB  & RatConf) == mEnableLpfEvdoB ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_LTE:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfLte  & RatConf) == mEnableLpfLte )) {
+               if ((mEnableLpfLte  & RatConf) == mEnableLpfLte ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_EHRPD:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfEhrpd  & RatConf) == mEnableLpfEhrpd )) {
+               if ((mEnableLpfEhrpd  & RatConf) == mEnableLpfEhrpd ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_HSPAP:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfHspap  & RatConf) == mEnableLpfHspap)) {
+               if ((mEnableLpfHspap  & RatConf) == mEnableLpfHspap ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_GSM:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfGsm & RatConf) == mEnableLpfGsm)) {
+               if ((mEnableLpfGsm & RatConf) == mEnableLpfGsm ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            case TelephonyManager.NETWORK_TYPE_TD_SCDMA:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfScdma & RatConf) == mEnableLpfScdma)) {
+               if ((mEnableLpfScdma & RatConf) == mEnableLpfScdma ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
           case TelephonyManager.NETWORK_TYPE_IWLAN:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfIwlan  & RatConf) == mEnableLpfIwlan )) {
+               if ((mEnableLpfIwlan  & RatConf) == mEnableLpfIwlan ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
           case TelephonyManager.NETWORK_TYPE_LTE_CA:
-               if ((state == TelephonyManager.DATA_CONNECTED) &&
-                      ((mEnableLpfLteCa  & RatConf) == mEnableLpfLteCa )) {
+               if ((mEnableLpfLteCa  & RatConf) == mEnableLpfLteCa ) {
                    Log.d (TAG, "enabling LPF for net_type: " + Integer.toString(net_type));
                    mControl.enableLPF(sFd, enable);
                }
                break;
            default:
                Log.d (TAG, "net_type " + Integer.toString(net_type) + " doesn't need LPF enabling");
-               mControl.enableLPF(sFd, enable);
                break;
        }
    }