fix bugs.

This commit is contained in:
2025-12-05 10:48:31 +08:00
parent fbc2a57593
commit 4136077e98
15 changed files with 96 additions and 21 deletions

View File

@@ -13,7 +13,7 @@ import com.xscm.moduleutil.utils.ImageUtils;
*/
public class LikeUserAdapter<T> extends BaseQuickAdapter<T, BaseViewHolder> {
public LikeUserAdapter() {
super(R.layout.item_like_user);
super(R.layout.item_like_user_2);
}
@Override

View File

@@ -26,6 +26,7 @@ public class GsonUtils {
GSON = new GsonBuilder()
.serializeNulls() // 序列化 null 值
.registerTypeAdapterFactory(new BaseModelTypeAdapterFactory())
.registerTypeAdapter(String.class,new NullToEmptyStringAdapter())
.create();
}
return GSON;

View File

@@ -0,0 +1,21 @@
package com.xscm.moduleutil.utils
import com.google.gson.TypeAdapter
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonToken
import com.google.gson.stream.JsonWriter
class NullToEmptyStringAdapter : TypeAdapter<String>() {
override fun write(out: JsonWriter, value: String?) {
out.value(value ?: "")
}
override fun read(`in`: JsonReader): String {
return if (`in`.peek() == JsonToken.NULL) {
`in`.nextNull()
"" // null → 空字符串
} else {
`in`.nextString() ?: ""
}
}
}

View File

@@ -101,6 +101,9 @@ public class CommentDialogFragment extends BaseMvpDialogFragment<CommentPresente
@Override
public void getCommentList(List<CircleListBean.LikeList> likeLists) {
if (likeLists == null){
return;
}
mBinding.tvNum.setText("已有"+likeLists.size()+"人点赞");
likeListAdapter.setNewData(likeLists);
}

View File

@@ -117,10 +117,11 @@
<!-- 子评论列表 -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_replies"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_9"
android:padding="@dimen/dp_12"
android:layout_marginStart="@dimen/dp_45"
android:padding="@dimen/dp_8"
android:background="@drawable/bg_r12_f9f9f9"
app:layout_constraintStart_toStartOf="@+id/tv_time"
app:layout_constraintTop_toBottomOf="@+id/tv_time" />

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<com.xscm.moduleutil.widget.GifAvatarOvalView
android:id="@+id/user_icon"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:src="@mipmap/default_avatar"
android:layout_marginStart="-5dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:riv_oval="true"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -9,8 +9,8 @@
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_12"
android:layout_marginTop="@dimen/dp_12"
android:textSize="@dimen/sp_12"
android:textColor="@color/black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="回复" />
@@ -18,12 +18,12 @@
<TextView
android:id="@+id/tv_reply"
android:layout_width="0dp"
android:layout_marginTop="@dimen/dp_4"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_12"
app:layout_constraintStart_toEndOf="@+id/tv_name"
android:layout_marginHorizontal="@dimen/dp_8"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_name"
app:layout_constraintTop_toBottomOf="@+id/tv_name"
tools:text="回复" />
<TextView

View File

@@ -4,6 +4,7 @@ import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -289,7 +290,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
RecyclerView recyclerView = dialog.findViewById(R.id.rv_options);
TextView btnCancel = dialog.findViewById(R.id.btn_cancel);
TextView btnConfirm = dialog.findViewById(R.id.btn_confirm);
btnConfirm.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
btnConfirm.setTextColor(Color.WHITE);
assert recyclerView != null;
recyclerView.setLayoutManager(new LinearLayoutManager(this));

View File

@@ -29,6 +29,7 @@ import com.xscm.moduleutil.bean.WalletBean
import com.xscm.moduleutil.bean.room.RoomInfoResp
import com.xscm.moduleutil.bean.room.RoomPitBean
import com.xscm.moduleutil.bean.room.RoomUserBean
import com.xscm.moduleutil.dialog.ConfirmDialog
import com.xscm.moduleutil.utils.ClickUtils
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -233,7 +234,18 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
}
R.id.tv_time_right -> {
MvpPre.signEnd(mSignId!!)
// 创建并显示确认对话框
ConfirmDialog(
ActivityUtils.getTopActivity(),
"提示",
"确定要结束此次签约吗?",
"确认",
"取消",
{ v: View? ->
MvpPre.signEnd(mSignId!!)
},
{ v: View? -> }, false, 0
).show()
}
R.id.iv_help -> {
@@ -269,7 +281,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
mBinding.tvSignDay.visibility = View.GONE
}
mBinding.tvTime.text = "倒计时 00:00"
mBinding.tvTime.text = "倒计时 00:00:00"
setIvForMai(0)
}

