Skip to content
Snippets Groups Projects
Commit e1717fa1 authored by Matyáš Latner's avatar Matyáš Latner
Browse files

Merge branch 'feature-menu' into 'devel'

#80 Closing main menu using back button on Android



See merge request !178
parents 19141d06 cfe7acb5
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,9 @@ import cz.nic.tablexia.loader.application.ApplicationFontManager;
import cz.nic.tablexia.loader.application.ApplicationInternalSoundManager;
import cz.nic.tablexia.loader.application.ApplicationTextManager;
import cz.nic.tablexia.loader.zip.ZipAssetLoader;
import cz.nic.tablexia.menu.AbstractMenu;
import cz.nic.tablexia.menu.MenuController;
import cz.nic.tablexia.menu.main.MainMenu;
import cz.nic.tablexia.screen.AbstractTablexiaScreen;
import cz.nic.tablexia.screen.loader.IConnectionManager;
import cz.nic.tablexia.util.Log;
......@@ -110,7 +112,7 @@ public class Tablexia extends TablexiaApplication {
addMenuController(menuController);
}
@Override
@Override
public void resize(int width, int height) {
super.resize(width, height);
if(menuController != null) {
......@@ -157,6 +159,19 @@ public class Tablexia extends TablexiaApplication {
}
//////////////////////////// BACK BUTTON HANDLER
@Override
public boolean onBackButtonDown() {
if(menuController != null && !menuController.isMenuClosed(MainMenu.class) && !menuController.isMenuHidden(MainMenu.class)) {
menuController.doMenuAction(MainMenu.class, AbstractMenu.MenuAction.CLOSE, true, false);
return false;
}
return true;
}
//////////////////////////// APPLICATION FLOW HANDLERS
@Handler
......
......@@ -183,12 +183,20 @@ public abstract class TablexiaApplication implements ApplicationListener {
@Override
public boolean keyDown(int keycode) {
if (keycode == Input.Keys.BACK && screen != null && screenPrepared) {
screen.backButtonPressed();
if(onBackButtonDown()) {
screen.backButtonPressed();
}
}
return false;
}
};
/**
* Override this method to handle back button down event on your own
* @return true if u want the event to be send to the current screen
*/
public boolean onBackButtonDown() { return true; }
//////////////////////////// SCREEN DIMMER
......@@ -472,6 +480,14 @@ public abstract class TablexiaApplication implements ApplicationListener {
processNewScreen(screen);
}
/**
* Returns whether or not is screen prepared
* @return screenPrepared
*/
public boolean isScreenPrepared() {
return screenPrepared;
}
/**
* Change current screen to new screen with screen transaction.
* If new screen is same as current screen no change is performed.
......
......@@ -68,6 +68,14 @@ public class MenuController extends Group implements Disposable {
initMenu(UserMenu.class);
}
public boolean isMenuClosed(final Class<? extends AbstractMenu> menuClass) {
return menus.get(menuClass).isMenuClose();
}
public boolean isMenuHidden(final Class<? extends AbstractMenu> menuClass) {
return menus.get(menuClass).isMenuHidden();
}
public void initMenu (Class<? extends AbstractMenu> menuClass) {
try {
AbstractMenu menu = menuClass.getConstructor(Float.class, Float.class).newInstance(getWidth() * MAIN_MENU_WIDTH_RATIO, getHeight());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment