package at.bakery.kippen.client.sensor; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.BatteryManager; import at.bakery.kippen.client.activity.INetworking; import at.bakery.kippen.client.activity.NetworkingTask; import at.bakery.kippen.common.data.BatteryData; public class BatterySensing extends BroadcastReceiver { private float capacity = -1; private boolean charging = false; private Lock updateLock = new ReentrantLock(); private INetworking net = NetworkingTask.getInstance(); @Override public void onReceive(Context context, Intent intent) { int lvl = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); float scl = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); updateLock.lock(); capacity = lvl / scl; charging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) > 0; net.sendPacket(new BatteryData(charging, capacity)); updateLock.unlock(); } }