am 92cc1d20: Merge "Telephony: Handle Icc Status Changed Event." into honeycomb-LTE

* commit '92cc1d20ae0e3dc7e0618027967145e26c1cb6e2':
  Telephony: Handle Icc Status Changed Event.
This commit is contained in:
Wink Saville
2011-05-15 14:43:49 -07:00
committed by Android Git Automerger
4 changed files with 14 additions and 1 deletions

View File

@@ -234,6 +234,9 @@ public interface CommandsInterface {
void registerForSIMLockedOrAbsent(Handler h, int what, Object obj); void registerForSIMLockedOrAbsent(Handler h, int what, Object obj);
void unregisterForSIMLockedOrAbsent(Handler h); void unregisterForSIMLockedOrAbsent(Handler h);
void registerForIccStatusChanged(Handler h, int what, Object obj);
void unregisterForIccStatusChanged(Handler h);
void registerForCallStateChanged(Handler h, int what, Object obj); void registerForCallStateChanged(Handler h, int what, Object obj);
void unregisterForCallStateChanged(Handler h); void unregisterForCallStateChanged(Handler h);
void registerForVoiceNetworkStateChanged(Handler h, int what, Object obj); void registerForVoiceNetworkStateChanged(Handler h, int what, Object obj);

View File

@@ -87,6 +87,7 @@ public abstract class IccCard {
private static final int EVENT_CHANGE_ICC_PASSWORD_DONE = 9; private static final int EVENT_CHANGE_ICC_PASSWORD_DONE = 9;
private static final int EVENT_QUERY_FACILITY_FDN_DONE = 10; private static final int EVENT_QUERY_FACILITY_FDN_DONE = 10;
private static final int EVENT_CHANGE_FACILITY_FDN_DONE = 11; private static final int EVENT_CHANGE_FACILITY_FDN_DONE = 11;
private static final int EVENT_ICC_STATUS_CHANGED = 12;
/* /*
UNKNOWN is a transient state, for example, after uesr inputs ICC pin under UNKNOWN is a transient state, for example, after uesr inputs ICC pin under
@@ -140,11 +141,14 @@ public abstract class IccCard {
public IccCard(PhoneBase phone, String logTag, Boolean dbg) { public IccCard(PhoneBase phone, String logTag, Boolean dbg) {
mPhone = phone; mPhone = phone;
mPhone.mCM.registerForIccStatusChanged(mHandler, EVENT_ICC_STATUS_CHANGED, null);
mLogTag = logTag; mLogTag = logTag;
mDbg = dbg; mDbg = dbg;
} }
abstract public void dispose(); public void dispose() {
mPhone.mCM.unregisterForIccStatusChanged(mHandler);
}
protected void finalize() { protected void finalize() {
if(mDbg) Log.d(mLogTag, "IccCard finalized"); if(mDbg) Log.d(mLogTag, "IccCard finalized");
@@ -601,6 +605,10 @@ public abstract class IccCard {
= ar.exception; = ar.exception;
((Message)ar.userObj).sendToTarget(); ((Message)ar.userObj).sendToTarget();
break; break;
case EVENT_ICC_STATUS_CHANGED:
Log.d(mLogTag, "Received Event EVENT_ICC_STATUS_CHANGED");
mPhone.mCM.getIccCardStatus(obtainMessage(EVENT_GET_ICC_STATUS_DONE));
break;
default: default:
Log.e(mLogTag, "[IccCard] Unknown Event " + msg.what); Log.e(mLogTag, "[IccCard] Unknown Event " + msg.what);
} }

View File

@@ -35,6 +35,7 @@ public final class RuimCard extends IccCard {
@Override @Override
public void dispose() { public void dispose() {
super.dispose();
//Unregister for all events //Unregister for all events
mPhone.mCM.unregisterForRUIMLockedOrAbsent(mHandler); mPhone.mCM.unregisterForRUIMLockedOrAbsent(mHandler);
mPhone.mCM.unregisterForOffOrNotAvailable(mHandler); mPhone.mCM.unregisterForOffOrNotAvailable(mHandler);

View File

@@ -55,6 +55,7 @@ public final class SimCard extends IccCard {
@Override @Override
public void dispose() { public void dispose() {
super.dispose();
//Unregister for all events //Unregister for all events
mPhone.mCM.unregisterForSIMLockedOrAbsent(mHandler); mPhone.mCM.unregisterForSIMLockedOrAbsent(mHandler);
mPhone.mCM.unregisterForOffOrNotAvailable(mHandler); mPhone.mCM.unregisterForOffOrNotAvailable(mHandler);