//Created by plusminus on 13:23:23 - 18.05.2008
package org.androad.ui.common;
import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
public class MyDataStateChangedWatcher extends PhoneStateListener{
// ===========================================================
// Final Fields
// ===========================================================
protected static final int CONNECTIONSTATE_WHAT_ID = 0x1337;
// ===========================================================
// Fields
// ===========================================================
final DataStateChangedListener mLis;
final Context mCtx;
final TelephonyManager mTelephonyManager;
// ===========================================================
// Constructors
// ===========================================================
public MyDataStateChangedWatcher(final Context ctx, final DataStateChangedListener lis){
this.mLis = lis;
this.mCtx = ctx;
this.mTelephonyManager = (TelephonyManager)this.mCtx.getSystemService(Context.TELEPHONY_SERVICE);
assert(this.mTelephonyManager != null);
this.mTelephonyManager.listen(this, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
@Override
public void onDataConnectionStateChanged(final int state) {
if(this.mLis != null){
final int strength;
switch(state){
case TelephonyManager.DATA_CONNECTED:
strength = 5;
break;
case TelephonyManager.DATA_CONNECTING:
strength = 1;
break;
case TelephonyManager.DATA_DISCONNECTED:
case TelephonyManager.DATA_SUSPENDED:
default:
strength = 0;
}
this.mLis.onDataStateChanged(strength);
}
}
// ===========================================================
// Methods
// ===========================================================
public void unregister() {
assert(this.mTelephonyManager != null);
this.mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}