From 88c9e9b9a53ab2a1b1903c82c2089e52c3b82f4c Mon Sep 17 00:00:00 2001 From: Peter Withers Date: Tue, 3 Feb 2015 17:29:30 +0100 Subject: [PATCH] Resolved an issue with the android hardware back button causing a blank screen that redraws when touched. closes #174 Adding the suggested labels to the quiz selection screen. closes #206 --- gwt-cordova/pom.xml | 2 +- gwt-cordova/setup-cordova.sh | 2 +- .../synaesthesia/client/AppController.java | 9 +++- .../presenter/StimulusMenuPresenter.java | 53 +++++++++++-------- .../synaesthesia/client/view/MenuView.java | 27 ++++++++-- .../synaesthesia/client/Messages.properties | 5 +- .../src/main/webapp/GraphemeColour.css | 4 ++ 7 files changed, 71 insertions(+), 31 deletions(-) diff --git a/gwt-cordova/pom.xml b/gwt-cordova/pom.xml index 43699b9..b75970a 100644 --- a/gwt-cordova/pom.xml +++ b/gwt-cordova/pom.xml @@ -9,7 +9,7 @@ nl.ru.languageininteraction synquiz war - 1.0.95-testing + 1.0.96-testing SynQuiz Language In Interaction diff --git a/gwt-cordova/setup-cordova.sh b/gwt-cordova/setup-cordova.sh index e2fa590..0d1b236 100644 --- a/gwt-cordova/setup-cordova.sh +++ b/gwt-cordova/setup-cordova.sh @@ -1,6 +1,6 @@ #mvn install cd target -synquizname=synquiz-1.0.95-testing +synquizname=synquiz-1.0.96-testing rm -rf $synquizname-cordova unzip $synquizname-cordova.zip -d $synquizname-cordova cd $synquizname-cordova diff --git a/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/AppController.java b/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/AppController.java index 99545c6..e756a5f 100644 --- a/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/AppController.java +++ b/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/AppController.java @@ -19,6 +19,8 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.JavaScriptException; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.user.client.Command; import nl.ru.languageininteraction.synaesthesia.client.service.LocalStorage; import nl.ru.languageininteraction.synaesthesia.client.service.StimuliProvider; import nl.ru.languageininteraction.synaesthesia.client.model.UserResults; @@ -179,7 +181,12 @@ public void start() { } public void backAction() { - presenter.fireBackEvent(); + Scheduler.get().scheduleDeferred(new Command() { + @Override + public void execute() { + presenter.fireBackEvent(); + } + }); } public void resizeAction() { diff --git a/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/presenter/StimulusMenuPresenter.java b/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/presenter/StimulusMenuPresenter.java index 9991cb7..ce49ed0 100644 --- a/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/presenter/StimulusMenuPresenter.java +++ b/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/presenter/StimulusMenuPresenter.java @@ -33,12 +33,10 @@ public class StimulusMenuPresenter extends MenuPresenter implements Presenter { private final StimuliProvider stimuliProvider; - private final UserResults userResults; public StimulusMenuPresenter(RootLayoutPanel widgetTag, StimuliProvider stimuliProvider, UserResults userResults) { super(widgetTag, userResults); this.stimuliProvider = stimuliProvider; - this.userResults = userResults; } @Override @@ -46,30 +44,39 @@ protected void setTitle(PresenterEventListner titleBarListner) { simpleView.addTitle(messages.stimulusMenuTitle(), titleBarListner); } - @Override - protected void setContent(final AppEventListner appEventListner) { -// setMenuOption(appEventListner, AppEventListner.ApplicationState.setuser); - for (final StimuliGroup stimuliGroup : stimuliProvider.getStimuli()) { - final String buttonLabel; - if (userResults.getStimulusResponseGroup(stimuliGroup) != null) { - buttonLabel = messages.stimulusMenuDoneButton(stimuliGroup.getGroupLabel()); - } else { - buttonLabel = messages.stimulusMenuNotDoneButton(stimuliGroup.getGroupLabel()); + private void addMenuItem(final AppEventListner appEventListner, final StimuliGroup stimuliGroup) { + final String buttonLabel; + if (userResults.getStimulusResponseGroup(stimuliGroup) != null) { + buttonLabel = messages.stimulusMenuDoneButton(stimuliGroup.getGroupLabel()); + } else { + buttonLabel = messages.stimulusMenuNotDoneButton(stimuliGroup.getGroupLabel()); + } + ((MenuView) simpleView).addMenuItem(new PresenterEventListner() { + + @Override + public void eventFired(Button button) { + userResults.setPendingStimuliGroup(stimuliGroup); + appEventListner.requestApplicationState(AppEventListner.ApplicationState.instructions); } - ((MenuView) simpleView).addMenuItem(new PresenterEventListner() { - @Override - public void eventFired(Button button) { - userResults.setPendingStimuliGroup(stimuliGroup); - appEventListner.requestApplicationState(AppEventListner.ApplicationState.instructions); - } + @Override + public String getLabel() { + return buttonLabel; + } + }, true); + } - @Override - public String getLabel() { - return buttonLabel; - } - }, true); - } + @Override + protected void setContent(final AppEventListner appEventListner) { +// setMenuOption(appEventListner, AppEventListner.ApplicationState.setuser); + ((MenuView) simpleView).addMenuLabel(messages.stimulusMenuShortTestLabel(), true); + final StimuliGroup[] stimuliGroups = stimuliProvider.getStimuli(); + addMenuItem(appEventListner, stimuliGroups[0]); + addMenuItem(appEventListner, stimuliGroups[1]); + addMenuItem(appEventListner, stimuliGroups[2]); + ((MenuView) simpleView).addMenuLabel(messages.stimulusMenuLongTestLabelBold(), true); + ((MenuView) simpleView).addMenuLabel(messages.stimulusMenuLongTestLabel(), false); + addMenuItem(appEventListner, stimuliGroups[3]); // setMenuOption(appEventListner, AppEventListner.ApplicationState.report); } } diff --git a/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/view/MenuView.java b/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/view/MenuView.java index d7574d1..968366b 100644 --- a/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/view/MenuView.java +++ b/gwt-cordova/src/main/java/nl/ru/languageininteraction/synaesthesia/client/view/MenuView.java @@ -25,7 +25,9 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FlexTable; +import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HasHorizontalAlignment; +import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.Label; import java.util.ArrayList; import nl.ru.languageininteraction.synaesthesia.client.listener.PresenterEventListner; @@ -36,10 +38,10 @@ */ public class MenuView extends ComplexView { - final private ArrayList