Android Open Source - Toe Haptic Feedback Helper






From Project

Back to project page Toe.

License

The source code is released under:

GNU General Public License

If you think the Android project Toe 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

/**
 * @author John Piser developer@earthblood.com
 */* w  w w  .jav a 2 s  .  c  om*/
 * Copyright (C) 2014 EARTHBLOOD, LLC
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package com.earthblood.tictactoe.helper;

import android.os.Vibrator;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;

import com.google.inject.Inject;

import java.util.List;

public class HapticFeedbackHelper {

    public static final long[] VIBE_PATTERN_SHORT = {0, 50, 1000 };
    public static final long[] VIBE_PATTERN_WIN = new long[]{0,200,50,200,50,200};
    public static final long[] VIBE_PATTERN_ANDROID_WIN = new long[]{0,100,50,100,50,100};
    public static final int    VIBE_PATTERN_NO_REPEAT = -1;

    private static boolean vibeFlag = true;

    @Inject Vibrator vibrator;

    public void vibrate(long[] pattern, int repeat){
        vibrator.vibrate(pattern, repeat);
    }
    public long[] getWinningPattern(boolean androidWon){
        return androidWon ? VIBE_PATTERN_ANDROID_WIN : VIBE_PATTERN_WIN;
    }
    public void addFeedbackToButtonList(List<Button> buttons){
        for (Button button : buttons) {
               button.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if(event.getAction() == MotionEvent.ACTION_DOWN) {
                        if(vibeFlag) vibrator.vibrate(VIBE_PATTERN_SHORT, VIBE_PATTERN_NO_REPEAT);
                        vibeFlag = false;
                    }
                    else if (event.getAction() == MotionEvent.ACTION_UP) {
                        vibeFlag = true;
                    }
                    return false;
                }
            });
        }
    }
    public void addFeedbackToButton(Button button, final long[] pattern, final int repeat){
        button.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_DOWN) {
                    if(vibeFlag) vibrator.vibrate(pattern, repeat);
                    vibeFlag = false;
                }
                else if (event.getAction() == MotionEvent.ACTION_UP) {
                    vibeFlag = true;
                }
                return false;
            }
        });
    }
}




Java Source Code List

com.earthblood.tictactoe.activity.GameActivity.java
com.earthblood.tictactoe.activity.MainActivity.java
com.earthblood.tictactoe.application.Toe.java
com.earthblood.tictactoe.contentprovider.GameContentProvider.java
com.earthblood.tictactoe.engine.ToeGame.java
com.earthblood.tictactoe.guice.ToeRoboModule.java
com.earthblood.tictactoe.helper.CoinTossHelper.java
com.earthblood.tictactoe.helper.GameDatabaseHelper.java
com.earthblood.tictactoe.helper.HapticFeedbackHelper.java
com.earthblood.tictactoe.helper.HtmlHelper.java
com.earthblood.tictactoe.helper.PreferenceHelperImpl.java
com.earthblood.tictactoe.helper.PreferenceHelper.java
com.earthblood.tictactoe.strategy.StrategyItemPatternDetector.java
com.earthblood.tictactoe.strategy.StrategyItemPickMiddleBox.java
com.earthblood.tictactoe.strategy.StrategyItemPickRandomBox.java
com.earthblood.tictactoe.strategy.StrategyItem.java
com.earthblood.tictactoe.strategy.ToeStrategyBase.java
com.earthblood.tictactoe.strategy.ToeStrategyEasy.java
com.earthblood.tictactoe.strategy.ToeStrategyExplicit.java
com.earthblood.tictactoe.strategy.ToeStrategyHard.java
com.earthblood.tictactoe.strategy.ToeStrategyNormal.java
com.earthblood.tictactoe.strategy.ToeStrategyVeryHard.java
com.earthblood.tictactoe.strategy.ToeStrategy.java
com.earthblood.tictactoe.util.GameBox.java
com.earthblood.tictactoe.util.GamePreference.java
com.earthblood.tictactoe.util.GameStatus.java
com.earthblood.tictactoe.util.GameSymbol.java
com.earthblood.tictactoe.util.GameWinPattern.java
com.earthblood.tictactoe.util.Skill.java