Minor change to TelephonyStateListeners and PhoneFacade.
1. To avoid timeout loop in python test script, make change in TelephonyStateListeners:
change "onCallStateChanged" post event to "onCallStateChanged<subEventName>";
change "onServiceStateChanged" post event to "onServiceStateChanged<subEventName>";
Change "onPreciseStateChanged" post event to "onPreceiseStateChanged<subEventName>".
2. Make API change "phoneStopTrackingServicetateChange" to "phoneStopTrackingServiceStateChange".
New name makes more sense.
Change-Id: I41453a78c007779625c8a05bf723fcd8c030fe70
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 8cc5041..fb2d999 100755
--- a/Common/src/com/googlecode/android_scripting/facade/tele/PhoneFacade.java
+++ b/Common/src/com/googlecode/android_scripting/facade/tele/PhoneFacade.java
@@ -162,7 +162,7 @@
}
@Rpc(description = "Stops tracking service state change.")
- public void phoneStopTrackingServicetateChange() {
+ public void phoneStopTrackingServiceStateChange() {
mTelephonyManager.listen(mServiceStateChangeListener, PhoneStateListener.LISTEN_NONE);
}
@@ -539,6 +539,6 @@
public void shutdown() {
phoneStopTrackingCallStateChange();
phoneStopTrackingPowerLevelChange();
- phoneStopTrackingServicetateChange();
+ phoneStopTrackingServiceStateChange();
}
}
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 ede261d..8858b5f 100644
--- a/Common/src/com/googlecode/android_scripting/facade/tele/TelephonyStateListeners.java
+++ b/Common/src/com/googlecode/android_scripting/facade/tele/TelephonyStateListeners.java
@@ -36,21 +36,37 @@
@Override
public void onCallStateChanged(int state, String incomingNumber) {
Bundle mCallStateEvent = new Bundle();
- if (incomingNumber.length() > 0) {
- mCallStateEvent.putString("incomingNumber", incomingNumber);
+ String subEvent = null;
+ String postIncomingNumberStr = null;
+ int len = incomingNumber.length();
+ if (len > 0) {
+ /**
+ * Currently this incomingNumber modification is specific for US numbers.
+ */
+ if ((12 == len) && ('+' == incomingNumber.charAt(0))) {
+ postIncomingNumberStr = incomingNumber.substring(1);
+ } else if (10 == len) {
+ postIncomingNumberStr = '1' + incomingNumber;
+ } else {
+ postIncomingNumberStr = incomingNumber;
+ }
+ mCallStateEvent.putString("incomingNumber", postIncomingNumberStr);
}
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
mCallStateEvent.putString("State", "IDLE");
+ subEvent = "Idle";
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
mCallStateEvent.putString("State", "OFFHOOK");
+ subEvent = "Offhook";
break;
case TelephonyManager.CALL_STATE_RINGING:
mCallStateEvent.putString("State", "RINGING");
+ subEvent = "Ringing";
break;
}
- mEventFacade.postEvent("onCallStateChanged", mCallStateEvent.clone());
+ mEventFacade.postEvent("onCallStateChanged"+subEvent, mCallStateEvent.clone());
mCallStateEvent.clear();
}
@@ -75,28 +91,38 @@
private void processCallState(int newState, String which, PreciseCallState callState) {
Bundle EventMsg = new Bundle();
+ String subEvent = null;
EventMsg.putString("Type", which);
if (newState == PreciseCallState.PRECISE_CALL_STATE_ACTIVE) {
EventMsg.putString("State", "ACTIVE");
+ subEvent = "Active";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_HOLDING) {
EventMsg.putString("State", "HOLDING)");
+ subEvent = "Holding";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_DIALING) {
EventMsg.putString("State", "DIALING");
+ subEvent = "Dialing";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_ALERTING) {
EventMsg.putString("State", "ALERTING");
+ subEvent = "Alerting";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_INCOMING) {
EventMsg.putString("State", "INCOMING");
+ subEvent = "Incoming";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_WAITING) {
EventMsg.putString("State", "WAITING");
+ subEvent = "Waiting";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_DISCONNECTED) {
EventMsg.putString("State", "DISCONNECTED");
+ subEvent = "Disconnected";
EventMsg.putInt("Cause", callState.getPreciseDisconnectCause());
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_DISCONNECTING) {
EventMsg.putString("State", "DISCONNECTING");
+ subEvent = "Disconnecting";
} else if (newState == PreciseCallState.PRECISE_CALL_STATE_IDLE) {
EventMsg.putString("State", "IDLE");
+ subEvent = "Idle";
}
- mEventFacade.postEvent("onPreciseStateChanged", EventMsg);
+ mEventFacade.postEvent("onPreciseStateChanged"+subEvent, EventMsg);
}
}
@@ -153,19 +179,24 @@
@Override
public void onServiceStateChanged(ServiceState serviceState) {
- Bundle event = new Bundle();;
+ Bundle event = new Bundle();
+ String subEvent = null;
switch(serviceState.getVoiceRegState()) {
case ServiceState.STATE_EMERGENCY_ONLY:
event.putString("State", "EMERGENCY_ONLY");
+ subEvent = "EmergencyOnly";
break;
case ServiceState.STATE_IN_SERVICE:
event.putString("State", "IN_SERVICE");
+ subEvent = "InService";
break;
case ServiceState.STATE_OUT_OF_SERVICE:
event.putString("State","OUT_OF_SERVICE");
+ subEvent = "OutOfService";
break;
case ServiceState.STATE_POWER_OFF:
event.putString("State", "POWER_OFF");
+ subEvent = "PowerOff";
break;
}
event.putString("OperatorName", serviceState.getOperatorAlphaLong());
@@ -174,7 +205,7 @@
event.putBoolean("Roaming", serviceState.getRoaming());
event.putBoolean("isEmergencyOnly", serviceState.isEmergencyOnly());
- mEventFacade.postEvent("onServiceStateChanged", event.clone());
+ mEventFacade.postEvent("onServiceStateChanged"+subEvent, event.clone());
event.clear();
}
}