jixionghui пре 4 година
родитељ
комит
23c0f05150

+ 3 - 1
jixin/src/main/AndroidManifest.xml

@@ -93,7 +93,9 @@
         android:usesCleartextTraffic="true"
         tools:ignore="GoogleAppIndexingWarning"
         tools:replace="android:name, android:icon, android:roundIcon">
-        <activity android:name=".ui.me.RealNameAuthActivity"></activity>
+        <activity android:name=".ui.account.AccountDetailsActivity"></activity>
+        <activity android:name=".ui.me.MyIncomeActivity" />
+        <activity android:name=".ui.me.RealNameAuthActivity" />
         <activity android:name=".ui.me.JunYouCoinActivity" />
         <activity android:name=".ui.TestActivity">
 

+ 18 - 0
jixin/src/main/java/com/jixin/im/AppConfig.java

@@ -10,6 +10,10 @@ import com.jixin.im.util.PreferenceUtils;
 
 import java.util.Objects;
 
+import okhttp3.ResponseBody;
+import retrofit2.Call;
+import retrofit2.http.GET;
+
 public class AppConfig {
 
     public static final String TAG = "roamer";
@@ -308,6 +312,14 @@ public class AppConfig {
     public String ADDRESSBOOK_GETALL;// 查询通讯录好友
     public String ADDENTION_BATCH_ADD;// 联系人内加好友 不需要验证
 
+
+    /** 俊友币*/
+    public String RECEIVE_GIFT_LOG;       //查询收到的礼物
+    public String SEND_GIFT_LOG;          //查询发送的礼物
+    public String GIFT_BALANCE_LOG;           //俊友币账户明细
+    public String GET_USER_GIFT_BALANCE;    //获取用户俊友币和收益
+
+
     /* 登出地址 */
     public String USER_LOGOUT;
     /* 保存最后一次在线时间地址 */
@@ -829,6 +841,12 @@ public class AppConfig {
         config.API_FACE_NAME_DELETE = apiUrl + "faceClollect/deleteByFaceName";
         config.API_FACE_LIST_NAME_GET = apiUrl + "face/getName";
         config.API_FACE_ID_DELETE = apiUrl + "faceClollect/deleteFaceClollect";
+
+        /*  俊友币  */
+        config.RECEIVE_GIFT_LOG = apiUrl +"api/UserGiftBalance/receiveGiftLog";     //查询收到的礼物
+        config.SEND_GIFT_LOG = apiUrl +"api/UserGiftBalance/sendGiftLog";      //查询发出的礼物
+        config.GIFT_BALANCE_LOG = apiUrl +"api/UserGiftBalance/giftBalanceLog";
+        config.GET_USER_GIFT_BALANCE = apiUrl+"api/UserGiftBalance/getUserGiftBalance";
     }
 
     private static void initOthersUrls(AppConfig config) {

+ 147 - 0
jixin/src/main/java/com/jixin/im/bean/AccountDetailsBean.java

@@ -0,0 +1,147 @@
+package com.jixin.im.bean;
+
+import com.jixin.im.util.ParentRequestInterface;
+
+import java.io.Serializable;
+
+public class AccountDetailsBean implements Serializable {
+    /**
+     *
+     {
+     "id":"5f6b13e31c4d2a43645a96e0",
+     "membershipAccount":"5f6b13e31c4d2a43645a96e0",
+     "userName":"5f6b13e31c4d2a43645a96e0",
+     "userId":1,
+     "userMoney":1,
+     "money":1,
+     "startMoney":1,
+     "endMoney":1,
+     "type":1,
+     "currentBalance":1,
+     "operationAmount":1,
+     "desc":"5f6b13e31c4d2a43645a96e0",
+     "time":1
+     }
+     */
+    private static final long serialVersionUID = 3108892626672543128L;
+    private String id;
+    private String membershipAccount;
+    private String userName;
+    private String userId;
+    private Double userMoney;
+    private Double startMoney;
+    private Double money;
+    private Double endMoney;
+    private Integer type;
+    private Double currentBalance;
+    private String desc ;
+    private long time;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getMembershipAccount() {
+        return membershipAccount;
+    }
+
+    public void setMembershipAccount(String membershipAccount) {
+        this.membershipAccount = membershipAccount;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public Double getUserMoney() {
+        return userMoney;
+    }
+
+    public void setUserMoney(Double userMoney) {
+        this.userMoney = userMoney;
+    }
+
+    public Double getStartMoney() {
+        return startMoney;
+    }
+
+    public void setStartMoney(Double startMoney) {
+        this.startMoney = startMoney;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Double getEndMoney() {
+        return endMoney;
+    }
+
+    public void setEndMoney(Double endMoney) {
+        this.endMoney = endMoney;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Double getCurrentBalance() {
+        return currentBalance;
+    }
+
+    public void setCurrentBalance(Double currentBalance) {
+        this.currentBalance = currentBalance;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public long getTime() {
+        return time;
+    }
+
+    public void setTime(long time) {
+        this.time = time;
+    }
+
+    public Double getOperationAmount() {
+        return operationAmount;
+    }
+
+    public void setOperationAmount(Double operationAmount) {
+        this.operationAmount = operationAmount;
+    }
+
+    private Double operationAmount;
+
+
+}

+ 91 - 0
jixin/src/main/java/com/jixin/im/bean/GiftBean.java

@@ -0,0 +1,91 @@
+package com.jixin.im.bean;
+
+import java.io.Serializable;
+
+public class GiftBean implements Serializable {
+    /**
+     *     {
+     *                 "id":"5f6b13e31c4d2a43645a96e0",
+     *                 "giftName":"5f6b13e31c4d2a43645a96e0",
+     *                 "giftMoney":1.1,
+     *                 "giftImage":"5f6b13e31c4d2a43645a96e0",
+     *                 "giftgGif":"5f6b13e31c4d2a43645a96e0",
+     *                 "giftVoice":"5f6b13e31c4d2a43645a96e0",
+     *                 "isHide":1,
+     *                 "sort":1
+     *             }
+     */
+    private static final long serialVersionUID = -3475169459037874701L;
+    private String id;
+    private String giftName;
+    private double giftMoney;
+    private String giftImage;
+    private String giftgGif;
+    private String giftVoice;
+    private int isHide;
+    private int sort;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getGiftName() {
+        return giftName;
+    }
+
+    public void setGiftName(String giftName) {
+        this.giftName = giftName;
+    }
+
+    public double getGiftMoney() {
+        return giftMoney;
+    }
+
+    public void setGiftMoney(double giftMoney) {
+        this.giftMoney = giftMoney;
+    }
+
+    public String getGiftImage() {
+        return giftImage;
+    }
+
+    public void setGiftImage(String giftImage) {
+        this.giftImage = giftImage;
+    }
+
+    public String getGiftgGif() {
+        return giftgGif;
+    }
+
+    public void setGiftgGif(String giftgGif) {
+        this.giftgGif = giftgGif;
+    }
+
+    public String getGiftVoice() {
+        return giftVoice;
+    }
+
+    public void setGiftVoice(String giftVoice) {
+        this.giftVoice = giftVoice;
+    }
+
+    public int getIsHide() {
+        return isHide;
+    }
+
+    public void setIsHide(int isHide) {
+        this.isHide = isHide;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+}

+ 35 - 0
jixin/src/main/java/com/jixin/im/bean/UserGiftBalanceBean.java

@@ -0,0 +1,35 @@
+package com.jixin.im.bean;
+
+import java.io.Serializable;
+
+public class UserGiftBalanceBean implements Serializable {
+    private static final long serialVersionUID = 4936783878209392974L;
+    private Double giftBalance;
+    private Double incomeBalance;
+    private Double auditIncomeBalance;
+
+
+    public Double getGiftBalance() {
+        return giftBalance;
+    }
+
+    public void setGiftBalance(Double giftBalance) {
+        this.giftBalance = giftBalance;
+    }
+
+    public Double getIncomeBalance() {
+        return incomeBalance;
+    }
+
+    public void setIncomeBalance(Double incomeBalance) {
+        this.incomeBalance = incomeBalance;
+    }
+
+    public Double getAuditIncomeBalance() {
+        return auditIncomeBalance;
+    }
+
+    public void setAuditIncomeBalance(Double auditIncomeBalance) {
+        this.auditIncomeBalance = auditIncomeBalance;
+    }
+}

+ 124 - 0
jixin/src/main/java/com/jixin/im/bean/UserGiftBean.java

@@ -0,0 +1,124 @@
+package com.jixin.im.bean;
+
+import java.io.Serializable;
+
+public class UserGiftBean implements Serializable {
+    private static final long serialVersionUID = -7927242430781930334L;
+    private String id;
+    private int count;
+    private String giftId;
+    private String msgId;
+    private double price;
+    private String userId;
+    private String userName;
+    private String toUserId;
+    private String toUserName;
+    private String roomId;
+    private String roomName;
+    private long time;
+    private GiftBean gift;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public void setCount(int count) {
+        this.count = count;
+    }
+
+    public String getGiftId() {
+        return giftId;
+    }
+
+    public void setGiftId(String giftId) {
+        this.giftId = giftId;
+    }
+
+    public String getMsgId() {
+        return msgId;
+    }
+
+    public void setMsgId(String msgId) {
+        this.msgId = msgId;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getToUserId() {
+        return toUserId;
+    }
+
+    public void setToUserId(String toUserId) {
+        this.toUserId = toUserId;
+    }
+
+    public String getToUserName() {
+        return toUserName;
+    }
+
+    public void setToUserName(String toUserName) {
+        this.toUserName = toUserName;
+    }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public String getRoomName() {
+        return roomName;
+    }
+
+    public void setRoomName(String roomName) {
+        this.roomName = roomName;
+    }
+
+    public long getTime() {
+        return time;
+    }
+
+    public void setTime(long time) {
+        this.time = time;
+    }
+
+    public GiftBean getGift() {
+        return gift;
+    }
+
+    public void setGift(GiftBean gift) {
+        this.gift = gift;
+    }
+}

+ 4 - 3
jixin/src/main/java/com/jixin/im/fragment/MeFragment2.java

@@ -52,6 +52,7 @@ import com.jixin.im.ui.circle.range.SendVideoActivity;
 import com.jixin.im.ui.groupchat.SelectContactsActivity;
 import com.jixin.im.ui.me.AboutActivity;
 import com.jixin.im.ui.me.BasicInfoEditActivity;
+import com.jixin.im.ui.me.JunYouCoinActivity;
 import com.jixin.im.ui.me.MyCollection;
 import com.jixin.im.ui.me.MyGold;
 import com.jixin.im.ui.me.MySuperiorActivity;
@@ -455,7 +456,7 @@ public class MeFragment2 extends EasyFragment implements View.OnClickListener {
                 break;
             case R.id.iv_mysuperior:
 //                // 我的上级
-//                startActivity(new Intent(getActivity(), SettingActivity.class));
+                startActivity(new Intent(getActivity(), SettingActivity.class));
 
                 break;
             case R.id.iv_telephone:
@@ -477,8 +478,8 @@ public class MeFragment2 extends EasyFragment implements View.OnClickListener {
                 startActivity(new Intent(getActivity(), VipDetailsActivity.class));
                 break;
             case R.id.ll_junyou_coin:
-                //排行榜
-                startActivity(new Intent(getActivity(), MySuperiorActivity.class));
+                //俊友币
+                startActivity(new Intent(getActivity(), JunYouCoinActivity.class));
                 break;
             case R.id.shangcheng:
                 //俊友钱包

+ 169 - 0
jixin/src/main/java/com/jixin/im/ui/account/AccountDetailsActivity.java

@@ -0,0 +1,169 @@
+package com.jixin.im.ui.account;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.jixin.im.R;
+import com.jixin.im.bean.AccountDetailsBean;
+import com.jixin.im.bean.UserGiftBean;
+import com.jixin.im.helper.AvatarHelper;
+import com.jixin.im.helper.DialogHelper;
+import com.jixin.im.ui.base.BaseActivity;
+import com.jixin.im.ui.me.fragment.MyIncomeFragment;
+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 AccountDetailsActivity extends BaseActivity {
+    private SmartRefreshLayout mSmartRefreshLayout;
+    private RecyclerView mRecyclerView;
+    private AccountBalanceDetailsAdapter mAdapter;
+    private int mPageIndex;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_account_details);
+        initActionBar();
+        initView();
+        getDataAsyn();
+    }
+
+    private void initActionBar() {
+        getSupportActionBar().hide();
+        findViewById(R.id.iv_title_left).setOnClickListener(v -> finish());
+        TextView tvTitle = (TextView) findViewById(R.id.tv_title_center);
+        tvTitle.setText("账户明细");
+
+    }
+
+
+    private void initView() {
+        mSmartRefreshLayout = findViewById(R.id.refreshLayout_account);
+        mSmartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
+            @Override
+            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
+                getDataAsyn();
+
+            }
+
+            @Override
+            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+                mPageIndex = 0;
+                getDataAsyn();
+                setSmartRefreshLayoutLoadMore(true);
+
+            }
+        });
+        mAdapter = new AccountBalanceDetailsAdapter();
+        View emptyView = LayoutInflater.from(this).inflate(R.layout.view_empty,null);
+        mAdapter.setEmptyView(emptyView);
+        mRecyclerView = findViewById(R.id.recycler_view_account);
+        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+        mRecyclerView.setLayoutManager(layoutManager);
+        mRecyclerView.setAdapter(mAdapter);
+        getDataAsyn();
+    }
+
+    private void getDataAsyn() {
+        Map<String, String> params = new HashMap<>();
+        params.put("access_token", coreManager.getSelfStatus().accessToken);
+        params.put("page", String.valueOf(mPageIndex));
+        params.put("limit", "10");
+        String url = coreManager.getConfig().GIFT_BALANCE_LOG;
+
+        DialogHelper.showDefaulteMessageProgressDialog(this);
+        HttpUtils.get().url(url)
+                .params(params)
+                .build()
+                .execute(new ListCallback<AccountDetailsBean>(AccountDetailsBean.class) {
+                    @Override
+                    public void onResponse(ArrayResult<AccountDetailsBean> result) {
+                        DialogHelper.dismissProgressDialog();
+                        refreshLayoutFinish();
+                        if (result != null && result.getData() != null && result.getData().size() > 0) {
+                            List<AccountDetailsBean> list = result.getData();
+                            setEnableRefresh(true);
+                            mPageIndex++;
+                            mAdapter.addData(list);
+                        } else {
+                            setEnableRefresh(false);
+                        }
+
+                    }
+
+                    @Override
+                    public void onError(Call call, Exception e) {
+                        ToastUtil.showToast(getApplicationContext(),e.getMessage());
+                        DialogHelper.dismissProgressDialog();
+                    }
+                });
+    }
+
+
+    private static class AccountBalanceDetailsAdapter extends BaseQuickAdapter<AccountDetailsBean, BaseViewHolder> {
+        private static final String DATE_FORMAT = "yyyy年MM月dd日";
+
+
+        private static SimpleDateFormat sdr = new SimpleDateFormat(DATE_FORMAT, Locale.CHINA);
+
+        public AccountBalanceDetailsAdapter() {
+            super(R.layout.adapter_account_balance_details
+            );
+        }
+
+        @Override
+        protected void convert(BaseViewHolder helper, AccountDetailsBean item) {
+            String time = parseTime(item.getTime());
+            helper.setText(R.id.tv_time,time);
+            helper.setText(R.id.tv_desc,item.getDesc());
+            helper.setText(R.id.tv_amount,String.valueOf(item.getMoney()));
+
+        }
+
+
+        public String parseTime(long time) {
+            String times = sdr.format(new Date(time * 1000L));
+            return times;
+        }
+
+    }
+
+    private void refreshLayoutFinish(){
+        mSmartRefreshLayout.finishLoadMore();
+        mSmartRefreshLayout.finishRefresh();
+    }
+    public void setEnableRefresh(boolean enable){
+        mSmartRefreshLayout.setEnableRefresh(enable);
+
+    }
+
+    public void setSmartRefreshLayoutLoadMore(boolean enable){
+        mSmartRefreshLayout.setEnableRefresh(enable);
+    }
+
+}

+ 78 - 5
jixin/src/main/java/com/jixin/im/ui/me/JunYouCoinActivity.java

@@ -1,5 +1,6 @@
 package com.jixin.im.ui.me;
 
+import android.content.Intent;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.view.View;
@@ -7,12 +8,29 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import com.jixin.im.R;
+import com.jixin.im.bean.UserGiftBalanceBean;
+import com.jixin.im.bean.UserGiftBean;
+import com.jixin.im.helper.DialogHelper;
+import com.jixin.im.ui.account.AccountDetailsActivity;
 import com.jixin.im.ui.base.BaseActivity;
+import com.jixin.im.ui.me.bubble.HelpCenterActivity;
+import com.jixin.im.util.StringUtils;
+import com.jixin.im.util.ToastUtil;
 import com.klinker.android.link_builder.Link;
 import com.klinker.android.link_builder.LinkBuilder;
-
+import com.xuan.xuanhttplibrary.okhttp.HttpUtils;
+import com.xuan.xuanhttplibrary.okhttp.callback.BaseCallback;
+import com.xuan.xuanhttplibrary.okhttp.callback.ListCallback;
+import com.xuan.xuanhttplibrary.okhttp.result.ArrayResult;
+import com.xuan.xuanhttplibrary.okhttp.result.ObjectResult;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
+import okhttp3.Call;
+
 /**
  * 俊友币
  * Created by Harvey on 2020/09/24
@@ -29,6 +47,7 @@ public class JunYouCoinActivity extends BaseActivity implements View.OnClickList
 
         initActionBar();
         initView();
+        getDataAsyn();
     }
 
     private void initActionBar() {
@@ -59,28 +78,31 @@ public class JunYouCoinActivity extends BaseActivity implements View.OnClickList
     public void onClick(View v) {
         switch (v.getId()){
             case R.id.tv_recharge_jun_you:      //充值
-
+                ToastUtil.showToast(getApplicationContext(),"开发中...");
                 break;
             case R.id.tv_coin_withdraw:         //提现
+                startActivity(new Intent(this,WalletWithdrawActivity.class));
 
                 break;
             case R.id.rlt_income_details:       //收入明细
+                startActivity(new Intent(this,MyIncomeActivity.class));
 
                 break;
             case R.id.rlt_account_details:      //账户明细
+                startActivity(new Intent(this, AccountDetailsActivity.class));
 
                 break;
             case R.id.rlt_real_name_auth:       //实名认证
-
+                startActivity(new Intent(this, RealNameAuthActivity.class));
                 break;
             case R.id.rlt_help:                 //帮助
+                startActivity(new Intent(this, HelpCenterActivity.class));
                 break;
         }
 
     }
 
-
-    //设置拼手气/普通红包切换Link事件
+    //设置文本点击事件
     private void setTextLink(){
         String gitService = getString(R.string.junyou_gift_service);
         String payService = getString(R.string.junyou_pay_service);
@@ -107,4 +129,55 @@ public class JunYouCoinActivity extends BaseActivity implements View.OnClickList
 
     }
 
+
+
+    private void getDataAsyn() {
+        Map<String, String> params = new HashMap<>();
+        params.put("access_token", coreManager.getSelfStatus().accessToken);
+
+        String url = coreManager.getConfig().GET_USER_GIFT_BALANCE;
+
+        DialogHelper.showDefaulteMessageProgressDialog(this);
+        HttpUtils.post().url(url)
+                .params(params)
+                .build()
+                .execute(new BaseCallback<UserGiftBalanceBean>(UserGiftBalanceBean.class) {
+                    @Override
+                    public void onResponse(ObjectResult<UserGiftBalanceBean> result) {
+                        DialogHelper.dismissProgressDialog();
+                        if (result.getData()!=null){
+                            parseData(result.getData());
+                        }else {
+                            ToastUtil.showToast(getApplicationContext(),"暂无数据");
+                        }
+
+
+
+                    }
+
+                    @Override
+                    public void onError(Call call, Exception e) {
+                        DialogHelper.dismissProgressDialog();
+                        ToastUtil.showToast(getApplicationContext(),e.getMessage());
+
+                    }
+                });
+
+    }
+
+    private void parseData(UserGiftBalanceBean balanceBean){
+
+        tvJunYouCoin.setText(parseDouble2StringMoney(balanceBean.getGiftBalance()));
+        tvMyIncome.setText(parseDouble2StringMoney(balanceBean.getIncomeBalance()));
+        tvAuditing.setText(parseDouble2StringMoney(balanceBean.getAuditIncomeBalance()));
+
+    }
+    private String parseDouble2StringMoney (Double value){
+        String money = "0.00";
+        if (value!=null) {
+            money =  StringUtils.getMoney(value);
+        }
+        return money;
+    }
+
 }

+ 136 - 0
jixin/src/main/java/com/jixin/im/ui/me/MyIncomeActivity.java

@@ -0,0 +1,136 @@
+package com.jixin.im.ui.me;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+
+import android.os.Bundle;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.google.android.material.tabs.TabLayout;
+import com.jixin.im.R;
+import com.jixin.im.fragment.BaseRedPacketFragment;
+import com.jixin.im.fragment.NormalRedPacketFragment;
+import com.jixin.im.fragment.PasswordRedPacketFragment;
+import com.jixin.im.ui.base.BaseActivity;
+import com.jixin.im.ui.me.fragment.MyIncomeFragment;
+import com.jixin.im.ui.me.redpacket.SendRedPacketActivity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 收入明细
+ * Created by Harvey on 2020/09/24
+ */
+public class MyIncomeActivity extends BaseActivity {
+
+    private TabLayout mTabMyIncome;
+    private ViewPager mViewPager;
+    private TabFragmentPagerAdapter mTabFragmentPagerAdapter;
+    private List<MyIncomeFragment> mFragmentList;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_my_income);
+
+        initActionBar();
+        initData();
+        initView();
+    }
+
+    private void initData() {
+        mFragmentList = new ArrayList<>();
+        MyIncomeFragment incomeFragment = new MyIncomeFragment(MyIncomeFragment.TYPE_RECEIVE);
+        MyIncomeFragment outFragment = new MyIncomeFragment(MyIncomeFragment.TYPE_SEND);
+        mFragmentList.add(incomeFragment);
+        mFragmentList.add(outFragment);
+    }
+
+    private void initActionBar() {
+        getSupportActionBar().hide();
+        findViewById(R.id.iv_title_left).setOnClickListener(v -> finish());
+        TextView tvTitle = (TextView) findViewById(R.id.tv_title_center);
+        tvTitle.setText(R.string.income_details);
+    }
+
+    private void initView() {
+        mTabMyIncome = findViewById(R.id.tab_my_income);
+        mViewPager = findViewById(R.id.vp_my_income);
+        initTabLayout();
+
+
+
+    }
+
+
+
+    private void initTabLayout() {
+        initFragment();
+
+        mTabMyIncome.setupWithViewPager(mViewPager);
+        mTabMyIncome.removeAllTabs();
+
+
+//        TabLayout.Tab tab =  mTabRedPacket.newTab().setText("普通红包");
+
+        mTabMyIncome.addTab(mTabMyIncome.newTab().setText("收到的礼物"));//普通红包
+        mTabMyIncome.addTab(mTabMyIncome.newTab().setText("送出的礼物"));//口令红包
+
+        mTabMyIncome.setTabIndicatorFullWidth(false);
+        mTabMyIncome.setInlineLabel(true);
+        mTabMyIncome.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+            @Override
+            public void onTabSelected(TabLayout.Tab tab) {
+
+            }
+
+            @Override
+            public void onTabUnselected(TabLayout.Tab tab) {
+
+            }
+
+            @Override
+            public void onTabReselected(TabLayout.Tab tab) {
+
+            }
+        });
+
+    }
+
+    private void initFragment() {
+        mTabFragmentPagerAdapter = new TabFragmentPagerAdapter(getSupportFragmentManager(),mFragmentList);
+        mViewPager.setAdapter(mTabFragmentPagerAdapter);
+        mViewPager.setOffscreenPageLimit(mFragmentList.size());
+    }
+
+
+    private class TabFragmentPagerAdapter extends FragmentPagerAdapter {
+
+        private List<MyIncomeFragment> mFragmentList;
+
+        public TabFragmentPagerAdapter(FragmentManager fm, List<MyIncomeFragment> list) {
+            super(fm);
+            this.mFragmentList = list;
+        }
+
+        @Override
+        public void setPrimaryItem(ViewGroup container, int position, Object object) {
+            super.setPrimaryItem(container, position, object);
+        }
+
+        @Override
+        public MyIncomeFragment getItem(int position) {
+            return mFragmentList.get(position);//显示第几个页面
+        }
+
+        @Override
+        public int getCount() {
+            return mFragmentList.size();//有几个页面
+        }
+
+    }
+}

+ 183 - 0
jixin/src/main/java/com/jixin/im/ui/me/fragment/MyIncomeFragment.java

@@ -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);
+    }
+
+
+}

