Fix #1. Добавлена поддержка клавиатуры и джойстика

This commit is contained in:
Victor 2015-05-03 15:44:37 +03:00
parent 6527e7d6bf
commit a42c232130

View File

@ -39,6 +39,13 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
public static final String EXTRA_SAVE = "save";
private static final String STATE_SAVEINFO = "saveinfo";
private static final int
ITEM_PREV_SCENE = 0,
ITEM_NEXT_SCENE = 1,
ITEM_NAVIGATE = 2,
ITEM_SAVE = 3,
ITEM_LOAD = 4;
private static final FadeInfo NO_FADE = new FadeInfo(false, false, 0);
private static ViewActivity instance;
@ -189,8 +196,44 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
Dialogs.with(this).showMenu(R.array.menu_items, menu);
if (event.getRepeatCount() != 0) {
return super.onKeyUp(keyCode, event);
}
switch (keyCode) {
case KeyEvent.KEYCODE_SPACE:
case KeyEvent.KEYCODE_BUTTON_A:
// Далее
onTouchGesture(TouchGestureType.SINGLE_TAP);
return true;
case KeyEvent.KEYCODE_MENU:
case KeyEvent.KEYCODE_ENTER:
case KeyEvent.KEYCODE_BUTTON_START:
// Меню
onTouchGesture(TouchGestureType.SWIPE);
return true;
case KeyEvent.KEYCODE_Q:
case KeyEvent.KEYCODE_BUTTON_SELECT:
// Меню выхода
onBackPressed();
return true;
case KeyEvent.KEYCODE_BUTTON_R1:
case KeyEvent.KEYCODE_S:
onMenuItemSelected(ITEM_SAVE);
return true;
case KeyEvent.KEYCODE_BUTTON_L1:
case KeyEvent.KEYCODE_L:
onMenuItemSelected(ITEM_LOAD);
return true;
case KeyEvent.KEYCODE_BUTTON_B:
onMenuItemSelected(ITEM_NAVIGATE);
return true;
case KeyEvent.KEYCODE_BUTTON_X:
onMenuItemSelected(ITEM_PREV_SCENE);
return true;
}
return super.onKeyUp(keyCode, event);
@ -198,19 +241,19 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
private void onMenuItemSelected(int item) {
switch (item) {
case 0:
case ITEM_PREV_SCENE:
Parser.getInstance().prevScene();
break;
case 1:
case ITEM_NEXT_SCENE:
Parser.getInstance().nextScene();
break;
case 2:
case ITEM_NAVIGATE:
Dialogs.with(getInstance()).showNavigate();
break;
case 3:
case ITEM_SAVE:
saveState();
break;
case 4:
case ITEM_LOAD:
showLoadStateDialog();
break;
}