1:添加签到功能,在首页展示,跟在青少年模式下,

2:在任务页面展示签到功能
This commit is contained in:
2025-12-12 15:27:32 +08:00
parent 17b562f194
commit 6825009aba
7 changed files with 150 additions and 3 deletions

View File

@@ -919,4 +919,14 @@ public interface ApiServer {
@FormUrlEncoded
@POST(Constants.POST_SIGN_REFUSE)
Call<BaseModel<String>> signRefuse(@Field("room_id") String room_id);
@GET(Constants.GET_SIGN_IN_LIST)
Call<BaseModel<List<SignInData>>> signIn();
@GET(Constants.POST_DAILY_TASKS_SIGN)
Call<BaseModel<String>> postDailyTasksSign();
@GET(Constants.POST_DAILY_TASKS_SIGN_STATUS)
Call<BaseModel<TasksSignStatus>> postDailyTasksSignStatus();
}

View File

@@ -4933,6 +4933,83 @@ public class RetrofitClient {
}
}
public void signIn(BaseObserver<List<SignInData>> observer) {
sApiServer.signIn().enqueue(new Callback<BaseModel<List<SignInData>>>(){
@Override
public void onResponse(Call<BaseModel<List<SignInData>>> call, Response<BaseModel<List<SignInData>>> response) {
if (response.code()==200){
BaseModel<List<SignInData>> baseModel = response.body();
if (baseModel.getCode()==1){
observer.onNext(baseModel.getData());
}else if (baseModel.getCode()==0){
com.hjq.toast.ToastUtils.show(baseModel.getMsg());
}else if (baseModel.getCode()==301){
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(baseModel.getMsg());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}else {
LogUtils.e("signIn",response.errorBody());
}
}
@Override
public void onFailure(Call<BaseModel<List<SignInData>>> call, Throwable t) {
LogUtils.e("signIn", t.fillInStackTrace());
}
});
}
public void dailyTasksSign(BaseObserver<String> observer) {
sApiServer.postDailyTasksSign().enqueue(new Callback<BaseModel<String>>(){
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
onNextRetu(response, observer);
}
@Override
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
LogUtils.e("signIn", t.fillInStackTrace());
}
});
}
public void tasksSignStatus(BaseObserver<TasksSignStatus> observer) {
sApiServer.postDailyTasksSignStatus().enqueue(new Callback<BaseModel<TasksSignStatus>>(){
@Override
public void onResponse(Call<BaseModel<TasksSignStatus>> call, Response<BaseModel<TasksSignStatus>> response) {
if (response.code()==200){
BaseModel<TasksSignStatus> baseModel = response.body();
if (baseModel.getCode()==1){
observer.onNext(baseModel.getData());
}else if (baseModel.getCode()==0){
com.hjq.toast.ToastUtils.show(baseModel.getMsg());
}else if (baseModel.getCode()==301){
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(baseModel.getMsg());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}else {
LogUtils.e("postDailyTasksSignStatus",response.errorBody());
}
}
@Override
public void onFailure(Call<BaseModel<TasksSignStatus>> call, Throwable t) {
LogUtils.e("postDailyTasksSignStatus", t.fillInStackTrace());
}
});
}
}

View File

