Commit 02637e1a authored by feihuaduo's avatar feihuaduo

适配决斗助手1.0卡组协议,卡组码长度优化

parent 2221b0bb
......@@ -190,14 +190,21 @@ public interface Constants {
*/
String PATH_DECK = "/deck";
String SCHEME_HTTP = "http";
String SCHEME_HTTPS = "https";
String SCHEME_APP = "ygo";
String URI_HOST = "deck";
String QUERY_YDK = "ydk";
String QUERY_NAME = "name";
String QUERY_MAIN = "main";
String QUERY_EXTRA = "extra";
String QUERY_SIDE = "side";
String QUERY_MAIN = "m";
String QUERY_EXTRA = "e";
String QUERY_SIDE = "s";
String QUERY_VERSION="v";
String QUERY_MAIN_ALL = "main";
String QUERY_EXTRA_ALL = "extra";
String QUERY_SIDE_ALL = "side";
String QUERY_YGO_TYPE="ygotype";
String ARG_DECK="deck";
String PATH_ROOM = "/room";
String QUERY_HOST = "host";
String QUERY_PORT = "port";
......@@ -214,4 +221,5 @@ public interface Constants {
String TAG = "ygo-java";
String DEF_ENCODING = "utf-8";
}
package cn.garymb.ygomobile.bean;
/**
* Create By feihua On 2021/9/25
*/
public class CardIdNum {
private String cardIdNum;
private String CardIdNumCompressed;
public CardIdNum(String cardIdNum, String cardIdNumCompressed) {
this.cardIdNum = cardIdNum;
CardIdNumCompressed = cardIdNumCompressed;
}
public String getCardIdNum() {
return cardIdNum;
}
public void setCardIdNum(String cardIdNum) {
this.cardIdNum = cardIdNum;
}
public String getCardIdNumCompressed() {
return CardIdNumCompressed;
}
public void setCardIdNumCompressed(String cardIdNumCompressed) {
CardIdNumCompressed = cardIdNumCompressed;
}
}
......@@ -804,7 +804,7 @@ public class DeckManagerActivity extends BaseCardsActivity implements RecyclerVi
BitmapUtil.saveBitmap(bitmap, savePath, 50);
builderShareLoading.dismiss();
DialogUtils du = DialogUtils.getdx(this);
View viewDialog = du.dialogBottomSheet(R.layout.dialog_deck_share, 0);
View viewDialog = du.dialogBottomSheet(R.layout.dialog_deck_share,0);
ImageView iv_image = viewDialog.findViewById(R.id.iv_image);
Button bt_image_share = viewDialog.findViewById(R.id.bt_image_share);
Button bt_code_share = viewDialog.findViewById(R.id.bt_code_share);
......
......@@ -3,12 +3,10 @@ package com.ourygo.assistant.util;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.ourygo.assistant.base.listener.OnClipChangedListener;
import com.ourygo.assistant.base.listener.OnDuelAssistantListener;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
......@@ -87,6 +85,19 @@ public class DuelAssistantManagement implements OnClipChangedListener {
if (deckStart != -1) {
onSaveDeck(message.substring(deckStart + Record.DECK_URL_PREFIX.length()), true, id);
return true;
} else if (message.contains("?" + Record.ARG_YGO_TYPE + "=" + Record.ARG_DECK) || message.contains("&" + Record.ARG_YGO_TYPE + "=" + Record.ARG_DECK)) {
String m1 = "?" + Record.ARG_YGO_TYPE + "=" + Record.ARG_DECK;
String m2 = "&" + Record.ARG_YGO_TYPE + "=" + Record.ARG_DECK;
int s1 = message.indexOf(m1);
if (s1 == -1)
s1 = message.indexOf(m2);
int start=message.lastIndexOf(Record.DECK_URL_PREFIX,s1);
if (start==-1)
start=message.lastIndexOf(Record.HTTP_URL_PREFIX,s1);
if (start==-1)
start=message.lastIndexOf(Record.HTTPS_URL_PREFIX,s1);
onSaveDeck(message.substring(start + Record.DECK_URL_PREFIX.length()), true, id);
return true;
}
return false;
}
......@@ -94,17 +105,18 @@ public class DuelAssistantManagement implements OnClipChangedListener {
public boolean roomCheck(String message, int id) {
int start = -1;
int end = -1;
start=message.indexOf(Record.ROOM_PREFIX);
if (start!=-1){
end=message.indexOf(Record.ROOM_END,start);
if (end!=-1){
message=message.substring(start,end);
JSONObject jsonObject= null;
start = message.indexOf(Record.ROOM_PREFIX);
if (start != -1) {
end = message.indexOf(Record.ROOM_END, start);
if (end != -1) {
message = message.substring(start, end);
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(message);
onJoinRoom(jsonObject.getString(Record.ARG_HOST),jsonObject.getInt(Record.ARG_PORT),jsonObject.getString(Record.ARG_PASSWORD),id);
onJoinRoom(jsonObject.getString(Record.ARG_HOST), jsonObject.getInt(Record.ARG_PORT), jsonObject.getString(Record.ARG_PASSWORD), id);
return true;
} catch (JSONException e) { e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
......@@ -131,7 +143,7 @@ public class DuelAssistantManagement implements OnClipChangedListener {
if (end - start == passwordPrefixKey.length())
return false;
}
onJoinRoom(null,0,message.substring(start, end), id);
onJoinRoom(null, 0, message.substring(start, end), id);
return true;
}
return false;
......@@ -160,12 +172,12 @@ public class DuelAssistantManagement implements OnClipChangedListener {
return false;
}
private void onJoinRoom(String host,int port,String password, int id) {
private void onJoinRoom(String host, int port, String password, int id) {
int i = 0;
while (i < onDuelAssistantListenerList.size()) {
OnDuelAssistantListener onDuelAssistantListener = onDuelAssistantListenerList.get(i);
if (onDuelAssistantListener.isListenerEffective()) {
onDuelAssistantListener.onJoinRoom(host,port,password, id);
onDuelAssistantListener.onJoinRoom(host, port, password, id);
i++;
} else {
onDuelAssistantListenerList.remove(i);
......
......@@ -32,7 +32,12 @@ public class Record {
//卡组url前缀
public static final String DECK_URL_PREFIX = "ygo://deck";
public static final String HTTP_URL_PREFIX = "http://";
public static final String HTTPS_URL_PREFIX = "https://";
public static final String ARG_PORT = "port";
public static final String ARG_HOST = "host";
public static final String ARG_PASSWORD = "password";
public static final String ARG_YGO_TYPE="ygotype";
public static final String ARG_DECK="deck";
}
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