Commit 2e607fc1 authored by feihuaduo's avatar feihuaduo

优化卡组url

parent fa4d7e14
...@@ -74,10 +74,10 @@ ...@@ -74,10 +74,10 @@
<category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.BROWSABLE"/>
<!--android:pathPrefix="/deck"-->
<data <data
android:host="m.ygomobile.com" android:host="deck"
android:pathPrefix="/deck" android:scheme="ygo"/>
android:scheme="ygomobile"/>
</intent-filter> </intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW"/> <action android:name="android.intent.action.VIEW"/>
......
...@@ -185,8 +185,8 @@ public interface Constants { ...@@ -185,8 +185,8 @@ public interface Constants {
*/ */
String PATH_DECK = "/deck"; String PATH_DECK = "/deck";
String SCHEME_HTTP = "http"; String SCHEME_HTTP = "http";
String SCHEME_APP = "ygomobile"; String SCHEME_APP = "ygo";
String URI_HOST = "m.ygomobile.com"; String URI_HOST = "deck";
String QUERY_YDK = "ydk"; String QUERY_YDK = "ydk";
String QUERY_NAME = "name"; String QUERY_NAME = "name";
......
...@@ -150,11 +150,11 @@ public class GameUriManager { ...@@ -150,11 +150,11 @@ public class GameUriManager {
} }
} else { } else {
String host = uri.getHost(); String host = uri.getHost();
if (!Constants.URI_HOST.equalsIgnoreCase(host)) { // if (!Constants.URI_HOST.equalsIgnoreCase(host)) {
return; // return;
} // }
String path = uri.getPath(); String path = uri.getPath();
if (PATH_DECK.equals(path)) { if (Constants.URI_HOST.equals(host)) {
String name = uri.getQueryParameter(QUERY_NAME); String name = uri.getQueryParameter(QUERY_NAME);
if (!TextUtils.isEmpty(name)) { if (!TextUtils.isEmpty(name)) {
doOpenPath(name); doOpenPath(name);
...@@ -165,19 +165,20 @@ public class GameUriManager { ...@@ -165,19 +165,20 @@ public class GameUriManager {
startdeck.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath()); startdeck.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startdeck); activity.startActivity(startdeck);
} }
} else if (PATH_ROOM.equals(path)) {
try {
YGOGameOptions options = new YGOGameOptions();
options.mServerAddr = uri.getQueryParameter(Constants.QUERY_HOST);
options.mUserName = uri.getQueryParameter(Constants.QUERY_USER);
options.mPort = Integer.parseInt(uri.getQueryParameter(Constants.QUERY_PORT));
options.mRoomName = uri.getQueryParameter(Constants.QUERY_ROOM);
YGOStarter.startGame(getActivity(), options);
} catch (Exception e) {
Toast.makeText(getActivity(), R.string.start_game_error, Toast.LENGTH_SHORT).show();
activity.finish();
}
} }
// else if (PATH_ROOM.equals(path)) {
// try {
// YGOGameOptions options = new YGOGameOptions();
// options.mServerAddr = uri.getQueryParameter(Constants.QUERY_HOST);
// options.mUserName = uri.getQueryParameter(Constants.QUERY_USER);
// options.mPort = Integer.parseInt(uri.getQueryParameter(Constants.QUERY_PORT));
// options.mRoomName = uri.getQueryParameter(Constants.QUERY_ROOM);
// YGOStarter.startGame(getActivity(), options);
// } catch (Exception e) {
// Toast.makeText(getActivity(), R.string.start_game_error, Toast.LENGTH_SHORT).show();
// activity.finish();
// }
// }
} }
} }
......
...@@ -37,7 +37,7 @@ public class Deck implements Parcelable { ...@@ -37,7 +37,7 @@ public class Deck implements Parcelable {
String extra = uri.getQueryParameter(QUERY_EXTRA); String extra = uri.getQueryParameter(QUERY_EXTRA);
String side = uri.getQueryParameter(QUERY_SIDE); String side = uri.getQueryParameter(QUERY_SIDE);
if (!TextUtils.isEmpty(main)) { if (!TextUtils.isEmpty(main)) {
String[] mains = main.split(","); String[] mains = main.split("_");
for (String m : mains) { for (String m : mains) {
int []idNum=toIdAndNum(m); int []idNum=toIdAndNum(m);
if (idNum[0] > 0) { if (idNum[0] > 0) {
...@@ -48,7 +48,7 @@ public class Deck implements Parcelable { ...@@ -48,7 +48,7 @@ public class Deck implements Parcelable {
} }
} }
if (!TextUtils.isEmpty(extra)) { if (!TextUtils.isEmpty(extra)) {
String[] extras = extra.split(","); String[] extras = extra.split("_");
for (String m : extras) { for (String m : extras) {
int []idNum=toIdAndNum(m); int []idNum=toIdAndNum(m);
if (idNum[0] > 0) { if (idNum[0] > 0) {
...@@ -59,7 +59,7 @@ public class Deck implements Parcelable { ...@@ -59,7 +59,7 @@ public class Deck implements Parcelable {
} }
} }
if (!TextUtils.isEmpty(side)) { if (!TextUtils.isEmpty(side)) {
String[] sides = side.split(","); String[] sides = side.split("_");
for (String m : sides) { for (String m : sides) {
int []idNum=toIdAndNum(m); int []idNum=toIdAndNum(m);
if (idNum[0] > 0) { if (idNum[0] > 0) {
...@@ -102,8 +102,8 @@ public class Deck implements Parcelable { ...@@ -102,8 +102,8 @@ public class Deck implements Parcelable {
public Uri toUri(String host) { public Uri toUri(String host) {
Uri.Builder uri = Uri.parse(host + "://") Uri.Builder uri = Uri.parse(host + "://")
.buildUpon() .buildUpon()
.authority(Constants.URI_HOST) .authority(Constants.URI_HOST);
.path(Constants.PATH_DECK); //.path(Constants.PATH_DECK);
if (!TextUtils.isEmpty(name)) { if (!TextUtils.isEmpty(name)) {
uri.appendQueryParameter(Constants.QUERY_NAME, name); uri.appendQueryParameter(Constants.QUERY_NAME, name);
} }
...@@ -118,10 +118,10 @@ public class Deck implements Parcelable { ...@@ -118,10 +118,10 @@ public class Deck implements Parcelable {
for (int i = 0; i < ids.size(); i++) { for (int i = 0; i < ids.size(); i++) {
Integer id = ids.get(i); Integer id = ids.get(i);
if (i > 0) { if (i > 0) {
builder.append(","); builder.append("_");
} }
if (id > 0) { if (id > 0) {
builder.append(id); builder.append(compressedId(id));
//如果是最后一张就不用对比下张卡 //如果是最后一张就不用对比下张卡
if(i!=ids.size()-1) { if(i!=ids.size()-1) {
int id1 = ids.get(i + 1); int id1 = ids.get(i + 1);
...@@ -151,6 +151,15 @@ public class Deck implements Parcelable { ...@@ -151,6 +151,15 @@ public class Deck implements Parcelable {
return builder.toString(); return builder.toString();
} }
//压缩卡密,目前直接转换为16进制
private String compressedId(int id){
return Integer.toHexString(id);
}
//解析卡密,目前直接16进制转换为10进制
private int unId(String id){
return Integer.parseInt(id,16);
}
public String getName() { public String getName() {
return name; return name;
...@@ -187,7 +196,7 @@ public class Deck implements Parcelable { ...@@ -187,7 +196,7 @@ public class Deck implements Parcelable {
private int toId(String str) { private int toId(String str) {
if (TextUtils.isEmpty(str)) return 0; if (TextUtils.isEmpty(str)) return 0;
try { try {
return Integer.parseInt(str); return unId(str);
} catch (Exception e) { } catch (Exception e) {
return 0; return 0;
} }
......
...@@ -58,7 +58,7 @@ public class ServiceDuelAssistant extends Service { ...@@ -58,7 +58,7 @@ public class ServiceDuelAssistant extends Service {
private final static String CMD_NAME = "CMD"; private final static String CMD_NAME = "CMD";
private final static String CMD_START_GAME = "CMD : START GAME"; private final static String CMD_START_GAME = "CMD : START GAME";
private final static String CMD_STOP_SERVICE = "CMD : STOP SERVICE"; private final static String CMD_STOP_SERVICE = "CMD : STOP SERVICE";
private final static String DECK_URL_PREFIX = "ygomobile://m.ygomobile.com/"; private final static String DECK_URL_PREFIX = Constants.SCHEME_APP+"://"+Constants.URI_HOST;
//悬浮窗显示的时间 //悬浮窗显示的时间
private static final int TIME_DIS_WINDOW = 3000; private static final int TIME_DIS_WINDOW = 3000;
......
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