+ 36 - 0
jixin/src/main/res/layout/activity_account_details.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.account.AccountDetailsActivity">
+
+    <include layout="@layout/a_view_actionbar" />
+    android:layout_height="match_parent">
+
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:id="@+id/refreshLayout_account"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:overScrollMode="never">
+
+        <com.scwang.smartrefresh.layout.header.ClassicsHeader
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srlAccentColor="@android:color/white" />
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recycler_view_account"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:overScrollMode="never" />
+
+        <com.scwang.smartrefresh.layout.footer.ClassicsFooter
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srlAccentColor="@android:color/white" />
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+</LinearLayout>

+ 30 - 5
jixin/src/main/res/layout/activity_jun_you_coin.xml

@@ -13,6 +13,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
         <LinearLayout
+            android:layout_marginTop="40dp"
             android:layout_width="match_parent"
             android:orientation="vertical"
             android:gravity="center_horizontal"
@@ -39,7 +40,7 @@
                     android:id="@+id/tv_coin"
                     android:textSize="31sp"
                     android:textColor="#333333"
-                    android:text="2000"
+                    android:text="0"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"/>
 
@@ -77,7 +78,7 @@
                         android:layout_marginTop="12dp"
                         android:textSize="@dimen/sp_18_text_size"
                         android:textColor="#333333"
