Modify onImportDialogPositiveClick of MainActivity so that it makes sure the input string has the right format
This commit is contained in:
parent
67e73a6175
commit
6e638afe41
1 changed files with 35 additions and 2 deletions
|
@ -407,13 +407,46 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
public void onImportDialogPositiveClick(String input) {
|
public void onImportDialogPositiveClick(String input) {
|
||||||
boolean solvable = CreateSudokuActivity.verify(MainActivity.this, GameType.Default_9x9, input);
|
String inputSudoku;
|
||||||
|
String prefix1 = GameActivity.URL_SCHEME_WITHOUT_HOST + "://";
|
||||||
|
String prefix2 = GameActivity.URL_SCHEME_WITH_HOST + "://" + GameActivity.URL_HOST + "/";
|
||||||
|
|
||||||
|
if (input.contains(prefix1)) {
|
||||||
|
inputSudoku = input.replace(prefix1, "");
|
||||||
|
} else if (input.contains(prefix2)) {
|
||||||
|
inputSudoku = input.replace(prefix2, "");
|
||||||
|
} else {
|
||||||
|
Toast.makeText(MainActivity.this,
|
||||||
|
this.getString(R.string.menu_import_wrong_format_custom_sudoku) + " " + prefix1 + ", " + prefix2, Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int size = (int)Math.sqrt(inputSudoku.length());
|
||||||
|
boolean validSize = false;
|
||||||
|
|
||||||
|
for (GameType type : GameType.getValidGameTypes()) {
|
||||||
|
if (type.getSize() == size) {
|
||||||
|
validSize = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!validSize) {
|
||||||
|
Toast.makeText(MainActivity.this, R.string.failed_to_verify_custom_sudoku_toast, Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameType gameType = Enum.valueOf(GameType.class, "Default_" + size + "x" + size);
|
||||||
|
boolean solvable = CreateSudokuActivity.verify(MainActivity.this, gameType, inputSudoku);
|
||||||
|
|
||||||
if (solvable) {
|
if (solvable) {
|
||||||
Toast.makeText(MainActivity.this, R.string.finished_verifying_custom_sudoku_toast, Toast.LENGTH_LONG).show();
|
Toast.makeText(MainActivity.this, R.string.finished_verifying_custom_sudoku_toast, Toast.LENGTH_LONG).show();
|
||||||
final Intent intent = new Intent(this, GameActivity.class);
|
final Intent intent = new Intent(this, GameActivity.class);
|
||||||
intent.setData(Uri.parse(GameActivity.URL_SCHEME_WITHOUT_HOST + "://" + input));
|
intent.setData(Uri.parse(prefix1 + inputSudoku));
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
finish();
|
finish();
|
||||||
|
} else {
|
||||||
|
Toast.makeText(MainActivity.this, R.string.failed_to_verify_custom_sudoku_toast, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue