Modification of API and Event

Modified the service state event
Modified getDataConnectionState API

Merging l-dev commit 96e9b4a617cdda27c7b8b0332f9314df3525e1a6
Change-Id: I8debca3edce18b388b35a036c7773a462cde28cc
diff --git a/Common/src/com/googlecode/android_scripting/facade/tele/PhoneFacade.java b/Common/src/com/googlecode/android_scripting/facade/tele/PhoneFacade.java
index ff4c1db..8cc5041 100755
--- a/Common/src/com/googlecode/android_scripting/facade/tele/PhoneFacade.java
+++ b/Common/src/com/googlecode/android_scripting/facade/tele/PhoneFacade.java
@@ -509,6 +509,32 @@
         return key;
     }
 
+    @Rpc(description = "Sets the preferred Network type")
+    public void setPreferredNetwork(Integer networktype) {
+        android.provider.Settings.Global.putInt(mService.getContentResolver(),
+                android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                networktype );
+        mTelephonyManager.setPreferredNetworkType(networktype);
+    }
+
+    @Rpc(description = "Returns the current data connection state")
+    public String getDataConnectionState() {
+        int state = mTelephonyManager.getDataState();
+
+        switch(state) {
+            case TelephonyManager.DATA_DISCONNECTED:
+                return "DATA_DISCONNECTED";
+            case TelephonyManager.DATA_CONNECTING:
+                return "DATA_CONNECTING";
+            case TelephonyManager.DATA_CONNECTED:
+                return "DATA_CONNECTED";
+            case TelephonyManager.DATA_SUSPENDED:
+                return "DATA_SUSPENDED";
+            default:
+                return "DATA_UNKNOWN";
+        }
+    }
+
     @Override
     public void shutdown() {
         phoneStopTrackingCallStateChange();
diff --git a/Common/src/com/googlecode/android_scripting/facade/tele/TelephonyStateListeners.java b/Common/src/com/googlecode/android_scripting/facade/tele/TelephonyStateListeners.java
index 834d8cb..ede261d 100644
--- a/Common/src/com/googlecode/android_scripting/facade/tele/TelephonyStateListeners.java
+++ b/Common/src/com/googlecode/android_scripting/facade/tele/TelephonyStateListeners.java
@@ -170,7 +170,12 @@
             }
             event.putString("OperatorName", serviceState.getOperatorAlphaLong());
             event.putString("OperatorId", serviceState.getOperatorNumeric());
-            mEventFacade.postEvent("onServiceStateChanged", event);
+            event.putBoolean("ManualNwSelection", serviceState.getIsManualSelection());
+            event.putBoolean("Roaming", serviceState.getRoaming());
+            event.putBoolean("isEmergencyOnly", serviceState.isEmergencyOnly());
+
+            mEventFacade.postEvent("onServiceStateChanged", event.clone());
+            event.clear();
         }
     }