Commit 603cf96c authored by feihuaduo's avatar feihuaduo

分享前对卡组先进行排序

优化ydk分享url长度
parent 8ff98ee6
......@@ -4,7 +4,6 @@ import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
import java.io.File;
import java.util.ArrayList;
......@@ -31,7 +30,7 @@ public class Deck implements Parcelable {
sideList = new ArrayList<>();
}
public Deck(String name,Uri uri){
public Deck(String name, Uri uri) {
this(name);
String main = uri.getQueryParameter(QUERY_MAIN);
String extra = uri.getQueryParameter(QUERY_EXTRA);
......@@ -39,34 +38,56 @@ public class Deck implements Parcelable {
if (!TextUtils.isEmpty(main)) {
String[] mains = main.split(",");
for (String m : mains) {
int id = toId(m);
if (id > 0) {
mainlist.add(id);
int []idNum=toIdAndNum(m);
if (idNum[0] > 0) {
for (int i=0;i<idNum[1];i++){
mainlist.add(idNum[0]);
}
}
}
}
if (!TextUtils.isEmpty(extra)) {
String[] extras = extra.split(",");
for (String m : extras) {
int id = toId(m);
if (id > 0) {
extraList.add(id);
int []idNum=toIdAndNum(m);
if (idNum[0] > 0) {
for (int i=0;i<idNum[1];i++){
extraList.add(idNum[0]);
}
}
}
}
if (!TextUtils.isEmpty(side)) {
String[] sides = side.split(",");
for (String m : sides) {
int id = toId(m);
if (id > 0) {
sideList.add(id);
int []idNum=toIdAndNum(m);
if (idNum[0] > 0) {
for (int i=0;i<idNum[1];i++){
sideList.add(idNum[0]);
}
}
}
}
}
private int[] toIdAndNum(String m) {
int[] idNum={0,1};
if (m.contains("*")){
try{
idNum[1]=Integer.parseInt(m.substring(m.length()-1));
}catch (Exception e){
}
idNum[0]=toId(m.substring(0,m.length()-2));
}else {
idNum[0]=toId(m);
}
return idNum;
}
public Deck(Uri uri) {
this(uri.getQueryParameter(QUERY_YDK),uri);
this(uri.getQueryParameter(QUERY_YDK), uri);
}
public Uri toAppUri() {
......@@ -93,14 +114,33 @@ public class Deck implements Parcelable {
private String toString(List<Integer> ids) {
StringBuilder builder = new StringBuilder();
int i = 0;
for (Integer id : ids) {
for (int i = 0; i < ids.size(); i++) {
Integer id = ids.get(i);
if (i > 0) {
builder.append(",");
}
if (id > 0) {
builder.append(id);
i++;
if(i!=ids.size()-1) {
int id1 = ids.get(i + 1);
//同名卡张数
int tNum = 1;
//如果下张是同名卡
if (id1 == id) {
tNum++;
i++;
id1 = ids.get(i + 2);
//如果下下张是同名卡
if (id1 == id) {
tNum++;
i++;
}
}
//如果有同名卡
if (tNum > 1) {
builder.append("*" + tNum);
}
}
}
}
return builder.toString();
......
......@@ -7,6 +7,7 @@ import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatSpinner;
import android.support.v7.widget.RecyclerView;
......@@ -88,6 +89,7 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
private AppCompatSpinner mLimitSpinner;
private CardDetail mCardDetail;
private DialogPlus mDialog;
private DialogPlus builderShareLoading;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
......@@ -682,8 +684,27 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
return files == null || files.size() == 0 ? null : files.get(0);
}
private void shareDeck() {
// 开启绘图缓存
private void shareDeck(){
builderShareLoading = new DialogPlus(this);
builderShareLoading.showProgressBar();
builderShareLoading.hideTitleBar();
builderShareLoading.setMessage("准备分享中");
builderShareLoading.show();
//先排序
mDeckAdapater.sort();
//延时一秒,等排好序再分享
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
shareDeck1();
}
},1000);
}
private void shareDeck1() {
//开启绘图缓存
mRecyclerView.setDrawingCacheEnabled(true);
//这个方法可调可不调,因为在getDrawingCache()里会自动判断有没有缓存有没有准备好,
//如果没有,会自动调用buildDrawingCache()
......@@ -712,6 +733,7 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
showToast(getString(R.string.deck_text_copyed));
//复制完毕开启决斗助手
Util.startDuelService(this);
builderShareLoading.dismiss();
// String label = TextUtils.isEmpty(deck.getName()) ? getString(R.string.share_deck) : deck.getName();
// final String uriString = deck.toAppUri().toString();
// final String httpUri = deck.toHttpUri().toString();
......
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