Commit 753c2331 authored by fallenstardust's avatar fallenstardust

迁移工具函数到YGOUtil

parent c101d738
......@@ -568,7 +568,6 @@ public class DeckSquareApiUtil {
return true;
} catch (Exception e) {
LogUtil.e(TAG, "Error downloading missing deck: " + e.getMessage());
e.printStackTrace();
return false;
}
}
......@@ -582,7 +581,6 @@ public class DeckSquareApiUtil {
return false;
}
// 保存在线卡组到本地
String fileName = onlineDeck.getDeckName() + Constants.YDK_FILE_EX;
boolean saved = DeckSquareFileUtil.saveFileToPath(localPath, fileName, deckResponse.getData().getDeckYdk(), onlineUpdateDate);
......
......@@ -195,7 +195,7 @@ public class DeckSquareMyDeckFragment extends Fragment {
});
/** 自动同步 */
VUiKit.defer().when(() -> {return DeckSquareApiUtil.synchronizeDecks();}).fail((e) -> {
LogUtil.i(TAG, "Sync deck fail" + e.getMessage());
LogUtil.i(TAG, "Sync deck fail: " + e.getMessage());
}).done((result) -> {});
//DeckSquareApiUtil.synchronizeDecks();
}
......
package cn.garymb.ygomobile.ui.adapters;
import static cn.garymb.ygomobile.Constants.DEBUG;
import static cn.garymb.ygomobile.utils.YGOUtil.convertMillisToIsoString;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
......@@ -12,12 +15,8 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import cn.garymb.ygomobile.bean.Deck;
import cn.garymb.ygomobile.bean.DeckInfo;
......@@ -29,6 +28,7 @@ import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.DeckLoader;
import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.utils.YGOUtil;
import cn.hutool.poi.excel.cell.CellSetter;
import ocgcore.DataManager;
import ocgcore.data.LimitList;
......@@ -74,16 +74,6 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
mContext = context;
}
/**
* 将时间戳转换为 ISO 8601 格式的时间字符串
*/
@SuppressLint("SimpleDateFormat")
public static String convertMillisToIsoString(long timeMillis) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.CHINA);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdf.format(new Date(timeMillis));
}
@SuppressLint("ResourceType")
@Override
protected void convert(DeckViewHolder holder, T item) {
......@@ -123,6 +113,11 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
holder.side.setTextColor(Color.RED);
}
holder.file_time.setText(convertMillisToIsoString(deckFile.getDate()));
if (DEBUG) {
holder.ll_deck_date.setVisibility(View.VISIBLE);
} else {
holder.ll_deck_date.setVisibility(View.GONE);
}
if (deckFile.getTypeName().equals(YGOUtil.s(R.string.category_pack)) || deckFile.getPath().contains("cacheDeck")) {
//卡包展示时不显示额外和副卡组数量文本
holder.ll_extra_n_side.setVisibility(View.GONE);
......@@ -260,6 +255,7 @@ class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHo
TextView extra;
TextView side;
TextView file_time;
LinearLayout ll_deck_date;
LinearLayout ll_extra_n_side;
View item_deck_list;
View deck_info;
......@@ -274,7 +270,8 @@ class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHo
main = findView(R.id.count_main);
extra = findView(R.id.count_ex);
side = findView(R.id.count_side);
file_time =findView(R.id.file_time);
ll_deck_date = findView(R.id.ll_deck_date);
file_time = findView(R.id.file_time);
ll_extra_n_side = findView(R.id.ll_extra_n_side);
prerelease_star = findView(R.id.prerelease_star);
banned_mark = findView(R.id.banned_mark);
......
package cn.garymb.ygomobile.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
......@@ -25,7 +26,12 @@ import com.ourygo.lib.duelassistant.util.Util;
import org.jdeferred.android.AndroidDeferredManager;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import cn.garymb.ygomobile.App;
import cn.garymb.ygomobile.lite.R;
......@@ -235,6 +241,29 @@ public class YGOUtil {
float dp = px / density;
return dp;
}
/**
* 将时间戳转换为 ISO 8601 格式的时间字符串
*/
@SuppressLint("SimpleDateFormat")
public static String convertMillisToIsoString(long timeMillis) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdf.format(new Date(timeMillis));
}
// 方法1:使用SimpleDateFormat解析ISO 8601格式
public static long parseIsoDateToTimestamp(String isoDateString) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = sdf.parse(isoDateString);
return date.getTime();
} catch (ParseException e) {
LogUtil.e("parseIsoDateToTimestamp","解析失败: ", e);
return 0; // 解析失败返回0
}
}
}
......
......@@ -136,20 +136,32 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:id="@+id/ll_deck_date"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="bottom">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/baseline_more_time_24"/>
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="center"
android:src="@drawable/baseline_more_time_24" />
<TextView
android:id="@+id/file_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:singleLine="true"
android:layout_gravity="center"
android:textColor="@color/holo_blue_bright"
android:textSize="7sp"
tools:text="2025-07-03T19:47:26" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
......
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