-                        android:text="1000"
+                        android:text="0"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"/>
 
@@ -106,7 +107,7 @@
                         android:layout_marginTop="12dp"
                         android:textSize="@dimen/sp_18_text_size"
                         android:textColor="#333333"
-                        android:text="1000"
+                        android:text="0"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"/>
 
@@ -161,6 +162,12 @@
                     android:layout_height="wrap_content"/>
 
             </RelativeLayout>
+            <View
+                android:layout_width="match_parent"
+                android:background="#c9c9c9"
+                android:layout_marginTop="5dp"
+                android:layout_marginBottom="5dp"
+                android:layout_height="1px"/>
             <RelativeLayout
                 android:id="@+id/rlt_account_details"
                 android:layout_width="match_parent"
@@ -184,6 +191,12 @@
                     android:layout_height="wrap_content"/>
 
             </RelativeLayout>
+            <View
+                android:layout_width="match_parent"
+                android:background="#c9c9c9"
+                android:layout_marginTop="5dp"
+                android:layout_marginBottom="5dp"
+                android:layout_height="1px"/>
             <RelativeLayout
                 android:id="@+id/rlt_real_name_auth"
                 android:layout_width="match_parent"
@@ -203,10 +216,10 @@
                     android:id="@+id/tv_real_auth_status"
                     android:textColor="#333333"
                     android:gravity="center"
