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

@@ -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()) {