Android Open Source - BatteryDaydream Battery Dream Service






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.service;
/*  w  ww  .j a  v  a2  s.co  m*/
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.service.dreams.DreamService;
import android.util.Log;

import org.jetbrains.annotations.NotNull;

import pl.patrykgrzegorczyk.batterydaydream.R;
import pl.patrykgrzegorczyk.batterydaydream.fragment.DefaultPreferenceFragment;
import pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryMonitor;
import pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryMonitorFactory;
import pl.patrykgrzegorczyk.batterydaydream.monitor.BatteryState;
import pl.patrykgrzegorczyk.batterydaydream.widget.BatteryLevel;
import pl.patrykgrzegorczyk.batterydaydream.widget.ChildAnimatingLayout;
import pl.patrykgrzegorczyk.batterydaydream.widget.ViewAnimatorProviderFactory;

/**
 * Main DayDream service
 */
public class BatteryDreamService extends DreamService implements BatteryMonitor.BatteryStateListener {

    private static final String TAG = "BatteryDreamService";

    private BatteryMonitor mBatteryMonitor;
    private BatteryLevel mBatteryLevel;

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();

        if (Log.isLoggable(TAG, Log.DEBUG)) {
            Log.d(TAG, "onAttachedToWindow()");
        }

        mBatteryMonitor = BatteryMonitorFactory.getMonitor(this);
        mBatteryMonitor.setBatteryStateListener(this);

        setInteractive(false);
        setFullscreen(true);
        setScreenBright(false);
        setContentView(R.layout.battery_daydream);

        ChildAnimatingLayout animatingLayout = (ChildAnimatingLayout) findViewById(R.id.animating_layout);
        animatingLayout.setViewAnimationProvider(ViewAnimatorProviderFactory.getViewAnimatorProvider(this));

        mBatteryLevel = (BatteryLevel) findViewById(R.id.battery_level);

        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
        setScreenBright(preferences.getBoolean(DefaultPreferenceFragment.KEY_NORMAL_BRIGHTNESS_MODE, false));

        boolean nightMode = preferences.getBoolean(DefaultPreferenceFragment.KEY_NIGHT_MODE, true);
        //In night mode decrease alpha to 0.3
        animatingLayout.setAlpha(nightMode ? 0.3f : 1.0f);
    }

    @Override
    public void onDetachedFromWindow() {
        super.onDetachedFromWindow();

        if(Log.isLoggable(TAG, Log.DEBUG)) {
            Log.d(TAG, "onDetachedFromWindow()");
        }

        mBatteryMonitor.setBatteryStateListener(null);
        mBatteryMonitor.setContext(null);
    }

    @Override
    public void onDreamingStarted() {
        super.onDreamingStarted();

        if (Log.isLoggable(TAG, Log.DEBUG)) {
            Log.d(TAG, "onDreamingStarted()");
        }

        mBatteryMonitor.startListening();
    }

    @Override
    public void onDreamingStopped() {
        super.onDreamingStopped();

        if (Log.isLoggable(TAG, Log.DEBUG)) {
            Log.d(TAG, "onDreamingStopped()");
        }

        mBatteryMonitor.stopListening();
    }

    @Override
    public void onBatteryStateChanged(@NotNull BatteryState batteryState) {
        //Update battery level info
        mBatteryLevel.setScale(batteryState.getScale());
        mBatteryLevel.setLevel(batteryState.getLevel());

    }
}




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