/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the Common Development
* and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at
* src/com/vodafone360/people/VODAFONE.LICENSE.txt or
* http://github.com/360/360-Engine-for-Android
* See the License for the specific language governing permissions and
* limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each file and
* include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt.
* If applicable, add the following below this CDDL HEADER, with the fields
* enclosed by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
* Copyright 2010 Vodafone Sales & Services Ltd. All rights reserved.
* Use is subject to license terms.
*/
package com.vodafone360.people.service.receivers;
import com.vodafone360.people.utils.LogUtils;
import com.vodafone360.people.utils.SimCard;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
/**
* The SimStateReceiver is a BroadcastReceiver used to listen for SIM state changes.
*
* @see INTENT_SIM_STATE_CHANGED
*/
public class SimStateReceiver extends BroadcastReceiver {
/**
* The Listener interface.
*/
public interface Listener {
/**
* Callback method when SIM is ready.
*/
void onSimReadyState();
}
/**
* The Intent broadcasted by the Android platform when the SIM card state changes.
*/
public final static String INTENT_SIM_STATE_CHANGED = "android.intent.action.SIM_STATE_CHANGED";
/**
* The registered Listener.
*/
private final Listener mListener;
/**
* The SimStateReceiver constructor.
*
* @param listener the registered listener
*/
public SimStateReceiver(Listener listener) {
LogUtils.logD("SimStateReceiver instance created.");
mListener = listener;
}
/**
* @see BroadcastReceiver#onReceive(Context, Intent)
*/
@Override
public void onReceive(Context context, Intent intent) {
final int simState = SimCard.getState(context);
LogUtils.logD("SimStateReceiver.onReceive() - simState="+simState);
if (simState == TelephonyManager.SIM_STATE_READY) {
mListener.onSimReadyState();
}
}
}