/*
Copyright (C) 2013 Haowen Ning
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 2
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, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.liberty.android.fantastischmemo.service.cardplayer;
import android.os.Handler;
import org.liberty.android.fantastischmemo.common.AnyMemoDBOpenHelper;
import org.liberty.android.fantastischmemo.entity.Card;
import org.liberty.android.fantastischmemo.utils.CardTTSUtil;
/*
* The context for the CardPlayer state machine. It include all the information
* the state machine needs to handle.
*/
public class CardPlayerContext {
private volatile CardPlayerState state = CardPlayerState.STOPPED;
private volatile Card currentCard;
private final CardPlayerEventHandler eventHandler;
private final CardTTSUtil cardTTSUtil;
private final Handler amTTSServiceHandler;
private final AnyMemoDBOpenHelper dbOpenHelper;
private final int delayBeteenQAInSec;
private final int delayBeteenCardsInSec;
private final boolean shuffle;
private final boolean repeat;
public CardPlayerContext(CardPlayerEventHandler eventHandler,
CardTTSUtil cardTTSUtil,
Handler amTTSServiceHandler,
AnyMemoDBOpenHelper dbOpenHelper,
int delayBeteenQAInSec,
int delayBeteenCardsInSec,
boolean shuffle,
boolean repeat) {
this.eventHandler = eventHandler;
this.cardTTSUtil = cardTTSUtil;
this.amTTSServiceHandler = amTTSServiceHandler;
this.dbOpenHelper = dbOpenHelper;
this.delayBeteenQAInSec = delayBeteenQAInSec;
this.delayBeteenCardsInSec = delayBeteenCardsInSec;
this.shuffle = shuffle;
this.repeat = repeat;
}
public CardPlayerState getState() {
return state;
}
public void setState(CardPlayerState state) {
this.state = state;
}
public Card getCurrentCard() {
return currentCard;
}
public void setCurrentCard(Card currentCard) {
this.currentCard = currentCard;
}
public CardPlayerEventHandler getEventHandler() {
return eventHandler;
}
public CardTTSUtil getCardTTSUtil() {
return cardTTSUtil;
}
public Handler getAmTTSServiceHandler() {
return amTTSServiceHandler;
}
public AnyMemoDBOpenHelper getDbOpenHelper() {
return dbOpenHelper;
}
public int getDelayBeteenQAInSec() {
return delayBeteenQAInSec;
}
public int getDelayBeteenCardsInSec() {
return delayBeteenCardsInSec;
}
public boolean getShuffle() {
return shuffle;
}
public boolean getRepeat() {
return repeat;
}
}