Commit 21a1dac4 authored by fallenstardust's avatar fallenstardust

加载拓展卡后添加服务器信息

parent c6261b0e
package cn.garymb.ygomobile.ui.activities; package cn.garymb.ygomobile.ui.activities;
import static cn.garymb.ygomobile.Constants.ASSET_SERVER_LIST;
import static cn.garymb.ygomobile.Constants.URL_YGO233_ADVANCE; import static cn.garymb.ygomobile.Constants.URL_YGO233_ADVANCE;
import static cn.garymb.ygomobile.Constants.URL_YGO233_FILE; import static cn.garymb.ygomobile.Constants.URL_YGO233_FILE;
import static cn.garymb.ygomobile.utils.DownloadUtil.TYPE_DOWNLOAD_EXCEPTION; import static cn.garymb.ygomobile.utils.DownloadUtil.TYPE_DOWNLOAD_EXCEPTION;
...@@ -10,9 +11,9 @@ import android.content.Intent; ...@@ -10,9 +11,9 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.text.TextUtils;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button; import android.widget.Button;
import android.widget.Toast; import android.widget.Toast;
...@@ -21,15 +22,29 @@ import androidx.annotation.Nullable; ...@@ -21,15 +22,29 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import cn.garymb.ygomobile.AppsSettings; import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants; import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.bean.ServerInfo;
import cn.garymb.ygomobile.bean.ServerList;
import cn.garymb.ygomobile.lite.BuildConfig;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.home.ServerListManager;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.ui.preference.SettingsActivity; import cn.garymb.ygomobile.ui.preference.SettingsActivity;
import cn.garymb.ygomobile.ui.widget.WebViewPlus; import cn.garymb.ygomobile.ui.widget.WebViewPlus;
import cn.garymb.ygomobile.utils.DownloadUtil; import cn.garymb.ygomobile.utils.DownloadUtil;
import cn.garymb.ygomobile.utils.FileUtils; import cn.garymb.ygomobile.utils.FileUtils;
import cn.garymb.ygomobile.utils.IOUtils;
import cn.garymb.ygomobile.utils.SystemUtils;
import cn.garymb.ygomobile.utils.UnzipUtils; import cn.garymb.ygomobile.utils.UnzipUtils;
import cn.garymb.ygomobile.utils.XmlUtils;
import cn.garymb.ygomobile.utils.YGOUtil; import cn.garymb.ygomobile.utils.YGOUtil;
import ocgcore.DataManager; import ocgcore.DataManager;
import ocgcore.data.Card; import ocgcore.data.Card;
...@@ -39,6 +54,9 @@ public class WebActivity extends BaseActivity { ...@@ -39,6 +54,9 @@ public class WebActivity extends BaseActivity {
private String mUrl; private String mUrl;
private String mTitle; private String mTitle;
private Button btn_download; private Button btn_download;
private List<ServerInfo> serverInfos;
private ServerInfo mServerInfo;
private File xmlFile;
@SuppressLint("HandlerLeak") @SuppressLint("HandlerLeak")
Handler handler = new Handler() { Handler handler = new Handler() {
...@@ -64,6 +82,14 @@ public class WebActivity extends BaseActivity { ...@@ -64,6 +82,14 @@ public class WebActivity extends BaseActivity {
DataManager.get().load(true); DataManager.get().load(true);
Toast.makeText(getContext(), R.string.ypk_installed, Toast.LENGTH_LONG).show(); Toast.makeText(getContext(), R.string.ypk_installed, Toast.LENGTH_LONG).show();
} }
String servername = "";
if (getPackageName().equals(BuildConfig.APPLICATION_ID))
servername = "23333先行服务器";
if (getPackageName().equals((BuildConfig.APPLICATION_ID) + ".KO"))
servername = "YGOPRO 사전 게시 중국서버";
if (getPackageName().equals((BuildConfig.APPLICATION_ID) + ".EN"))
servername = "Mercury23333 OCG/TCG Pre-release";
AddServer(servername, "s1.ygo233.com", 23333, "Knight of Hanoi");
btn_download.setVisibility(View.GONE); btn_download.setVisibility(View.GONE);
break; break;
case UnzipUtils.ZIP_UNZIP_EXCEPTION: case UnzipUtils.ZIP_UNZIP_EXCEPTION:
...@@ -82,6 +108,8 @@ public class WebActivity extends BaseActivity { ...@@ -82,6 +108,8 @@ public class WebActivity extends BaseActivity {
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
enableBackHome(); enableBackHome();
mWebViewPlus = $(R.id.webbrowser); mWebViewPlus = $(R.id.webbrowser);
serverInfos = new ArrayList<>();
xmlFile = new File(this.getFilesDir(), Constants.SERVER_FILE);
initButton(); initButton();
/*mWebViewPlus.enableHtml5(); /*mWebViewPlus.enableHtml5();
mWebViewPlus.setWebChromeClient(new DefWebChromeClient() { mWebViewPlus.setWebChromeClient(new DefWebChromeClient() {
...@@ -197,6 +225,57 @@ public class WebActivity extends BaseActivity { ...@@ -197,6 +225,57 @@ public class WebActivity extends BaseActivity {
}); });
} }
public void AddServer(String name, String Addr, int port, String playername) {
mServerInfo = new ServerInfo();
mServerInfo.setName(name);
mServerInfo.setServerAddr(Addr);
mServerInfo.setPort(port);
mServerInfo.setPlayerName(playername);
VUiKit.defer().when(() -> {
ServerList assetList = ServerListManager.readList(this.getAssets().open(ASSET_SERVER_LIST));
ServerList fileList = xmlFile.exists() ? ServerListManager.readList(new FileInputStream(xmlFile)) : null;
if (fileList == null) {
return assetList;
}
if (fileList.getVercode() < assetList.getVercode()) {
xmlFile.delete();
return assetList;
}
return fileList;
}).done((list) -> {
if (list != null) {
serverInfos.clear();
serverInfos.addAll(list.getServerInfoList());
boolean hasServer = false;
for (int i = 0; i < list.getServerInfoList().size(); i++) {
if (mServerInfo.getPort() != serverInfos.get(i).getPort() && mServerInfo.getServerAddr() != serverInfos.get(i).getServerAddr()) {
continue;
} else {
hasServer = true;
break;
}
}
if (!hasServer && !serverInfos.contains(mServerInfo)) {
serverInfos.add(mServerInfo);
}
saveItems();
}
});
}
public void saveItems() {
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(xmlFile);
XmlUtils.get().saveXml(new ServerList(SystemUtils.getVersion(getContext()), serverInfos), outputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.close(outputStream);
}
}
private void downloadfromWeb() { private void downloadfromWeb() {
File file = new File(AppsSettings.get().getResourcePath() + ".zip"); File file = new File(AppsSettings.get().getResourcePath() + ".zip");
if (file.exists()) { if (file.exists()) {
......
...@@ -143,7 +143,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -143,7 +143,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
}; };
//x5内核初始化接口 //x5内核初始化接口
QbSdk.initX5Environment(this, cb); QbSdk.initX5Environment(this, cb);
if(!BuildConfig.BUILD_TYPE.equals("debug")) { if (!BuildConfig.BUILD_TYPE.equals("debug")) {
//release才检查版本 //release才检查版本
if (!Constants.ACTION_OPEN_GAME.equals(getIntent().getAction())) { if (!Constants.ACTION_OPEN_GAME.equals(getIntent().getAction())) {
Log.d(Constants.TAG, "start check update"); Log.d(Constants.TAG, "start check update");
...@@ -166,6 +166,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -166,6 +166,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
super.onResume(); super.onResume();
BacktoDuel(); BacktoDuel();
duelAssistantCheck(); duelAssistantCheck();
//server list
mServerListManager.syncLoadData();
} }
@Override @Override
...@@ -196,9 +198,9 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -196,9 +198,9 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
} }
@Override @Override
public void onJoinRoom(String host,int port,String password, int id) { public void onJoinRoom(String host, int port, String password, int id) {
if (id == ID_MAINACTIVITY) { if (id == ID_MAINACTIVITY) {
quickjoinRoom(host,port,password); quickjoinRoom(host, port, password);
} }
} }
...@@ -314,7 +316,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -314,7 +316,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
break; break;
case R.id.action_game: case R.id.action_game:
setRandomCardDetail(); setRandomCardDetail();
if(mCardDetailRandom != null){ if (mCardDetailRandom != null) {
mCardDetailRandom.show(); mCardDetailRandom.show();
} }
openGame(); openGame();
...@@ -620,7 +622,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -620,7 +622,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
}); });
} }
public void quickjoinRoom(String host,int port,String password) { public void quickjoinRoom(String host, int port, String password) {
String message; String message;
if (!TextUtils.isEmpty(host)) if (!TextUtils.isEmpty(host))
...@@ -657,10 +659,10 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -657,10 +659,10 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
return fileList; return fileList;
}).done((list) -> { }).done((list) -> {
if (list != null) { if (list != null) {
String host1=host; String host1 = host;
int port1=port; int port1 = port;
ServerInfo serverInfo = list.getServerInfoList().get(0); ServerInfo serverInfo = list.getServerInfoList().get(0);
if (!TextUtils.isEmpty(host1)){ if (!TextUtils.isEmpty(host1)) {
serverInfo.setServerAddr(host1); serverInfo.setServerAddr(host1);
serverInfo.setPort(port1); serverInfo.setPort(port1);
} }
......
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