-                    android:textSize="@dimen/sp_15_text_size"
+                    android:textSize="@dimen/sp_12_text_size"
                     android:layout_toStartOf="@+id/rlt_real_name_auth_right_icon"
                     android:layout_centerVertical="true"
-                    android:text="@string/help"
+                    android:text="@string/not_real_name_auth"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"/>
                 <ImageView
@@ -219,7 +232,13 @@
                     android:layout_height="wrap_content"/>
 
             </RelativeLayout>
+            <View
+                android:layout_width="match_parent"
+                android:background="#c9c9c9"
+                android:layout_marginTop="10dp"
+                android:layout_height="1px"/>
             <RelativeLayout
+
                 android:id="@+id/rlt_help"
                 android:layout_width="match_parent"
                 android:paddingStart="15dp"
@@ -243,6 +262,12 @@
                     android:layout_height="wrap_content"/>
 
             </RelativeLayout>
+            <View
+                android:layout_width="match_parent"
+                android:background="#c9c9c9"
+                android:layout_marginTop="5dp"
+                android:layout_marginBottom="5dp"
+                android:layout_height="1px"/>
 
             <TextView
                 android:layout_width="wrap_content"

+ 38 - 0
jixin/src/main/res/layout/activity_my_income.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.me.MyIncomeActivity">
+
+    <include layout="@layout/a_view_actionbar" />
+
+    <com.google.android.material.tabs.TabLayout
+        android:id="@+id/tab_my_income"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:tabBackground="@color/transparent"
+        app:tabIndicatorColor="@color/transparent"
+        app:tabMode="fixed"
+        app:tabRippleColor="@color/transparent"
+        app:tabSelectedTextColor="#FF4F00"
+        app:tabTextColor="#333333" />
+    <View
+        android:layout_width="match_parent"
+        android:background="#999999"
+        android:layout_height="1px"/>
+
+    <androidx.viewpager.widget.ViewPager
+        android:id="@+id/vp_my_income"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:overScrollMode="never"
+        android:layout_below="@+id/tab_my_income">
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:id="@+id/fragment_content"/>
+    </androidx.viewpager.widget.ViewPager>
+</LinearLayout>

+ 47 - 0
jixin/src/main/res/layout/adapter_account_balance_details.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:padding="15dp"
+    android:weightSum="7">
+
+    <TextView
+        android:id="@+id/tv_time"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:textColor="#333333"
+        android:textSize="@dimen/sp_13_text_size" />
+
+    <TextView
+        android:id="@+id/tv_desc"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:textColor="#333333"
+        android:textSize="@dimen/sp_13_text_size" />
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:gravity="bottom|end"
+        android:layout_height="match_parent"
+        android:layout_weight="3">
+        <TextView
+            android:textSize="@dimen/sp_15_text_size"
+            android:textStyle="bold"
+            android:textColor="#333333"
+            android:id="@+id/tv_amount"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"/>
+
+        <TextView
+            android:textSize="10sp"
+            android:layout_marginStart="4dp"
+            android:textColor="#333333"
+            android:text="@string/yuan"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"/>
+
+    </LinearLayout>
+</LinearLayout>

+ 104 - 0
jixin/src/main/res/layout/adapter_my_income.xml

@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="8dp"
+    android:paddingTop="8dp"
+    android:paddingBottom="8dp"
+    android:paddingEnd="20dp"
+
+    android:orientation="horizontal">
+
+    <com.makeramen.roundedimageview.RoundedImageView
+        android:id="@+id/iv_avatar"
+        android:layout_width="55dp"
+
+        android:layout_height="55dp"
+        android:src="@color/gray"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:riv_oval="true" />
+
+    <TextView
+        android:id="@+id/tv_nickname"
+
+
+        android:layout_width="wrap_content"
+        android:layout_height="23dp"
+        android:layout_marginStart="8dp"
+        android:maxLength="16"
+        android:singleLine="true"
+        android:text="@string/nick_name"
+        android:textColor="#333333"
+        android:textSize="16sp"
+        app:layout_constraintStart_toEndOf="@+id/iv_avatar"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:layout_marginStart="8dp"
+        android:id="@+id/tv_gift_name"
+        android:layout_width="wrap_content"
+        android:layout_height="17dp"
+        android:maxLength="20"
+        android:layout_marginTop="1dp"
+        android:singleLine="true"
+        android:text="赠送小飞机"
+        android:textColor="#FF5757"
+        android:textSize="12sp"
+        app:layout_constraintStart_toEndOf="@+id/iv_avatar"
+        app:layout_constraintTop_toBottomOf="@+id/tv_nickname"/>
+
+    <TextView
+        android:layout_marginStart="8dp"
+        android:id="@+id/tv_gift_time"
+        android:layout_width="wrap_content"
+        android:layout_height="13dp"
+        android:maxLength="20"
+        android:layout_marginTop="1dp"
+        android:singleLine="true"
+        android:text="赠送小飞机"
+        android:textColor="#666666"
+        android:textSize="10sp"
+        app:layout_constraintStart_toEndOf="@+id/iv_avatar"
+        app:layout_constraintTop_toBottomOf="@+id/tv_gift_name"/>
+    <com.makeramen.roundedimageview.RoundedImageView
+        android:id="@+id/iv_gift_type"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_marginTop="7dp"
+        app:riv_oval="true"
+        android:src="@color/gray"
+        android:visibility="visible"
+        app:layout_constraintEnd_toEndOf="parent"
+        android:layout_width="22dp"
+        android:layout_height="22dp"/>
+    <TextView
+        android:id="@+id/tv_gift_type"
+        app:layout_constraintTop_toTopOf="@+id/iv_gift_type"
+        app:layout_constraintStart_toStartOf="@id/iv_gift_type"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_gift_type"
+        android:text="友"
+        android:gravity="center"
+        android:textColor="@color/white"
+        android:textStyle="bold"
+        android:textSize="13sp"
+        android:src="@color/gray"
+        app:layout_constraintEnd_toEndOf="@+id/iv_gift_type"
+        android:layout_width="22dp"
+        android:layout_height="22dp"/>
+
+    <TextView
+        android:id="@+id/tv_gift_price"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        android:text="0.04"
+        android:gravity="center"
+        android:textColor="#FF5757"
+
+        android:textSize="13sp"
+
+        android:src="@color/gray"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 27 - 0
jixin/src/main/res/layout/fragment_my_income.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:orientation="vertical"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_height="match_parent">
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:id="@+id/refreshLayout_income"
+        android:layout_width="match_parent"
+        android:overScrollMode="never"
+        android:layout_height="match_parent">
+        <com.scwang.smartrefresh.layout.header.ClassicsHeader
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srlAccentColor="@android:color/white" />
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recycler_view_income"
+            android:overScrollMode="never"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+        <com.scwang.smartrefresh.layout.footer.ClassicsFooter
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srlAccentColor="@android:color/white" />
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+</LinearLayout>

