Commit b4102c68 authored by jianglx's avatar jianglx

添加消费记录,购买记录

parent 1aeabaf4
...@@ -14,12 +14,12 @@ ...@@ -14,12 +14,12 @@
<item name="android:windowBackground">@color/colorPrimary</item> <item name="android:windowBackground">@color/colorPrimary</item>
</style> </style>
<!-- App启动样式 --> <!--&lt;!&ndash; App启动样式 &ndash;&gt;-->
<style name="SplashTheme" parent="ResourceBaseAppTheme"> <!--<style name="SplashTheme" parent="ResourceBaseAppTheme">-->
<item name="android:windowBackground">@color/colorPrimary</item> <!--<item name="android:windowBackground">@color/colorPrimary</item>-->
<item name="android:windowFullscreen">true</item> <!--<item name="android:windowFullscreen">true</item>-->
<item name="windowNoTitle">true</item> <!--<item name="windowNoTitle">true</item>-->
<item name="windowActionBar">false</item> <!--<item name="windowActionBar">false</item>-->
<item name="android:windowIsTranslucent">true</item> <!--<item name="android:windowIsTranslucent">true</item>-->
</style> <!--</style>-->
</resources> </resources>
...@@ -8,7 +8,7 @@ android { ...@@ -8,7 +8,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 30 versionCode 30
versionName "3.0" versionName "3.2"
multiDexEnabled true multiDexEnabled true
//新版Gradle 是 implementation 为了兼容compile,写上这句话 //新版Gradle 是 implementation 为了兼容compile,写上这句话
......
...@@ -14,4 +14,24 @@ public class ScaleUtils { ...@@ -14,4 +14,24 @@ public class ScaleUtils {
public static int px2dip(Context context, int pxValue) { public static int px2dip(Context context, int pxValue) {
return ((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, pxValue, context.getResources().getDisplayMetrics())); return ((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, pxValue, context.getResources().getDisplayMetrics()));
} }
/*****
* sp转px
* @param context
* @param spValue
* @return
*/
public static int sp2px(Context context,float spValue) {
return (int) (spValue * context.getResources().getDisplayMetrics().scaledDensity + 0.5f);
}
/*******
* px转sp
* @param pxValue
* @return
*/
public static float px2sp(Context context,int pxValue) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, pxValue, context.getResources().getDisplayMetrics());
}
} }
package com.ruiwenliu.wrapper.weight.refresh;
import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.ruiwenliu.wrapper.R;
public class SimpleLoadView extends LinearLayout implements IFooterWrapper {
private TextView tvStatus;
public SimpleLoadView(Context context) {
this(context, null);
}
public SimpleLoadView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public SimpleLoadView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
}
private void initView() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.view_load_foot, this, false);
tvStatus = view.findViewById(R.id.tv_status);
addView(view);
}
@Override
public View getFooterView() {
return this;
}
@Override
public void pullUp() {
tvStatus.setText("加载更多");
}
@Override
public void pullUpReleasable() {
tvStatus.setText("松手可加载更多");
}
@Override
public void pullUpRelease() {
tvStatus.setText("正在加载...");
}
@Override
public void pullUpFinish() {
}
}
...@@ -23,6 +23,6 @@ ...@@ -23,6 +23,6 @@
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:text="@string/empty_no_data" android:text="@string/empty_no_data"
android:textColor="#ffcd00" android:textColor="#ffcd00"
android:textSize="24px" /> android:textSize="@dimen/sp_14" />
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
<?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:gravity="center">
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上拉加载更多..." />
</LinearLayout>
...@@ -363,6 +363,25 @@ public class OrderListBean extends BaseBean { ...@@ -363,6 +363,25 @@ public class OrderListBean extends BaseBean {
private String startAddr; private String startAddr;
private int orderId; private int orderId;
private int endCity; private int endCity;
private int freeDays;
private int rebate;
public int getFreeDays() {
return freeDays;
}
public void setFreeDays(int freeDays) {
this.freeDays = freeDays;
}
public int getRebate() {
return rebate;
}
public void setRebate(int rebate) {
this.rebate = rebate;
}
public String getStart_city_name() { public String getStart_city_name() {
return startCityName; return startCityName;
...@@ -539,6 +558,8 @@ public class OrderListBean extends BaseBean { ...@@ -539,6 +558,8 @@ public class OrderListBean extends BaseBean {
public void setEnd_city(int end_city) { public void setEnd_city(int end_city) {
this.endCity = end_city; this.endCity = end_city;
} }
} }
public static class OrderTourDetail implements Serializable { public static class OrderTourDetail implements Serializable {
......
...@@ -26,6 +26,7 @@ android { ...@@ -26,6 +26,7 @@ android {
dependencies { dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.jakewharton:butterknife:9.0.0-rc1' implementation 'com.jakewharton:butterknife:9.0.0-rc1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
......
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rv.member" > package="com.rv.member">
<application> <application>
<activity android:name="com.rv.member.MemberCenterActivity"></activity> <activity android:name=".MemberCenterActivity" />
<activity android:name=".ConsumeRecordActivity" />
<activity android:name=".FreesDayActivity" />
<activity android:name=".PurchaseRecordActivity"></activity>
</application> </application>
</manifest>
</manifest>
\ No newline at end of file
package com.rv.member;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.main.home.order.OrderDetailActivity;
import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean;
import com.rv.member.adapter.ConsumeRecordListAdapter;
import com.yuyife.okgo.OkGoUtil;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import butterknife.BindView;
public class ConsumeRecordActivity extends BaseStatusActivity<CommonPresenter> implements SimpleRefreshLayout.OnSimpleRefreshListener, BaseQuickAdapter.RequestLoadMoreListener {
@BindView(R2.id.refresh)
SimpleRefreshLayout simpleRefreshLayout;
@BindView(R2.id.recyclerView)
RecyclerView recyclerView;
private int mPage = 1;
private int pageCount;
private List<OrderListBean.DataBeanX.DataBean> lists = new ArrayList<>();
private ConsumeRecordListAdapter adapter = null;
@Override
protected int setLayout() {
return R.layout.activity_consume_record;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("消费记录");
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
adapter = new ConsumeRecordListAdapter(lists, mClickListener);
adapter.setEmptyView(getEmptyView(recyclerView, -1, getString(R.string.tv_no_consume_data)));
adapter.setOnLoadMoreListener(this, recyclerView);
recyclerView.setAdapter(adapter);
simpleRefreshLayout.setHeaderView(new SimpleRefreshView(this));
// simpleRefreshLayout.setFooterView(new SimpleLoadView(this), 100);
simpleRefreshLayout.setOnSimpleRefreshListener(this);
}
@Override
public void onShowResult(int requestType, BaseBean result) {
if (requestType == 1) { // 下拉刷新数据
lists.clear();
simpleRefreshLayout.onRefreshComplete();
} else if (requestType == 2) { // 上拉加载更多
simpleRefreshLayout.onLoadMoreComplete();
}
OrderListBean listBean = (OrderListBean) result;
if (listBean != null && listBean.getData() != null) {
pageCount = listBean.getData().getTotalPage();
lists.addAll(listBean.getData().getData());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
// lists.add(new OrderListBean.DataBeanX.DataBean());
adapter.notifyDataSetChanged();
}
}
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
getConsumeRecordData(0);
}
private void getConsumeRecordData(int position) {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
Map<String, Object> bodyMap = new LinkedHashMap<>();
bodyMap.put("page", mPage);
bodyMap.put("limit", 10);
// bodyMap.put("status", "3");
bodyMap.put("hasMemberRight", 1);
bodyMap.put("type", 1);
bodyMap.put("multiStatus", "4,5,6");
mPresenter.getData(RvFrameConfig.VEHICLE_ORDER, position, ApiConfig.HTTP_URL_ORDER_LIST, OrderListBean.class, bodyMap, headMap, mPage == 1 ? true : false);
}
private ConsumeRecordListAdapter.ConsumeListener mClickListener = new ConsumeRecordListAdapter.ConsumeListener() {
@Override
public void click(OrderListBean.DataBeanX.DataBean bean) {
if (bean != null) {
startActivity(OrderDetailActivity.getIntent(ConsumeRecordActivity.this, bean));
}
}
};
@Override
public void onRefresh() {
mPage = 1;
getConsumeRecordData(1);
}
@Override
public void onLoadMoreRequested() {
if (mPage >= pageCount) {
adapter.loadMoreEnd();
} else {
mPage += 1;
getConsumeRecordData(2);
}
}
}
...@@ -29,6 +29,7 @@ import com.rv.component.dialog.PaymentTypeSelection; ...@@ -29,6 +29,7 @@ import com.rv.component.dialog.PaymentTypeSelection;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.BaseStatusActivity; import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.home.rv.module.ui.login.LoginRvActivity; import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.rv.home.rv.module.ui.main.home.order.OrderListActivity;
import com.rv.member.bean.MemberListBean; import com.rv.member.bean.MemberListBean;
import com.rv.member.adapter.MemberListAdapter; import com.rv.member.adapter.MemberListAdapter;
...@@ -149,7 +150,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -149,7 +150,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
} }
@OnClick({R2.id.iv_avatar, R2.id.tv_login, R2.id.tv_verified, R2.id.iv_title}) @OnClick({R2.id.iv_avatar, R2.id.tv_login, R2.id.tv_verified, R2.id.iv_title, R2.id.tv_consume_record, R2.id.tv_purchase_record, R2.id.tv_free_day})
public void onViewClicked(View view) { public void onViewClicked(View view) {
int id = view.getId(); int id = view.getId();
if (id == R.id.iv_avatar) { if (id == R.id.iv_avatar) {
...@@ -166,6 +167,12 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -166,6 +167,12 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
startActivityForResult(intent, REQUEST_VERIFIED); startActivityForResult(intent, REQUEST_VERIFIED);
} else if (id == R.id.iv_title) { } else if (id == R.id.iv_title) {
finish(); finish();
} else if (id == R.id.tv_consume_record) {
startActivity(new Intent(MemberCenterActivity.this, ConsumeRecordActivity.class));
} else if (id == R.id.tv_purchase_record) {
startActivity(new Intent(MemberCenterActivity.this, PurchaseRecordActivity.class));
} else if (id == R.id.tv_free_day) {
// startActivity(new Intent(MemberCenterActivity.this, FreesDayActivity.class));
} }
} }
...@@ -223,8 +230,8 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -223,8 +230,8 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
} }
tvConsumeRecord.setText(info.getPayCount() + "\n 消费记录"); tvConsumeRecord.setText(info.getPayCount() + "\n 消费记录");
tvPurchaseRecord.setText(info.getRentFreeDays() + "\n 可免费租车 (天)"); tvFreeDay.setText(info.getRentFreeDays() + "\n 可免费租车 (天)");
tvFreeDay.setText(info.getBuyCount() + "\n 购买记录 (次)"); tvPurchaseRecord.setText(info.getBuyCount() + "\n 购买记录 (次)");
} }
if (TextUtils.isEmpty(OkGoUtil.getToken())) { if (TextUtils.isEmpty(OkGoUtil.getToken())) {
......
package com.rv.member.adapter;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean;
import com.rv.member.R;
import java.util.List;
public class ConsumeRecordListAdapter extends BaseQuickAdapter<OrderListBean.DataBeanX.DataBean, BaseViewHolder> {
private ConsumeListener mListener;
public interface ConsumeListener {
void click(OrderListBean.DataBeanX.DataBean bean);
}
public ConsumeRecordListAdapter(List<OrderListBean.DataBeanX.DataBean> dataBeans, ConsumeListener mClickListener) {
super(R.layout.item_consume_record, dataBeans);
this.mListener = mClickListener;
}
@Override
protected void convert(BaseViewHolder helper, final OrderListBean.DataBeanX.DataBean bean) {
ImageView imgCarType = helper.itemView.findViewById(R.id.img_car_type);
GlideManager.getInstance(mContext).loadImage("https://xxtest.upyuns.com/image/admin/2019-06-27/4.png", imgCarType, 160, 160);
if (bean != null) {
if (!TextUtils.isEmpty(bean.getCrtTime())) {
helper.setText(R.id.tv_consume_time, "下单时间: " + bean.getCrtTime());
if (bean.getStatusX() == 4) {
helper.setText(R.id.tv_state, "待出行");
} else if (bean.getStatusX() == 5) {
helper.setText(R.id.tv_state, "出行中");
} else if (bean.getStatusX() == 6) {
helper.setText(R.id.tv_state, "已完成");
}
if (!TextUtils.isEmpty(bean.getName())) {
helper.setText(R.id.tv_car_type, bean.getName());
}
helper.setText(R.id.tv_price, "¥" + bean.getOrderAmount());
if (!TextUtils.isEmpty(bean.getPicture())) {
// ImageView imgCarType = helper.itemView.findViewById(R.id.img_car_type);
GlideManager.getInstance(mContext).loadImage(bean.getPicture(), imgCarType);
}
}
OrderListBean.DataBeanX.DataBean.OrderRentVehicleDetail vehicleDetail = bean.getOrderRentVehicleDetail();
if (vehicleDetail != null) {
helper.setText(R.id.tv_location, vehicleDetail.getStart_city_name() + "-" + vehicleDetail.getEnd_city_name());
helper.setText(R.id.tv_get_info, vehicleDetail.getStart_time() + " " + vehicleDetail.getStart_addr());
helper.setText(R.id.tv_return_info, vehicleDetail.getEnd_time() + " " + vehicleDetail.getEnd_addr());
if (vehicleDetail.getFreeDays() > 0) {
helper.setText(R.id.tv_member_right, "免费" + vehicleDetail.getFreeDays() + "天");
} else if (vehicleDetail.getRebate() > 0) {
helper.setText(R.id.tv_member_right, ((int) vehicleDetail.getRebate() / 10) + "折");
}
}
}
helper.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener != null) {
mListener.click(bean);
}
}
});
}
}
package com.rv.member.bean; package com.rv.member.bean;
import com.google.gson.annotations.SerializedName;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import java.io.Serializable; import java.io.Serializable;
...@@ -7,7 +8,8 @@ import java.io.Serializable; ...@@ -7,7 +8,8 @@ import java.io.Serializable;
/** /**
* 获取用户信息 * 获取用户信息
*/ */
public class UserInfoBean extends BaseBean { public class UserInfoBean extends BaseBean implements Serializable {
private static final long serialVersionUID = -2037885960862296967L;
private UserInfo data; private UserInfo data;
private boolean rel; private boolean rel;
...@@ -67,11 +69,11 @@ public class UserInfoBean extends BaseBean { ...@@ -67,11 +69,11 @@ public class UserInfoBean extends BaseBean {
//备注 //备注
private String remark; private String remark;
// 剩余天数 // 剩余天数
private int rentFreeDays ; private int rentFreeDays;
// 会员消费次数 // 会员消费次数
private int payCount; private int payCount;
// 购买会员册数 // 购买会员册数
private int buyCount ; private int buyCount;
// 会员等级 // 会员等级
private int memberLevel; private int memberLevel;
......
package com.rv.member.fragment;
import android.os.Bundle;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.member.R;
/******
* 总天数明细
*/
public class AllDayDetailFragment extends BaseFragment<CommonPresenter> {
public static AllDayDetailFragment getInstance() {
AllDayDetailFragment fragment = new AllDayDetailFragment();
return fragment;
}
@Override
public int getViewLayout() {
return R.layout.common_refresh;
}
@Override
protected void initView(Bundle savedInstanceState) {
}
@Override
protected void loadData(Bundle savedInstanceState) {
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
}
package com.rv.member.fragment;
import android.os.Bundle;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.member.R;
/*******
* 赠送明细
*/
public class GiveDetailFragment extends BaseFragment<CommonPresenter> {
public static GiveDetailFragment getInstance() {
GiveDetailFragment fragment = new GiveDetailFragment();
return fragment;
}
@Override
public int getViewLayout() {
return R.layout.common_refresh;
}
@Override
protected void initView(Bundle savedInstanceState) {
}
@Override
protected void loadData(Bundle savedInstanceState) {
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
}
package com.rv.member.fragment;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.main.home.order.OrderDetailActivity;
import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean;
import com.rv.member.ConsumeRecordActivity;
import com.rv.member.R;
import com.rv.member.R2;
import com.rv.member.adapter.ConsumeRecordListAdapter;
import com.yuyife.okgo.OkGoUtil;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import butterknife.BindView;
public class UserDetailFragment extends BaseFragment<CommonPresenter> implements SimpleRefreshLayout.OnSimpleRefreshListener, BaseQuickAdapter.RequestLoadMoreListener{
@BindView(R2.id.refresh)
SimpleRefreshLayout simpleRefreshLayout;
@BindView(R2.id.recyclerView)
RecyclerView recyclerView;
private int mPage = 1;
private int pageCount;
private ConsumeRecordListAdapter adapter = null;
private List<OrderListBean.DataBeanX.DataBean> lists = new ArrayList<>();
public static UserDetailFragment getInstance() {
UserDetailFragment fragment = new UserDetailFragment();
return fragment;
}
@Override
public int getViewLayout() {
return R.layout.common_refresh;
}
@Override
protected void initView(Bundle savedInstanceState) {
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
adapter = new ConsumeRecordListAdapter(lists, mClickListener);
adapter.setEmptyView(getEmptyView(recyclerView, -1, getString(R.string.tv_no_consume_data)));
adapter.setOnLoadMoreListener(this, recyclerView);
recyclerView.setAdapter(adapter);
simpleRefreshLayout.setHeaderView(new SimpleRefreshView(getContext()));
simpleRefreshLayout.setOnSimpleRefreshListener(this);
}
@Override
protected void loadData(Bundle savedInstanceState) {
getConsumeRecordData(0);
}
@Override
public void onShowResult(int requestType, BaseBean result) {
if (requestType == 1) { // 下拉刷新数据
lists.clear();
simpleRefreshLayout.onRefreshComplete();
} else if (requestType == 2) { // 上拉加载更多
simpleRefreshLayout.onLoadMoreComplete();
}
OrderListBean listBean = (OrderListBean) result;
if (listBean != null && listBean.getData() != null) {
// pageCount = listBean.getData().getTotalPage();
// lists.addAll(listBean.getData().getData());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
lists.add(new OrderListBean.DataBeanX.DataBean());
adapter.notifyDataSetChanged();
}
}
private void getConsumeRecordData(int position) {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
Map<String, Object> bodyMap = new LinkedHashMap<>();
bodyMap.put("page", mPage);
bodyMap.put("limit", 10);
// bodyMap.put("status", "3");
bodyMap.put("hasMemberRight", 1);
bodyMap.put("type", 1);
bodyMap.put("multiStatus", "4,5,6");
mPresenter.getData(RvFrameConfig.VEHICLE_ORDER, position, ApiConfig.HTTP_URL_ORDER_LIST, OrderListBean.class, bodyMap, headMap, mPage == 1 ? true : false);
}
@Override
public void onRefresh() {
mPage = 1;
getConsumeRecordData(1);
}
@Override
public void onLoadMoreRequested() {
if (mPage >= pageCount) {
adapter.loadMoreEnd();
} else {
mPage += 1;
getConsumeRecordData(2);
}
}
private ConsumeRecordListAdapter.ConsumeListener mClickListener = new ConsumeRecordListAdapter.ConsumeListener() {
@Override
public void click(OrderListBean.DataBeanX.DataBean bean) {
if (bean != null) {
startActivity(OrderDetailActivity.getIntent(getContext(), bean));
}
}
};
}
package com.rv.member.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import com.ruiwenliu.wrapper.util.ScaleUtils;
/***********
* 大概逻辑
* 1 计算出view的宽度
* 2 画圆(左圆和右圆)
* 3 根据进度(progress)计算出黄线起始坐标和结束左边,画黄色
* 4 画灰线
* 5 在左边和右边绘制文字
* 6 提供进度的水平位置
*/
public class FreeDayProgressView extends View {
private int total = 0;
private int progress = 0;
private int width;
private int height;
private Paint cirPaint; // 圆的画笔
private Paint remPaint; // 剩余天数画笔
private float progressWidth = 0;
private int cicleRidius; // 圆半径
private int lineWidth;
private float drawLength;
private DrawListener mDrawListener;
public FreeDayProgressView(Context context) {
super(context);
}
public FreeDayProgressView(Context context, AttributeSet attrs) {
super(context, attrs);
initParameter();
initPaint();
}
/******
*
*/
private void initParameter() {
cicleRidius = ScaleUtils.dip2px(getContext(), 5);
lineWidth = ScaleUtils.dip2px(getContext(), 2);
}
/********
* 初始化画笔
*/
private void initPaint() {
cirPaint = new Paint();
cirPaint.setColor(Color.parseColor("#FFB74B"));
cirPaint.setStrokeWidth(lineWidth);
cirPaint.setAntiAlias(true);
remPaint = new Paint();
remPaint.setColor(Color.parseColor("#cccccc"));
remPaint.setStrokeWidth(lineWidth);
remPaint.setTextSize(ScaleUtils.sp2px(getContext(), 12));
remPaint.setAntiAlias(true);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width = MeasureSpec.getSize(widthMeasureSpec);
height = MeasureSpec.getSize(heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(cicleRidius, cicleRidius, cicleRidius, cirPaint); // 画起始圆
canvas.drawCircle(width - cicleRidius, cicleRidius, cicleRidius, cirPaint); // 画结束的圆
canvas.drawLine(cicleRidius * 2, cicleRidius, drawLength + cicleRidius * 2, cicleRidius, cirPaint);
canvas.drawLine(drawLength + cicleRidius * 2, cicleRidius, width - cicleRidius * 2, cicleRidius, remPaint);
canvas.drawText("0", 0, cicleRidius * 2 + ScaleUtils.dip2px(getContext(), 12), remPaint);
canvas.drawText(total + "", width - remPaint.measureText(total + ""), cicleRidius * 2 + ScaleUtils.dip2px(getContext(), 12), remPaint);
observeDraw();
}
/**********
* 观察绘制流程
*/
private void observeDraw() {
if (drawLength < progressWidth) {
drawLength = drawLength + 5;
drawLength = drawLength > progressWidth ? progressWidth : drawLength;
invalidate();
return;
}
if (mDrawListener != null) {
mDrawListener.drawFinish((int) progressWidth);
}
}
/******
* 设置进度
* @param progress
*/
public void setData(int total, int progress) {
this.total = total > 0 ? total : 0;
this.progress = progress > total ? total : (progress < 0 ? 0 : progress);
if (total != 0) {
progressWidth = progress / (total * 1.0f) * width;
}
invalidate();
}
/******
* 设置进度
* @param progress
*/
public void setData(int total, int progress, DrawListener listener) {
this.mDrawListener = listener;
setData(total, progress);
}
public interface DrawListener {
void drawFinish(int progressWidth);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_EEEEEE"
android:orientation="vertical"
tools:context=".ConsumeRecordActivity">
<include layout="@layout/common_refresh" />
</LinearLayout>
\ No newline at end of file
<?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=".FreesDayActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorMain"
android:gravity="center_horizontal"
android:orientation="vertical">
<com.base.utils.ui.image.round.RoundImageView
android:id="@+id/iv_avatar"
android:layout_width="@dimen/size_60"
android:layout_height="@dimen/size_60"
android:layout_marginTop="@dimen/size_20"
android:src="@drawable/common_icon_avatar_default" />
<TextView
android:id="@+id/tv_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_10"
android:textColor="@color/colorYellow"
android:textSize="@dimen/text_16" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_has_use_day"
android:layout_width="@dimen/size_60"
android:layout_height="@dimen/size_25"
android:layout_gravity="left"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
android:visibility="gone" />
</LinearLayout>
<com.rv.member.view.FreeDayProgressView
android:id="@+id/progress_view"
android:layout_width="match_parent"
android:layout_height="@dimen/size_30"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginRight="@dimen/size_30" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/tv_all_day"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/gray_EEEEEE"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_use_day"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/gray_EEEEEE"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_remain_day"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/gray_EEEEEE"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_48"
android:background="@color/white"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_20"
android:gravity="center_vertical"
android:text="赠送好友免费用车"
android:textColor="@color/color_999" />
<Button
android:id="@+id/btn_give"
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_25"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_yellow"
android:gravity="center"
android:text="赠送"
android:textColor="@color/white"
android:textSize="@dimen/sp_12" />
</RelativeLayout>
<include layout="@layout/common_line" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorWrite"
/>
<include layout="@layout/common_line" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
\ No newline at end of file
<?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"
tools:context=".PurchaseRecordActivity">
<include layout="@layout/common_refresh" />
</LinearLayout>
\ No newline at end of file
<?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:background="@color/gray_EEEEEE"
android:orientation="vertical">
<TextView
android:id="@+id/tv_consume_time"
android:layout_width="match_parent"
android:layout_height="@dimen/size_30"
android:gravity="bottom"
android:paddingLeft="@dimen/dp_10"
android:paddingBottom="@dimen/size_3"
android:text="下单时间"
android:textColor="@color/color_999"
android:textSize="@dimen/sp_12" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_5"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10">
<TextView
android:id="@+id/tv_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="东莞-东莞"
android:textColor="@color/color_999"
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="待出行"
android:textColor="@color/black"
android:textSize="@dimen/sp_12" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginTop="@dimen/size_5"
android:layout_marginRight="@dimen/size_10"
android:layout_marginBottom="7dp"
android:orientation="horizontal">
<FrameLayout
android:layout_width="75dp"
android:layout_height="75dp">
<ImageView
android:id="@+id/img_car_type"
android:layout_width="75dp"
android:layout_height="75dp"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tv_member_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_use_type"
android:paddingLeft="@dimen/size_5"
android:paddingTop="@dimen/size_3"
android:paddingRight="@dimen/size_5"
android:paddingBottom="@dimen/size_3"
android:text="免费3天"
android:textColor="@color/white"
android:textSize="@dimen/sp_12" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_3"
android:orientation="vertical">
<TextView
android:id="@+id/tv_car_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="大通自行式C型房车"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"
android:textStyle="normal" />
<TextView
android:id="@+id/tv_get_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_3"
android:drawableLeft="@drawable/rentingcar_icon_piccar"
android:drawablePadding="@dimen/size_3"
android:text="xxxxxxxx"
android:textColor="@color/color_999"
android:textSize="@dimen/size_10"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_return_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/rentingcar_icon_retcar"
android:drawablePadding="@dimen/size_3"
android:text="xxxxxxxx"
android:textColor="@color/color_999"
android:textSize="@dimen/size_10"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_5"
android:text="¥2000"
android:textColor="#f25b5b"
android:textSize="@dimen/sp_14"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#ffffff</color>
<color name="color_999">#999999</color>
</resources>
...@@ -9,4 +9,12 @@ ...@@ -9,4 +9,12 @@
<string name="tv_please_wait">敬请期待</string> <string name="tv_please_wait">敬请期待</string>
<string name="tv_login">登录</string> <string name="tv_login">登录</string>
<string name="tv_title_consume_record">消费记录</string>
<string name="tv_no_consume_data">无消费记录</string>
<string-array name="free_day_list">
<item>使用明细</item>
<item>赠送明细</item>
<item>总天数明细</item>
</string-array>
</resources> </resources>
...@@ -24,13 +24,7 @@ public class DownloadAppUtils { ...@@ -24,13 +24,7 @@ public class DownloadAppUtils {
String packageName = context.getPackageName(); String packageName = context.getPackageName();
String rootPath = null; String rootPath = null;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡 rootPath = context.getExternalCacheDir().getPath() + File.separator + Environment.DIRECTORY_DOWNLOADS + File.separator ;
rootPath = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DOWNLOADS + File.separator + packageName + File.separator;
} else {
Toast.makeText(context, "没有SD卡", Toast.LENGTH_SHORT).show();
Log.i(TAG, "没有SD卡");
return;
}
send(context, -1, serverVersionName); send(context, -1, serverVersionName);
File file = new File(rootPath); File file = new File(rootPath);
if (!file.exists()) { if (!file.exists()) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal" android:gravity="center"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment