diff --git a/DroidFish/res/values/strings.xml b/DroidFish/res/values/strings.xml index 0cb3afb..f993e99 100644 --- a/DroidFish/res/values/strings.xml +++ b/DroidFish/res/values/strings.xml @@ -29,6 +29,7 @@ you are not actively using the program.\ Bishop Knight Promote pawn to? + Clipboard Copy Game to Clipboard Copy Position to Clipboard Paste from Clipboard diff --git a/DroidFish/src/org/petero/droidfish/DroidFish.java b/DroidFish/src/org/petero/droidfish/DroidFish.java index 6b59b44..a92f9ad 100644 --- a/DroidFish/src/org/petero/droidfish/DroidFish.java +++ b/DroidFish/src/org/petero/droidfish/DroidFish.java @@ -695,6 +695,8 @@ public class DroidFish extends Activity implements GUIInterface { } @Override public void onLongPress(MotionEvent e) { + if (!boardGestures) + return; ((Vibrator)getSystemService(Context.VIBRATOR_SERVICE)).vibrate(20); removeDialog(BOARD_MENU_DIALOG); showDialog(BOARD_MENU_DIALOG); @@ -1650,6 +1652,7 @@ public class DroidFish extends Activity implements GUIInterface { static private final int NEW_NETWORK_ENGINE_DIALOG = 22; static private final int NETWORK_ENGINE_CONFIG_DIALOG = 23; static private final int DELETE_NETWORK_ENGINE_DIALOG = 24; + static private final int CLIPBOARD_DIALOG = 25; @Override protected Dialog onCreateDialog(int id) { @@ -1679,6 +1682,7 @@ public class DroidFish extends Activity implements GUIInterface { case NEW_NETWORK_ENGINE_DIALOG: return newNetworkEngineDialog(); case NETWORK_ENGINE_CONFIG_DIALOG: return networkEngineConfigDialog(); case DELETE_NETWORK_ENGINE_DIALOG: return deleteNetworkEngineDialog(); + case CLIPBOARD_DIALOG: return clipBoardDialog(); } return null; } @@ -1724,30 +1728,16 @@ public class DroidFish extends Activity implements GUIInterface { return alert; } - private final Dialog boardMenuDialog() { + private final Dialog clipBoardDialog() { final int COPY_GAME = 0; final int COPY_POSITION = 1; final int PASTE = 2; - final int SHARE = 3; - final int LOAD_GAME = 4; - final int SAVE_GAME = 5; - final int LOAD_SCID_GAME = 6; - final int GET_FEN = 7; List lst = new ArrayList(); List actions = new ArrayList(); lst.add(getString(R.string.copy_game)); actions.add(COPY_GAME); lst.add(getString(R.string.copy_position)); actions.add(COPY_POSITION); lst.add(getString(R.string.paste)); actions.add(PASTE); - lst.add(getString(R.string.share)); actions.add(SHARE); - lst.add(getString(R.string.load_game)); actions.add(LOAD_GAME); - lst.add(getString(R.string.save_game)); actions.add(SAVE_GAME); - if (hasScidProvider()) { - lst.add(getString(R.string.load_scid_game)); actions.add(LOAD_SCID_GAME); - } - if (hasFenProvider(getPackageManager())) { - lst.add(getString(R.string.get_fen)); actions.add(GET_FEN); - } final List finalActions = actions; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.tools_menu); @@ -1779,19 +1769,46 @@ public class DroidFish extends Activity implements GUIInterface { } break; } + } + } + }); + AlertDialog alert = builder.create(); + return alert; + } + + private final Dialog boardMenuDialog() { + final int CLIPBOARD = 0; + final int FILEMENU = 1; + final int SHARE = 2; + final int GET_FEN = 3; + + List lst = new ArrayList(); + List actions = new ArrayList(); + lst.add(getString(R.string.clipboard)); actions.add(CLIPBOARD); + lst.add(getString(R.string.option_file)); actions.add(FILEMENU); + lst.add(getString(R.string.share)); actions.add(SHARE); + if (hasFenProvider(getPackageManager())) { + lst.add(getString(R.string.get_fen)); actions.add(GET_FEN); + } + final List finalActions = actions; + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.tools_menu); + builder.setItems(lst.toArray(new CharSequence[lst.size()]), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int item) { + switch (finalActions.get(item)) { + case CLIPBOARD: { + showDialog(CLIPBOARD_DIALOG); + break; + } + case FILEMENU: { + removeDialog(FILE_MENU_DIALOG); + showDialog(FILE_MENU_DIALOG); + break; + } case SHARE: { shareGame(); break; } - case LOAD_GAME: - selectPgnFile(false); - break; - case LOAD_SCID_GAME: - selectScidFile(); - break; - case SAVE_GAME: - selectPgnFile(true); - break; case GET_FEN: getFen(); break; diff --git a/DroidFish/src/org/petero/droidfish/activities/EditBoard.java b/DroidFish/src/org/petero/droidfish/activities/EditBoard.java index bb162c6..1c65a46 100644 --- a/DroidFish/src/org/petero/droidfish/activities/EditBoard.java +++ b/DroidFish/src/org/petero/droidfish/activities/EditBoard.java @@ -203,6 +203,8 @@ public class EditBoard extends Activity { } @Override public void onLongPress(MotionEvent e) { + if (!boardGestures) + return; ((Vibrator)getSystemService(Context.VIBRATOR_SERVICE)).vibrate(20); showDialog(EDIT_DIALOG); }