Commit 27124927 authored by fallenstardust's avatar fallenstardust

兼容yrp文件名带空格

parent 786c3215
......@@ -30,7 +30,7 @@ import static cn.garymb.ygomobile.Constants.QUERY_NAME;
public class GameUriManager {
private Activity activity;
private String fname;
private String[] fname;
public GameUriManager(Activity activity) {
this.activity = activity;
......@@ -154,7 +154,8 @@ public class GameUriManager {
} else if (file.getName().toLowerCase(Locale.US).endsWith(".yrp")) {
File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + file.getName());
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();
} else {
try {
......@@ -163,8 +164,9 @@ public class GameUriManager {
Toast.makeText(activity, activity.getString(R.string.install_failed_bcos) + e, Toast.LENGTH_LONG).show();
}
if (!ComponentUtils.isActivityRunning(getActivity(), new ComponentName(getActivity(), YGOMobileActivity.class))) {
YGOStarter.startGame(getActivity(), null, "-r" + yrp.getName());
Toast.makeText(activity, "" + yrp.getName(), Toast.LENGTH_LONG).show();
fname = new String[]{"-r", yrp.getName()};
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 {
try {
ParcelFileDescriptor pfd = getActivity().getContentResolver().openFileDescriptor(uri, "r");
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();
} else {
if (pfd == null) {
......@@ -245,7 +248,8 @@ public class GameUriManager {
e.printStackTrace();
}
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();
}
}
......
......@@ -152,13 +152,13 @@ public class YGOStarter {
private static long lasttime = 0;
/**
*
* @param activity
* @param options
* @param args 例如(播放完退出游戏):-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秒才处理
if (System.currentTimeMillis() - lasttime >= 1000) {
lasttime = System.currentTimeMillis();
......@@ -172,8 +172,8 @@ public class YGOStarter {
intent.putExtra(YGOGameOptions.YGO_GAME_OPTIONS_BUNDLE_KEY, options);
intent.putExtra(YGOGameOptions.YGO_GAME_OPTIONS_BUNDLE_TIME, System.currentTimeMillis());
}
if(args != null) {
intent.putExtra(IrrlichtBridge.EXTRA_ARGV, args.split(" "));
if (args != null) {
intent.putExtra(IrrlichtBridge.EXTRA_ARGV, args[0] + " " + args[1]);
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
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