@@ -437,6 +437,9 @@ public class Constants {
public static final String POST_FREE_RE_SIGN = "/api/Sign/free_re_sign";//免费续约
public static final String POST_RE_SIGN = "/api/Sign/re_sign";//续签(花金币)
public static final String POST_SIGN_REFUSE = "/api/RoomPit/refuse_sign_room_host_invite";//签约房间主持邀请上签约麦用户拒绝
public static final String GET_SIGN_IN_LIST = "/api/Tasks/dailyTasksSignList";//签到列表页面
public static final String POST_DAILY_TASKS_SIGN = "/api/Tasks/dailyTasksSign";//每日签到
public static final String POST_DAILY_TASKS_SIGN_STATUS = "/api/Tasks/dailyTasksSignStatus";//每日签到状态

View File

@@ -5,6 +5,7 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.TasksSignStatus;
public final class VoiceContacts {
@@ -15,6 +16,8 @@ public final class VoiceContacts {
void hideRecommend(boolean hideRecommend,boolean hideGame);
void activitiesPermissionSuccess(ActivitiesPermission activitiesPermission);
void tasksSignStatus(TasksSignStatus tasksSignStatus);
}
public interface IIndexPre extends IPresenter {
@@ -25,6 +28,8 @@ public final class VoiceContacts {
void activitiesPermission();//活动弹框权限
void tasksSignStatus();
}
}

View File

@@ -17,10 +17,12 @@ import com.xscm.modulemain.activity.room.activity.SearchActivity;
import com.xscm.modulemain.activity.room.contacts.VoiceContacts;
import com.xscm.modulemain.databinding.FragmentVoiceBinding;
import com.xscm.modulemain.activity.room.presenter.VoicePresenter;
import com.xscm.modulemain.dialog.SignInDialog;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.bean.TasksSignStatus;
import com.xscm.moduleutil.dialog.FirstChargeDialog;
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
import com.xscm.modulemain.dialog.YouthModelDialog;
@@ -33,6 +35,8 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoiceBinding> implements VoiceContacts.View {
@@ -98,7 +102,7 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
// 记录已经显示过青少年模式弹窗
SpUtil.setBooleanValue("youth_model_shown", true);
dialog.dismiss();
MvpPre.activitiesPermission();
MvpPre.tasksSignStatus();
// 在这里可以继续显示其他弹窗,如首充弹窗
}
@@ -177,6 +181,23 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
}
}
@Override
public void tasksSignStatus(TasksSignStatus tasksSignStatus) {
if (tasksSignStatus.getStatus()==1){
MvpPre.activitiesPermission();
}else {
SignInDialog signInDialog = new SignInDialog(getContext());
signInDialog.setOnCloseListener(new Function0<Unit>() {
@Override
public Unit invoke() {
MvpPre.activitiesPermission();
return null;
}
});
signInDialog.show();
}
}
private void setDialog(){
if(ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity)ActivityUtils.getTopActivity()).dialogUp();

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import com.xscm.modulemain.activity.room.contacts.VoiceContacts;
import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.TasksSignStatus;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
@@ -134,4 +135,22 @@ public class VoicePresenter extends BasePresenter<VoiceContacts.View> implements
}
});
}
@Override
public void tasksSignStatus() {
api.tasksSignStatus(new BaseObserver<TasksSignStatus>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(TasksSignStatus tasksSignStatus) {
if (MvpRef==null)
MvpRef=new WeakReference<>(mView);
MvpRef.get().tasksSignStatus(tasksSignStatus);
}
});
}
}

View File

@@ -24,10 +24,10 @@ import com.xscm.modulemain.activity.user.conacts.DailyTasksConacts;
import com.xscm.modulemain.activity.user.presenter.DailyTasksPresenter;
import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.modulemain.dialog.SignInDialog;
import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.TaskDataBean;
import com.xscm.moduleutil.utils.CustomMsgCode;
import com.xscm.moduleutil.base.WebUrlConstants;
import com.xscm.moduleutil.bean.GiftBoxBean;
@@ -45,6 +45,8 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
/**
* @author qx
@@ -110,7 +112,8 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
break;
case 3://已完成
if (item.getTask_id() == 1){
SignInDialog sginDialog = new SignInDialog(DailyTasksActivity.this);
sginDialog.show();
}
break;
}
@@ -154,6 +157,15 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
private void taskStatus1(GiftBoxBean.TaskDataBean.DailyTasksBean item) {
switch (item.getTask_id()){
case 1:
SignInDialog sginDialog = new SignInDialog(this);
sginDialog.setOnCloseListener(new Function0<Unit>() {
@Override
public Unit invoke() {
MvpPre.tasksLihen();
return null;
}
});
sginDialog.show();
break;
default:
switch (item.getJump_type()) {