diff --git a/DroidFish/AndroidManifest.xml b/DroidFish/AndroidManifest.xml index 8d004d3..69e9a2f 100644 --- a/DroidFish/AndroidManifest.xml +++ b/DroidFish/AndroidManifest.xml @@ -32,6 +32,11 @@ + + + + + diff --git a/DroidFish/src/org/petero/droidfish/DroidFish.java b/DroidFish/src/org/petero/droidfish/DroidFish.java index 67865ab..c349a4f 100644 --- a/DroidFish/src/org/petero/droidfish/DroidFish.java +++ b/DroidFish/src/org/petero/droidfish/DroidFish.java @@ -347,8 +347,8 @@ public class DroidFish extends Activity implements GUIInterface { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Pair pair = getPgnIntent(); - String intentPgn = pair.first; + Pair pair = getPgnOrFenIntent(); + String intentPgnOrFen = pair.first; String intentFilename = pair.second; createDirectories(); @@ -401,9 +401,9 @@ public class DroidFish extends Activity implements GUIInterface { ctrl.setGuiPaused(true); ctrl.setGuiPaused(false); ctrl.startGame(); - if (intentPgn != null) { + if (intentPgnOrFen != null) { try { - ctrl.setFENOrPGN(intentPgn); + ctrl.setFENOrPGN(intentPgnOrFen); setBoardFlip(true); } catch (ChessParseError e) { } @@ -439,19 +439,20 @@ public class DroidFish extends Activity implements GUIInterface { } /** - * Return PGN data or filename from the Intent. Both can not be non-null. - * @return Pair of pgndata and filename. + * Return PGN/FEN data or filename from the Intent. Both can not be non-null. + * @return Pair of PGN/FEN data and filename. */ - private final Pair getPgnIntent() { - String pgn = null; + private final Pair getPgnOrFenIntent() { + String pgnOrFen = null; String filename = null; try { Intent intent = getIntent(); Uri data = intent.getData(); if (data == null) { if (Intent.ACTION_SEND.equals(intent.getAction()) && - "application/x-chess-pgn".equals(intent.getType())) - pgn = intent.getStringExtra(Intent.EXTRA_TEXT); + ("application/x-chess-pgn".equals(intent.getType()) || + "application/x-chess-fen".equals(intent.getType()))) + pgnOrFen = intent.getStringExtra(Intent.EXTRA_TEXT); } else { String scheme = intent.getScheme(); if ("file".equals(scheme)) { @@ -472,14 +473,14 @@ public class DroidFish extends Activity implements GUIInterface { break; sb.append(new String(buffer, 0, len)); } - pgn = sb.toString(); + pgnOrFen = sb.toString(); } } } catch (IOException e) { Toast.makeText(getApplicationContext(), R.string.failed_to_read_pgn_data, Toast.LENGTH_SHORT).show(); } - return new Pair(pgn,filename); + return new Pair(pgnOrFen,filename); } private final byte[] strToByteArr(String str) {