View File

@@ -111,6 +111,11 @@ public class NoblePaymentActivity extends BaseMvpActivity<NobleTitlePresenter, A
ToastUtils.show("请先勾选服务条款");
return;
}
if (selectedItem.getType() == null) {
ToastUtils.show("请选择支付方式");
return;
}
MvpPre.appPay(SpUtil.getUserId() + "", money, selectedItem.getType(),lid);
}
}

View File

@@ -59,7 +59,7 @@ class MyFamilyFragment(var data: MyFamilyBean) : BaseFragment<FragmentMyFamilyBi
}
mBinding.tvFamilyGroup.setOnClickListener {
if (myFamilyBean.group_id.isNotEmpty()) {
if (!myFamilyBean.group_id.isNullOrEmpty()) {
val intent = Intent(activity, TUIGroupChatActivity::class.java)
intent.putExtra(TUIConstants.TUIChat.CHAT_ID, myFamilyBean.group_id)
intent.putExtra(TUIConstants.TUIChat.CHAT_NAME, myFamilyBean.name)

View File

@@ -34,11 +34,23 @@ class CountdownTimer {
job?.cancel()
}
/**
* 将毫秒数格式化为 HH:MM:SS 格式的时间字符串
* @param milliseconds 毫秒数(支持 0、负数、超大数值
* @return 格式化结果,如 3670000 毫秒 → 01:01:10125000 毫秒 → 00:02:05
*/
fun formatTime(milliseconds: Long): String {
val seconds = (milliseconds / 1000).toInt()
val minutes = seconds / 60
val remainingSeconds = seconds % 60
return String.format("%02d:%02d", minutes, remainingSeconds)
// 1. 处理负数/0转为非负避免时间为负
val nonNegativeMs = if (milliseconds < 0) 0 else milliseconds
// 2. 计算总秒数向下取整不足1秒按0算
val totalSeconds = (nonNegativeMs / 1000).toInt()
// 3. 拆分 小时、分钟、秒
val hours = totalSeconds / 3600 // 1小时=3600秒
val remainingSecondsAfterHour = totalSeconds % 3600 // 小时剩余秒数
val minutes = remainingSecondsAfterHour / 60 // 分钟
val seconds = remainingSecondsAfterHour % 60 // 秒
// 4. 格式化HH/MM/SS 均补0为2位如 1小时1分5秒 → 01:01:05
return String.format("%02d:%02d:%02d", hours, minutes, seconds)
}
}

View File

@@ -165,7 +165,7 @@
android:paddingHorizontal="@dimen/dp_38"
android:paddingTop="@dimen/dp_12"
android:paddingBottom="@dimen/dp_7"
android:text="我的家庭"
android:text="家族成员"
android:textColor="#ffffff"
android:textSize="@dimen/sp_14"
android:textStyle="bold" />

View File

@@ -163,7 +163,7 @@
android:paddingHorizontal="@dimen/dp_38"
android:paddingTop="@dimen/dp_12"
android:paddingBottom="@dimen/dp_7"
android:text="我的家庭"
android:text="家族成员"
android:textColor="#ffffff"
android:textSize="@dimen/sp_14"
android:textStyle="bold" />

View File

@@ -28,8 +28,8 @@ isBuildModule=false
#org.gradle.deamon=false
android.injected.testOnly=false
APP_VERSION_NAME=1.0.7.2
APP_VERSION_CODE=62
APP_VERSION_NAME=1.0.7.3
APP_VERSION_CODE=63
org.gradle.jvm.toolchain.useLegacyAdapters=false
#org.gradle.java.home=C\:\\Users\\qx\\.jdks\\ms-17.0.15