任务修改。

This commit is contained in:
2025-12-16 14:44:48 +08:00
parent 72a7eecbcd
commit 4b356a6ce4
19 changed files with 249 additions and 30 deletions

View File

@@ -5,13 +5,23 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.LogUtils;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.xscm.modulemain.Application;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
@@ -40,7 +50,9 @@ import com.xscm.moduleutil.utils.SpUtil;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
@@ -57,14 +69,15 @@ import kotlin.jvm.functions.Function0;
public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, ActivityDailyTasksBinding> implements DailyTasksConacts.View {
private TaskBoxAdapter mTaskBoxAdapter;
private TaskSectionAdapter mTaskDataAdapter;
private TaskDataAdapter taskDataAdapter;
private List<GiftBoxBean.TaskDataBean> taskList = new ArrayList<>();
private boolean isJoinRoom = false;
private ViewPager2Adapter viewPager2Adapter;
private int currentTab = 0;
@Override
protected DailyTasksPresenter bindPresenter() {
return new DailyTasksPresenter(this, this);
@@ -97,13 +110,22 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
mBinding.rvTask.setLayoutManager(new GridLayoutManager(this, 2, GridLayoutManager.VERTICAL, false));
mBinding.rvTask.setAdapter(mTaskBoxAdapter);
mBinding.rvTaskToday.setLayoutManager(new GridLayoutManager(this, 1));
mTaskDataAdapter = new TaskSectionAdapter(taskList);
mBinding.rvTaskToday.setAdapter(mTaskDataAdapter);
mTaskDataAdapter.setOnItemClickListener(new TaskSectionAdapter.OnItemClickListener() {
mBinding.imGz.setOnClickListener(v -> {
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", WebUrlConstants.INSTANCE.getWEB_RULES_URL());
intent.putExtra("title", "规则 ");
startActivity(intent);
});
mTaskBoxAdapter.setOnItemClickListener(position -> {
GiftBoxBean.GiftBean item = mTaskBoxAdapter.getItem(position);
MvpPre.dailyTasksOpenBox(item.getId());
});
viewPager2Adapter = new ViewPager2Adapter(taskList, new ViewPager2Adapter.OnItemClickListener() {
@Override
public void onItemClick(GiftBoxBean.TaskDataBean taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
public void onItemClick(int position, GiftBoxBean.TaskDataBean taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
LogUtils.e("taskStatus:" + item.toString() + "\n taskItem:" + taskItem.toString());
switch (item.getTask_status()) {
case 1://未开始
@@ -121,22 +143,56 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
}
}
});
mBinding.viewPager2.setAdapter(viewPager2Adapter);
mBinding.imGz.setOnClickListener(v -> {
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", WebUrlConstants.INSTANCE.getWEB_RULES_URL());
intent.putExtra("title", "规则 ");
startActivity(intent);
// 2. 设置 ViewPager2 的页面变化监听(联动 TabLayout
mBinding.viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// 更新 TabLayout 的选中状态
TabLayout.Tab selectedTab = mBinding.tabTitle.getTabAt(position);
if (selectedTab != null) {
selectedTab.select();
}
}
});
mTaskBoxAdapter.setOnItemClickListener(position -> {
GiftBoxBean.GiftBean item = mTaskBoxAdapter.getItem(position);
MvpPre.dailyTasksOpenBox(item.getId());
mBinding.tabTitle.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
if (customView != null) {
TextView textView = customView.findViewById(R.id.tabText);
ImageView iconView = customView.findViewById(R.id.tabIcon);
iconView.setImageResource(R.mipmap.icon_task_select_lock);
textView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.black));
}
mBinding.viewPager2.setCurrentItem(tab.getPosition());
currentTab = tab.getPosition();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
if (customView != null) {
TextView textView = customView.findViewById(R.id.tabText);
ImageView iconView = customView.findViewById(R.id.tabIcon);
iconView.setImageResource(R.mipmap.icon_task_select_unlock);
textView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.colorBlack45));
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
public void isShowLoading(boolean b) {
if (b) {
mBinding.coolWaitView.setVisibility(View.VISIBLE);
@@ -156,14 +212,40 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
public void setGiftBox(GiftBoxBean giftBoxBean) {
mBinding.tvTitle.setText("今日累计充值获得金币:" + (giftBoxBean.getUser_gold() != null ? giftBoxBean.getUser_gold() : "0"));
mTaskBoxAdapter.setNewData(giftBoxBean.getGift_box_list());
taskList.clear();
taskList.addAll(giftBoxBean.getTasks());
giftBoxBean.getTasks().stream()
.filter(task -> !task.getTask_list().isEmpty())
.forEach(taskList::add);
mBinding.tabTitle.removeAllTabs();
mTaskDataAdapter.notifyDataSetChanged();
for (int i = 0; i < taskList.size(); i++) {
GiftBoxBean.TaskDataBean taskItem = taskList.get(i);
TabLayout.Tab tab = mBinding.tabTitle.newTab();
View customView = getLayoutInflater().inflate(R.layout.custom_task_tab, null);
TextView textView = customView.findViewById(R.id.tabText);
ImageView iconView = customView.findViewById(R.id.tabIcon);
textView.setText(taskItem.getTask_type_name());
if (taskItem.getIs_lock() == 1) {
if (i == 0) {
iconView.setImageResource(R.mipmap.icon_task_select_lock);
} else {
iconView.setImageResource(R.mipmap.icon_task_select_unlock);
}
} else {
iconView.setVisibility(View.GONE);
}
tab.setCustomView(customView);
mBinding.tabTitle.addTab(tab);
}
// 4. 默认选中第一个 Tab可选
mBinding.tabTitle.post(() -> {
if (mBinding.tabTitle.getTabCount() > currentTab) {
mBinding.tabTitle.selectTab(mBinding.tabTitle.getTabAt(currentTab));
}
});
viewPager2Adapter.notifyDataSetChanged();
}
private void taskStatus1(GiftBoxBean.TaskDataBean.DailyTasksBean item) {
@@ -283,5 +365,65 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
}
}
class ViewPager2Adapter extends RecyclerView.Adapter<ViewPager2Adapter.ViewHolder> {
private List<GiftBoxBean.TaskDataBean> taskList;
private OnItemClickListener onItemClickListener;
public ViewPager2Adapter(List<GiftBoxBean.TaskDataBean> taskList, OnItemClickListener onItemClickListener) {
this.taskList = taskList;
this.onItemClickListener = onItemClickListener;
}
@NonNull
@Override
public ViewPager2Adapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycleview_task, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewPager2Adapter.ViewHolder holder, int position) {
holder.recyclerView.setLayoutManager(new GridLayoutManager(DailyTasksActivity.this, 1));
TaskDataAdapter adapter = new TaskDataAdapter();
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext()));
holder.recyclerView.setAdapter(adapter);
adapter.setNewData(taskList.get(position).getTask_list());
if (taskList.get(position).getIs_lock() == 1) {
View emptyView = LayoutInflater.from(DailyTasksActivity.this).inflate(R.layout.empty_img_layout, null, false);
ImageView ivEmpty = emptyView.findViewById(R.id.image_empty);
if (taskList.get(position).getTask_type_name().contains("师徒")) {
ivEmpty.setImageResource(R.mipmap.icon_ts_lock_show_bg);
} else if (taskList.get(position).getTask_type_name().contains("情侣")) {
ivEmpty.setImageResource(R.mipmap.icon_cp_lock_show_bg);
}
adapter.setEmptyView(emptyView);
}
adapter.setItemClickLitener((view, position1, item) -> {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(position, taskList.get(position), item);
}
});
}
@Override
public int getItemCount() {
return taskList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
public RecyclerView recyclerView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
recyclerView = itemView.findViewById(R.id.recycle_view);
}
}
interface OnItemClickListener {
void onItemClick(int position, GiftBoxBean.TaskDataBean taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item);
}
}
}