|
@@ -0,0 +1,183 @@
|
|
|
+package com.jixin.im.ui.me.fragment;
|
|
|
+
|
|
|
+import android.os.Bundle;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+
|
|
|
+import androidx.annotation.NonNull;
|
|
|
+import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
+import androidx.recyclerview.widget.RecyclerView;
|
|
|
+
|
|
|
+import com.chad.library.adapter.base.BaseQuickAdapter;
|
|
|
+import com.chad.library.adapter.base.BaseViewHolder;
|
|
|
+import com.jixin.im.R;
|
|
|
+import com.jixin.im.bean.UserGiftBean;
|
|
|
+import com.jixin.im.helper.AvatarHelper;
|
|
|
+import com.jixin.im.helper.DialogHelper;
|
|
|
+import com.jixin.im.ui.base.EasyFragment;
|
|
|
+import com.jixin.im.util.ToastUtil;
|
|
|
+import com.makeramen.roundedimageview.RoundedImageView;
|
|
|
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
|
|
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
|
|
+import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
|
|
+import com.xuan.xuanhttplibrary.okhttp.HttpUtils;
|
|
|
+import com.xuan.xuanhttplibrary.okhttp.callback.ListCallback;
|
|
|
+import com.xuan.xuanhttplibrary.okhttp.result.ArrayResult;
|
|
|
+
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Locale;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import okhttp3.Call;
|
|
|
+
|
|
|
+public class MyIncomeFragment extends EasyFragment {
|
|
|
+ public static final String TYPE_RECEIVE = "receive"; //收到
|
|
|
+ public static final String TYPE_SEND = "send"; //发出
|
|
|
+ private int mPageIndex;
|
|
|
+ private String mType;
|
|
|
+ private SmartRefreshLayout mSmartRefreshLayout;
|
|
|
+ private RecyclerView mRecyclerView;
|
|
|
+ private IncomeAdapter mIncomeAdapter;
|
|
|
+
|
|
|
+ public MyIncomeFragment(String type) {
|
|
|
+ this.mType = type;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected int inflateLayoutId() {
|
|
|
+ return R.layout.fragment_my_income;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onActivityCreated(Bundle savedInstanceState, boolean createView) {
|
|
|
+ if (createView) {
|
|
|
+ initView();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ mSmartRefreshLayout = findViewById(R.id.refreshLayout_income);
|
|
|
+ mSmartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
|
|
|
+ @Override
|
|
|
+ public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mIncomeAdapter = new IncomeAdapter();
|
|
|
+ View emptyView = LayoutInflater.from(getContext()).inflate(R.layout.view_empty,null);
|
|
|
+ mIncomeAdapter.setEmptyView(emptyView);
|
|
|
+ mIncomeAdapter.setShowPrice(TYPE_RECEIVE.equals(mType));
|
|
|
+ mRecyclerView = findViewById(R.id.recycler_view_income);
|
|
|
+ LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
|
|
|
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
|
|
|
+ mRecyclerView.setLayoutManager(layoutManager);
|
|
|
+ mRecyclerView.setAdapter(mIncomeAdapter);
|
|
|
+ getDataAsyn();
|
|
|
+ }
|
|
|
+
|
|
|
+ private static class IncomeAdapter extends BaseQuickAdapter<UserGiftBean, BaseViewHolder> {
|
|
|
+ private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm";
|
|
|
+ private boolean isShowPrice;
|
|
|
+
|
|
|
+ public void setShowPrice(boolean isShow) {
|
|
|
+ this.isShowPrice = isShow;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static SimpleDateFormat sdr = new SimpleDateFormat(DATE_FORMAT, Locale.CHINA);
|
|
|
+
|
|
|
+ public IncomeAdapter() {
|
|
|
+ super(R.layout.adapter_my_income);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void convert(BaseViewHolder helper, UserGiftBean item) {
|
|
|
+ helper.setText(R.id.tv_nickname, item.getUserName());
|
|
|
+ RoundedImageView ivAvatar = helper.itemView.findViewById(R.id.iv_avatar);
|
|
|
+ if (item.getGift() != null) {
|
|
|
+ helper.setText(R.id.tv_gift_name, item.getGift().getGiftName());
|
|
|
+ }
|
|
|
+ AvatarHelper.getInstance().displayAvatar(item.getUserId(), ivAvatar);
|
|
|
+ String time = parseTime(item.getTime());
|
|
|
+ helper.setText(R.id.tv_gift_price, String.valueOf(item.getPrice()));
|
|
|
+ if (isShowPrice) {
|
|
|
+ helper.setVisible(R.id.tv_gift_price, true);
|
|
|
+ helper.setText(R.id.tv_gift_time, time);
|
|
|
+ } else {
|
|
|
+ helper.setVisible(R.id.tv_gift_price, false);
|
|
|
+ }
|
|
|
+ //TODO
|
|
|
+ helper.setText(R.id.tv_gift_type, "友");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public String parseTime(long time) {
|
|
|
+ String times = sdr.format(new Date(time * 1000L));
|
|
|
+ return times;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void getDataAsyn() {
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("access_token", coreManager.getSelfStatus().accessToken);
|
|
|
+ params.put("pageIndex", String.valueOf(mPageIndex));
|
|
|
+ params.put("pageSize", "10");
|
|
|
+ String url = coreManager.getConfig().SEND_GIFT_LOG;
|
|
|
+ if (TYPE_RECEIVE.equals(mType)) {
|
|
|
+ url = coreManager.getConfig().RECEIVE_GIFT_LOG;
|
|
|
+ }
|
|
|
+ DialogHelper.showDefaulteMessageProgressDialog(getActivity());
|
|
|
+ HttpUtils.post().url(url)
|
|
|
+ .params(params)
|
|
|
+ .build()
|
|
|
+ .execute(new ListCallback<UserGiftBean>(UserGiftBean.class) {
|
|
|
+ @Override
|
|
|
+ public void onResponse(ArrayResult<UserGiftBean> result) {
|
|
|
+ DialogHelper.dismissProgressDialog();
|
|
|
+ refreshLayoutFinish();
|
|
|
+ if (result != null && result.getData() != null && result.getData().size() > 0) {
|
|
|
+ List<UserGiftBean> list = result.getData();
|
|
|
+ setEnableRefresh(true);
|
|
|
+ mPageIndex++;
|
|
|
+ mIncomeAdapter.addData(list);
|
|
|
+ } else {
|
|
|
+ setEnableRefresh(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Call call, Exception e) {
|
|
|
+ ToastUtil.showToast(getContext(),e.getMessage());
|
|
|
+ DialogHelper.dismissProgressDialog();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ private void refreshLayoutFinish(){
|
|
|
+ mSmartRefreshLayout.finishLoadMore();
|
|
|
+ mSmartRefreshLayout.finishRefresh();
|
|
|
+ }
|
|
|
+ public void setEnableRefresh(boolean enable){
|
|
|
+ mSmartRefreshLayout.setEnableRefresh(enable);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setSmartRefreshLayoutLoadMore(boolean enable){
|
|
|
+ mSmartRefreshLayout.setEnableRefresh(enable);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|