Commit 27124927 authored by fallenstardust's avatar fallenstardust

兼容yrp文件名带空格

parent 786c3215
...@@ -30,7 +30,7 @@ import static cn.garymb.ygomobile.Constants.QUERY_NAME; ...@@ -30,7 +30,7 @@ import static cn.garymb.ygomobile.Constants.QUERY_NAME;
public class GameUriManager { public class GameUriManager {
private Activity activity; private Activity activity;
private String fname; private String[] fname;
public GameUriManager(Activity activity) { public GameUriManager(Activity activity) {
this.activity = activity; this.activity = activity;
...@@ -154,7 +154,8 @@ public class GameUriManager { ...@@ -154,7 +154,8 @@ public class GameUriManager {
} else if (file.getName().toLowerCase(Locale.US).endsWith(".yrp")) { } else if (file.getName().toLowerCase(Locale.US).endsWith(".yrp")) {
File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + file.getName()); File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + file.getName());
if (yrp.exists()) { if (yrp.exists()) {
YGOStarter.startGame(getActivity(), null, "-r" + yrp.getName()); fname = new String[]{"-r", yrp.getName()};
YGOStarter.startGame(getActivity(), null, fname);
Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_LONG).show(); Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_LONG).show();
} else { } else {
try { try {
...@@ -163,8 +164,9 @@ public class GameUriManager { ...@@ -163,8 +164,9 @@ public class GameUriManager {
Toast.makeText(activity, activity.getString(R.string.install_failed_bcos) + e, Toast.LENGTH_LONG).show(); Toast.makeText(activity, activity.getString(R.string.install_failed_bcos) + e, Toast.LENGTH_LONG).show();
} }
if (!ComponentUtils.isActivityRunning(getActivity(), new ComponentName(getActivity(), YGOMobileActivity.class))) { if (!ComponentUtils.isActivityRunning(getActivity(), new ComponentName(getActivity(), YGOMobileActivity.class))) {
YGOStarter.startGame(getActivity(), null, "-r" + yrp.getName()); fname = new String[]{"-r", yrp.getName()};
Toast.makeText(activity, "" + yrp.getName(), Toast.LENGTH_LONG).show(); YGOStarter.startGame(getActivity(), null, fname);
Toast.makeText(activity, activity.getString(R.string.yrp_installed), Toast.LENGTH_LONG).show();
} }
} }
} }
...@@ -226,7 +228,8 @@ public class GameUriManager { ...@@ -226,7 +228,8 @@ public class GameUriManager {
try { try {
ParcelFileDescriptor pfd = getActivity().getContentResolver().openFileDescriptor(uri, "r"); ParcelFileDescriptor pfd = getActivity().getContentResolver().openFileDescriptor(uri, "r");
if (yrp.exists()) { if (yrp.exists()) {
YGOStarter.startGame(getActivity(), null, "-r " + urifile.getName()); fname = new String[]{"-r", yrp.getName()};
YGOStarter.startGame(getActivity(), null, fname);
Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_SHORT).show(); Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_SHORT).show();
} else { } else {
if (pfd == null) { if (pfd == null) {
...@@ -245,7 +248,8 @@ public class GameUriManager { ...@@ -245,7 +248,8 @@ public class GameUriManager {
e.printStackTrace(); e.printStackTrace();
} }
if (!ComponentUtils.isActivityRunning(activity, new ComponentName(activity, YGOMobileActivity.class))) { if (!ComponentUtils.isActivityRunning(activity, new ComponentName(activity, YGOMobileActivity.class))) {
YGOStarter.startGame(activity, null, "-r " + urifile.getName()); fname = new String[]{"-r", yrp.getName()};
YGOStarter.startGame(activity, null, fname);
Toast.makeText(activity, activity.getString(R.string.yrp_installed), Toast.LENGTH_LONG).show(); Toast.makeText(activity, activity.getString(R.string.yrp_installed), Toast.LENGTH_LONG).show();
} }
} }
......
...@@ -152,13 +152,13 @@ public class YGOStarter { ...@@ -152,13 +152,13 @@ public class YGOStarter {
private static long lasttime = 0; private static long lasttime = 0;
/** /**
*
* @param activity * @param activity
* @param options * @param options
* @param args 例如(播放完退出游戏):-r 1111.yrp * @param args 例如(播放完退出游戏):-r 1111.yrp
* 或者(播放完不退出游戏):-k -r 1111.yrp * 或者(播放完不退出游戏):-k -r 1111.yrp
*/ */
public static void startGame(Activity activity, YGOGameOptions options, String args) { public static void startGame(Activity activity, YGOGameOptions options, String[] args) {
Log.i("kk arg", args[0] + " " + args[1]);
//如果距离上次加入游戏的时间大于1秒才处理 //如果距离上次加入游戏的时间大于1秒才处理
if (System.currentTimeMillis() - lasttime >= 1000) { if (System.currentTimeMillis() - lasttime >= 1000) {
lasttime = System.currentTimeMillis(); lasttime = System.currentTimeMillis();
...@@ -172,8 +172,8 @@ public class YGOStarter { ...@@ -172,8 +172,8 @@ public class YGOStarter {
intent.putExtra(YGOGameOptions.YGO_GAME_OPTIONS_BUNDLE_KEY, options); intent.putExtra(YGOGameOptions.YGO_GAME_OPTIONS_BUNDLE_KEY, options);
intent.putExtra(YGOGameOptions.YGO_GAME_OPTIONS_BUNDLE_TIME, System.currentTimeMillis()); intent.putExtra(YGOGameOptions.YGO_GAME_OPTIONS_BUNDLE_TIME, System.currentTimeMillis());
} }
if(args != null) { if (args != null) {
intent.putExtra(IrrlichtBridge.EXTRA_ARGV, args.split(" ")); intent.putExtra(IrrlichtBridge.EXTRA_ARGV, args[0] + " " + args[1]);
} }
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Log.e("YGOStarter", "跳转前" + System.currentTimeMillis()); Log.e("YGOStarter", "跳转前" + System.currentTimeMillis());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment