package com.yidianling.user.mine; import android.annotation.SuppressLint; import android.view.View; import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.ListView; import com.alibaba.android.arouter.facade.annotation.Route; import com.ydl.webview.H5Params; import com.ydl.webview.NewH5Activity; import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.base.config.HttpConfig; import com.ydl.ydlcommon.bean.StatusBarOptions; import com.ydl.ydlcommon.data.http.RxUtils; import com.ydl.ydlcommon.data.http.ThrowableConsumer; import com.ydl.ydlcommon.utils.remind.ToastHelper; import com.ydl.ydlcommon.view.TitleBar; import com.ydl.ydlcommon.view.dialog.CommonDialog; import com.yidianling.common.tools.ToastUtil; import com.yidianling.user.R; import com.yidianling.user.UserConstants; import com.yidianling.user.UserHelper; import com.yidianling.user.api.utils.UserApiServiceUtils; import com.yidianling.user.bean.FundData; import com.yidianling.user.mine.data.AppDataManager; import com.yidianling.user.mine.view.LoadMoreFooterView; import org.jetbrains.annotations.NotNull; import in.srain.cube.views.loadmore.LoadMoreContainer; import in.srain.cube.views.loadmore.LoadMoreHandler; import in.srain.cube.views.loadmore.LoadMoreListViewContainer; import in.srain.cube.views.ptr.PtrDefaultHandler; import in.srain.cube.views.ptr.PtrFrameLayout; import in.srain.cube.views.ptr.PtrHandler; import in.srain.cube.views.ptr.header.MaterialHeader; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; /** * 资金明细 * Created by softrice on 15/12/1. */ @Route(path = "/mine/AccountHistoryActivity") public class AccountHistoryActivity extends BaseActivity implements PtrHandler, LoadMoreHandler { AccountHistoryListAdapter adapter; FundData fundData; int page = 0; boolean hasMore = true; private String available = "0.00"; LoadMoreFooterView loadMoreFooterView; TitleBar title_bar; ListView lv_content; LinearLayout ll_empty; LoadMoreListViewContainer load_more_list_view_container; PtrFrameLayout store_house_ptr_frame; @NotNull @Override public StatusBarOptions getStatusViewOptions() { return new StatusBarOptions(true,true); } @Override protected int layoutResId() { return R.layout.user_mine_activity_account_history; } @Override protected void initDataAndEvent() { title_bar = findViewById(R.id.title_bar); lv_content = findViewById(R.id.lv_content); ll_empty = findViewById(R.id.ll_empty); load_more_list_view_container = findViewById(R.id.load_more_list_view_container); store_house_ptr_frame = findViewById(R.id.store_house_ptr_frame); init(); } void init() { title_bar.setmRightText("提现"); title_bar.setOnRightTextClick(new TitleBar.OnTitleBarTextClick() { @Override public void onClick(View view, boolean isActive) { //未绑定手机号弹窗提示去绑定 if (!UserHelper.INSTANCE.isBindPhone()) { CommonDialog.create(AccountHistoryActivity.this) .setLeftOnclick("忍痛放弃", null) .setRightClick("果断绑定", new View.OnClickListener() { @Override public void onClick(View v) { startActivity(UserApiServiceUtils.INSTANCE.provideUserApiService().inputPhoneIntent(AccountHistoryActivity.this, UserConstants.BIND_PHONE_ACTION)); } }) .setMessage("\n为了您的账户安全,请先绑定手机\n") .show(); return; } // String money = null; // if (adapter.getCount() > 1) { // money = ((FundData.Fund) adapter.getItem(0)).available; // } else { // money = "0.00"; // } WithDrawActivity.Companion.start(AccountHistoryActivity.this, available); } }); // header final MaterialHeader header = new MaterialHeader(this); int[] colors = getResources().getIntArray(R.array.user_colors); header.setColorSchemeColors(colors); header.setLayoutParams(new PtrFrameLayout.LayoutParams(-1, -2)); final int padding = (int) getResources().getDimension(R.dimen.platform_default_dis_size); header.setPadding(0, padding, 0, padding); header.setPtrFrameLayout(store_house_ptr_frame); store_house_ptr_frame.setHeaderView(header); store_house_ptr_frame.setPtrHandler(this); store_house_ptr_frame.addPtrUIHandler(header); // 使用默认样式 //load_more_list_view_container.useDefaultHeader(); loadMoreFooterView = new LoadMoreFooterView(this); load_more_list_view_container.setLoadMoreUIHandler(loadMoreFooterView); load_more_list_view_container.setLoadMoreView(loadMoreFooterView); load_more_list_view_container.setLoadMoreHandler(this); adapter = new AccountHistoryListAdapter(this); // getData(false); lv_content.setEmptyView(ll_empty); lv_content.setAdapter(adapter); lv_content.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (position == 0) { return; } FundData.Fund fund = adapter.getDataList().get(position - 1); if ("1".equals(fund.type_int)) {//倾诉 H5Params h5Params = new H5Params(fund.url + "orderid=" + fund.orderid, null); h5Params.setShowMenu(true); NewH5Activity.start(AccountHistoryActivity.this, h5Params); } else if ("2".equals(fund.type_int)) {//订单详情 H5Params h5Params = new H5Params(HttpConfig.Companion.getH5_URL() + "booking/order-detail?orderid=" + fund.orderid, null); NewH5Activity.start(AccountHistoryActivity.this, h5Params); } } }); } @SuppressLint("CheckResult") void getData(final boolean loadMore) { if (loadMore && !hasMore) { load_more_list_view_container.loadMoreFinish(false, false); return; } if (loadMore) { page++; } else { page = 1; } showProgressDialog(); AppDataManager.INSTANCE.getHttp().getMyFundList(new FundListParam(1, page + "")) .compose(RxUtils.resultData()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(fundData -> { dismissProgressDialog(); load_more_list_view_container.loadMoreFinish(false, false); if (fundData == null || fundData.fund.size() < UserConstants.FUND_PAGE_SIZE) { hasMore = false; } load_more_list_view_container.loadMoreFinish(false, hasMore); if (!loadMore) adapter.setDataList(fundData.fund); else if (fundData.fund != null) adapter.addDataList(fundData.fund); }, new ThrowableConsumer() { @Override public void accept(@NotNull String msg) { dismissProgressDialog(); ToastHelper.Companion.show(msg); } }); } @Override public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) { return PtrDefaultHandler.checkContentCanBePulledDown(frame, lv_content, header); } @Override public void onRefreshBegin(PtrFrameLayout frame) { frame.postDelayed(new Runnable() { @Override public void run() { store_house_ptr_frame.refreshComplete(); } }, 1800); getData(false); getMyBalance(); } @SuppressLint("CheckResult") private void getMyBalance() { AppDataManager.INSTANCE.getHttp().getMyBalance() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(balanceBeanBaseResponse -> { if (balanceBeanBaseResponse.code == 200) { if (balanceBeanBaseResponse.data != null) { available = balanceBeanBaseResponse.data.availableMoney; if (adapter != null) { adapter.setAvailable(balanceBeanBaseResponse.data.availableMoney); } } } else { ToastUtil.toastShort(balanceBeanBaseResponse.msg); } }, throwable -> { }); } @Override public void onLoadMore(LoadMoreContainer loadMoreContainer) { getData(true); } @Override protected void onResume() { super.onResume(); getData(false); getMyBalance(); } @Override protected void onPause() { super.onPause(); } }