Android Open Source - BatteryDaydream Battery Manager Monitor






From Project

Back to project page BatteryDaydream.

License

The source code is released under:

Apache License

If you think the Android project BatteryDaydream listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pl.patrykgrzegorczyk.batterydaydream.monitor;
/*from   w ww. j  ava  2  s  .  c o m*/
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Bundle;
import android.util.Log;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.lang.ref.WeakReference;

/**
 * Monitors BatteryManager
 */
public class BatteryManagerMonitor extends BroadcastReceiver implements BatteryMonitor {

    private static final String TAG = "BatteryManagerMonitor";

    private BatteryStateListener mBatteryStateListener;
    private WeakReference<Context> mContext;

    public BatteryManagerMonitor(Context context) {
        mContext = new WeakReference<Context>(context);
    }

    @Override
    @Nullable public Context getContext() {
        return mContext.get();
    }

    @Override
    public void setContext(@Nullable Context context) {
        mContext = new WeakReference<Context>(context);
    }

    @Override
    public void startListening() {
        Context context = mContext.get();
        if(context == null) {
            return;
        }
        context.registerReceiver(this, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    }

    @Override
    public void stopListening() {
        Context context = mContext.get();
        if(context == null) {
            return;
        }
        context.unregisterReceiver(this);
    }

    @Override
    @Nullable public BatteryStateListener getBatteryStateListener() {
        return mBatteryStateListener;
    }

    @Override
    public void setBatteryStateListener(@Nullable BatteryStateListener batteryStateListener) {
        mBatteryStateListener = batteryStateListener;
    }

    @Override
    public void onReceive(Context context, @NotNull Intent intent) {
        if(Log.isLoggable(TAG, Log.VERBOSE)) {
            Log.v(TAG, "onReceive() " + intent);
        }

        if(!intent.hasExtra(BatteryManager.EXTRA_LEVEL)) {
            //Only interested in intents with battery level
            return;
        }

        Bundle extras = intent.getExtras();
        if(extras ==  null) {
            //Shouldn't normally happen
            return;
        }

        if(mBatteryStateListener == null) {
            return;
        }

        BatteryState batteryState = new BatteryState(extras);

        //Notify listener
        mBatteryStateListener.onBatteryStateChanged(batteryState);
    }

}




Java Source Code List

pl.patrykgrzegorczyk.batterydaydream.activity.DebugSettingsActivity.java
pl.patrykgrzegorczyk.batterydaydream.activity.SettingsActivity.java
pl.patrykgrzegorczyk.batterydaydream.fragment.DebugPreferenceFragment.java
pl.patrykgrzegorczyk.batterydaydream.fragment.DefaultPreferenceFragment.java
pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryManagerMonitor.java
pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryMonitorFactory.java
pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryMonitor.java
pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryState.java
pl.patrykgrzegorczyk.batterydaydream.monitor.FakeBatteryMonitor.java
pl.patrykgrzegorczyk.batterydaydream.service.BatteryDreamService.java
pl.patrykgrzegorczyk.batterydaydream.test.BatteryStateTest.java
pl.patrykgrzegorczyk.batterydaydream.widget.BatteryLevel.java
pl.patrykgrzegorczyk.batterydaydream.widget.ChildAnimatingLayout.java
pl.patrykgrzegorczyk.batterydaydream.widget.HideShowAnimatorProvider.java
pl.patrykgrzegorczyk.batterydaydream.widget.TranslateViewAnimatorProvider.java
pl.patrykgrzegorczyk.batterydaydream.widget.ViewAnimatorProviderFactory.java