Android Open Source - BatteryDaydream Fake Battery 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  www.j  a va2 s .c om
import android.content.Context;
import android.os.Handler;

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

import java.lang.ref.WeakReference;

/**
 * Fake battery monitor
 */
public class FakeBatteryMonitor implements BatteryMonitor {

    private static final int DELAY_MILLIS = 100;

    private final Mode mMode;
    private WeakReference<Context> mContext;
    private BatteryStateListener mBatteryStateListener;
    private int mLevel;
    private boolean mIncrement = true;
    private final Handler mLevelChangeHandler = new Handler();
    private final Runnable mLevelChangeRunnable = new Runnable() {
        @Override
        public void run() {
            if(mLevel == 0 || mLevel == 100) {
                //Change progress direction
                mIncrement = !mIncrement;
            }

            mLevel += mIncrement ? 1 : -1;
            if(mBatteryStateListener != null) {
                //notify listener
                mBatteryStateListener.onBatteryStateChanged(getBatteryState());
            }
            mLevelChangeHandler.postDelayed(this, DELAY_MILLIS);
        }
    };

    public FakeBatteryMonitor(Context context, Mode mode, int initialLevel) {
        mContext = new WeakReference<Context>(context);
        mMode = mode;
        mLevel = initialLevel;
    }

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

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

    @Override
    public void startListening() {
        if(mBatteryStateListener == null) {
            return;
        }

        mBatteryStateListener.onBatteryStateChanged(getBatteryState());

        switch (mMode) {
            case CONTINUOUS:
                mLevelChangeHandler.postDelayed(mLevelChangeRunnable, 100);
                break;
        }

    }

    @Override
    public void stopListening() {
        mLevelChangeHandler.removeCallbacks(mLevelChangeRunnable);
    }

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

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

    @NotNull public BatteryState getBatteryState() {
        BatteryState batteryState = new BatteryState();
        batteryState.setLevel(mLevel);

        return batteryState;
    }

    /**
     * {@link FakeBatteryMonitor} working mode
     */
    public enum Mode {
        /** Notify with constant (initial) value */
        CONSTANT,
        /** Continuously notify listener with changed value */
        CONTINUOUS
    }
}




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