LightManager.java

/*
 * Copyright © 2012 Nokia Corporation. All rights reserved.
 * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
 * Oracle and Java are trademarks or registered trademarks of Oracle and/or its
 * affiliates. Other product and company names mentioned herein may be trademarks
 * or trade names of their respective owners.
 * See LICENSE.TXT for license information.
 */

package com.nokia.example.explonoid.effects;

import com.nokia.mid.ui.DeviceControl;
import java.util.Timer;
import java.util.TimerTask;

public class LightManager {

    private static final int NORMAL_LIGHT = 60;
    private static final int BRIGHT_LIGHT = 100;
    private static final int PULSE_DURATION = 60;
    private static Timer flasher = new Timer();
    private static Timer avoider;

    public static void avoidDimming() {
        if (avoider == null) {
            try {
                avoider = new Timer();
                avoider.schedule(new TimerTask() {

                    public void run() {
                        DeviceControl.setLights(0, NORMAL_LIGHT);
                    }
                }, 0, 5000);
            }
            catch (Exception e) {
            }
        }
    }

    public static void allowDimming() {
        if (avoider != null) {
            avoider.cancel();
            avoider = null;
        }
    }

    public static void pulse(int repeats) {
        try {
            flasher = new Timer();
            for (int i = 0; i < repeats; i++) {
                flasher.schedule(new TimerTask() {

                    public void run() {
                        DeviceControl.setLights(0, BRIGHT_LIGHT);
                    }
                }, 2 * i * PULSE_DURATION);
                flasher.schedule(new TimerTask() {

                    public void run() {
                        DeviceControl.setLights(0, NORMAL_LIGHT);
                    }
                }, PULSE_DURATION + 2 * i * PULSE_DURATION);
            }
        }
        catch (Exception e) {
        }
    }
}