+ 48 - 0
jixin/src/main/res/layout/view_empty.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/ll_order_empty"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:orientation="vertical"
+    android:visibility="visible">
+
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginBottom="35dp"
+        android:gravity="center_horizontal"
+        android:orientation="vertical">
+
+        <ImageView
+            android:id="@+id/iv_empty"
+            android:src="@mipmap/img_empty_history"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView
+            android:id="@+id/tv_empty_title"
+            android:layout_width="wrap_content"
+
+            android:layout_height="wrap_content"
+            android:layout_marginTop="25dp"
+            android:gravity="center"
+
+            android:textColor="#333333"
+            android:textSize="16sp" />
+
+        <TextView
+            android:id="@+id/tv_empty_content"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:text="暂无历史数据"
+            android:textColor="#999999"
+            android:textSize="13sp" />
+
+    </LinearLayout>
+
+</LinearLayout>

BIN
jixin/src/main/res/mipmap-xhdpi/img_empty_history.png


+ 2 - 0
jixin/src/main/res/values/strings.xml

@@ -2386,6 +2386,8 @@
     <string name="id_card_num">身份证号码</string>
     <string name="id_card_num_input_tips">请填写您本人的身份证号</string>
     <string name="face_recognition">进行人脸识别</string>
+    <string name="not_real_name_auth">未实名</string>
+    <string name="yet_real_name_auth">已实名</string>
 
 
     <!--  end -->