Commit 1f5d4113 authored by jianglx's avatar jianglx

修改会员模块支付跳转到我的待付订单页面多次打开的问题

parent c809a4b8
...@@ -62,10 +62,11 @@ public class RxBus { ...@@ -62,10 +62,11 @@ public class RxBus {
* @return * @return
*/ */
public static <T> Observable<T> tObservable(final Class<T> eventType){ public static <T> Observable<T> tObservable(final Class<T> eventType){
return getInstance().mBus.ofType(eventType).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()); return getInstance().mBus.ofType(eventType).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).unsubscribeOn(Schedulers.newThread());
} }
/** /**
* 根据传递的 eventType 类型返回特定类型(eventType) 的被观察者 * 根据传递的 eventType 类型返回特定类型(eventType) 的被观察者
* @param eventType * @param eventType
......
...@@ -13,7 +13,6 @@ import android.widget.TextView; ...@@ -13,7 +13,6 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.frame.base.bus.LoginSuccessfulEvent; import com.frame.base.bus.LoginSuccessfulEvent;
import com.frame.base.bus.PaymentSuccessfulEvent;
import com.frame.base.bus.RxBus; import com.frame.base.bus.RxBus;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
......
...@@ -66,7 +66,7 @@ import java.util.Map; ...@@ -66,7 +66,7 @@ import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
/** /**
......
...@@ -3,9 +3,13 @@ package com.rv.home.rv.module.ui.main.home.order; ...@@ -3,9 +3,13 @@ package com.rv.home.rv.module.ui.main.home.order;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View; import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
...@@ -43,6 +47,8 @@ import java.util.LinkedHashMap; ...@@ -43,6 +47,8 @@ import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer; import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
...@@ -64,6 +70,10 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -64,6 +70,10 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
private IWXAPI api; private IWXAPI api;
private long effTime = 0; // 失效时间 private long effTime = 0; // 失效时间
private OrderListBean.DataBeanX.DataBean payBean = null;
private int payPosition = -1;
private OrderListActivity.SwitchListener mListener;
public static ForPaymentFragment getInstance(int type) { public static ForPaymentFragment getInstance(int type) {
Bundle bundl = new Bundle(); Bundle bundl = new Bundle();
bundl.putInt("type", type); bundl.putInt("type", type);
...@@ -72,6 +82,12 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -72,6 +82,12 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
return fragment; return fragment;
} }
public static ForPaymentFragment getInstance(int type, OrderListActivity.SwitchListener listener) {
ForPaymentFragment fragment = getInstance(type);
fragment.mListener = listener;
return fragment;
}
@Override @Override
public int getViewLayout() { public int getViewLayout() {
return R.layout.common_refresh; return R.layout.common_refresh;
...@@ -102,19 +118,15 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -102,19 +118,15 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
} }
}); });
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override @Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
payPosition = position;
int id = view.getId(); int id = view.getId();
if (id == R.id.tv_process) { if (id == R.id.tv_process || id == R.id.tv_camp_process || id == R.id.tv_member_pay) {
OrderListBean.DataBeanX.DataBean dataBean = (OrderListBean.DataBeanX.DataBean) adapter.getItem(position); payBean = (OrderListBean.DataBeanX.DataBean) adapter.getItem(position);
payShowSelect(dataBean.getNo(), dataBean.getOrderAmount()); payShowSelect(payBean.getNo(), payBean.getOrderAmount());
} else if (id == R.id.tv_camp_process) {
OrderListBean.DataBeanX.DataBean dataBean = (OrderListBean.DataBeanX.DataBean) adapter.getItem(position);
payShowSelect(dataBean.getNo(), dataBean.getOrderAmount());
} else if (id == R.id.tv_member_pay) {
OrderListBean.DataBeanX.DataBean dataBean = (OrderListBean.DataBeanX.DataBean) adapter.getItem(position);
payShowSelect(dataBean.getNo(), dataBean.getOrderAmount());
} }
} }
}); });
...@@ -125,23 +137,43 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -125,23 +137,43 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
getEffectiveTime(); getEffectiveTime();
} }
private Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (payPosition != -1) {
if (mAdapter != null && !mAdapter.getData().isEmpty()) {
mAdapter.getData().remove(payPosition);
mAdapter.notifyDataSetChanged();
}
}
if (mListener != null) {
mListener.switchTab(3);
}
}
};
private Disposable disposable;
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void initRxBus() { private void initRxBus() {
RxBus.tObservable(CancelOrderEvent.class) disposable = RxBus.tObservable(PaymentSuccessfulEvent.class)
.observeOn(Schedulers.newThread()) .observeOn(Schedulers.io())
.subscribe(new Observer<CancelOrderEvent>(disposable) { .subscribe(new Consumer<PaymentSuccessfulEvent>() {
@Override @Override
public void onNext(CancelOrderEvent event) { public void accept(PaymentSuccessfulEvent payEvent) throws Exception {
onRefresh(); handler.sendEmptyMessage(0);
} }
}); });
} }
@Override @Override
public void onDestroyView() { public void onDestroyView() {
super.onDestroyView(); super.onDestroyView();
handler.removeCallbacksAndMessages(null);
if (disposable != null && !disposable.isDisposed()) {
disposable.dispose();
}
} }
@Override @Override
...@@ -184,7 +216,6 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -184,7 +216,6 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
public void onRefresh() { public void onRefresh() {
mPage = 1; mPage = 1;
orderData(mPage); orderData(mPage);
} }
@Override @Override
......
...@@ -40,15 +40,18 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> { ...@@ -40,15 +40,18 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
private OrderMenuAdapter menuAdapter; private OrderMenuAdapter menuAdapter;
private TabAdapter mAdapter; private TabAdapter mAdapter;
public final static int TYPE_FOR_PAYMENT=0;//待付款 public final static int TYPE_FOR_PAYMENT = 0;//待付款
public final static int TYPE_TO_TRAVEL=1;//待出行 public final static int TYPE_TO_TRAVEL = 1;//待出行
public final static int TYPE_HAVE_TO_TRAVEL=2;//已出行 public final static int TYPE_HAVE_TO_TRAVEL = 2;//已出行
public final static int TYPE_COMPLETED=3;//已完成 public final static int TYPE_COMPLETED = 3;//已完成
public final static int TYPE_ALL_ORDER=4;//全部 public final static int TYPE_ALL_ORDER = 4;//全部
private int menuPosition; private int menuPosition;
public static Intent getIntent(Context context,int position) {
return new Intent(context, OrderListActivity.class).putExtra("position",position); public static Intent getIntent(Context context, int position) {
}; return new Intent(context, OrderListActivity.class).putExtra("position", position);
}
;
@Override @Override
...@@ -58,7 +61,7 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> { ...@@ -58,7 +61,7 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
menuPosition=intent.getIntExtra("position",0); menuPosition = intent.getIntExtra("position", 0);
titleView.setTitle(mActivity.getString(R.string.rv_my_order)); titleView.setTitle(mActivity.getString(R.string.rv_my_order));
initRecyclerView(); initRecyclerView();
initViewpager(); initViewpager();
...@@ -76,18 +79,17 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> { ...@@ -76,18 +79,17 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
} }
/** /**
* 初始化RecyclerView * 初始化RecyclerView
*/ */
private void initRecyclerView(){ private void initRecyclerView() {
recyclerView.setLayoutManager(new GridLayoutManager(mActivity, 5)); recyclerView.setLayoutManager(new GridLayoutManager(mActivity, 5));
menuAdapter=new OrderMenuAdapter(); menuAdapter = new OrderMenuAdapter();
recyclerView.setAdapter(menuAdapter ); recyclerView.setAdapter(menuAdapter);
recyclerView.addItemDecoration(new SpaceItemDecoration(5)); recyclerView.addItemDecoration(new SpaceItemDecoration(5));
GallerySnapHelper snapHelper = new GallerySnapHelper(); GallerySnapHelper snapHelper = new GallerySnapHelper();
snapHelper.attachToRecyclerView(recyclerView); snapHelper.attachToRecyclerView(recyclerView);
List<String> list=new ArrayList<>(); List<String> list = new ArrayList<>();
list.add(mActivity.getString(R.string.rv_order_for_payment)); list.add(mActivity.getString(R.string.rv_order_for_payment));
list.add(mActivity.getString(R.string.rv_order_to_travel)); list.add(mActivity.getString(R.string.rv_order_to_travel));
list.add(mActivity.getString(R.string.rv_order_have_travel)); list.add(mActivity.getString(R.string.rv_order_have_travel));
...@@ -106,8 +108,8 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> { ...@@ -106,8 +108,8 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
/** /**
* 初始化Viewpager * 初始化Viewpager
*/ */
private void initViewpager(){ private void initViewpager() {
mAdapter=new TabAdapter(getSupportFragmentManager(),getListFragment()); mAdapter = new TabAdapter(getSupportFragmentManager(), getListFragment());
mViewPager.setAdapter(mAdapter); mViewPager.setAdapter(mAdapter);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override @Override
...@@ -133,7 +135,7 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> { ...@@ -133,7 +135,7 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
private List<BaseFragment> getListFragment() { private List<BaseFragment> getListFragment() {
List<BaseFragment> list = new ArrayList<>(); List<BaseFragment> list = new ArrayList<>();
list.add(ForPaymentFragment.getInstance(TYPE_FOR_PAYMENT)); list.add(ForPaymentFragment.getInstance(TYPE_FOR_PAYMENT, switchListener));
list.add(ToTravelFragment.getInstance(TYPE_TO_TRAVEL)); list.add(ToTravelFragment.getInstance(TYPE_TO_TRAVEL));
list.add(HaveToTravelFragment.getInstance(TYPE_HAVE_TO_TRAVEL)); list.add(HaveToTravelFragment.getInstance(TYPE_HAVE_TO_TRAVEL));
list.add(CompletedFragment.getInstance(TYPE_COMPLETED)); list.add(CompletedFragment.getInstance(TYPE_COMPLETED));
...@@ -147,4 +149,20 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> { ...@@ -147,4 +149,20 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
mAdapter.getCurrentFragment().onActivityResult(requestCode, resultCode, data); mAdapter.getCurrentFragment().onActivityResult(requestCode, resultCode, data);
} }
public SwitchListener switchListener = new SwitchListener() {
@Override
public void switchTab(int position) {
if (menuAdapter != null && mViewPager != null) {
menuAdapter.setSelectItem(position);
mViewPager.setCurrentItem(position);
}
}
};
/******
* 切换事件
*/
public interface SwitchListener {
void switchTab(int position);
}
} }
...@@ -47,6 +47,7 @@ import java.util.Map; ...@@ -47,6 +47,7 @@ import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer; import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
...@@ -104,9 +105,13 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -104,9 +105,13 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
initRxBus(); initRxBus();
} }
private Disposable disposableSuc;
private Disposable disposableFail;
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void initRxBus() { private void initRxBus() {
RxBus.tObservable(PaymentSuccessfulEvent.class) disposableSuc = RxBus.tObservable(PaymentSuccessfulEvent.class)
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
.subscribe(new Consumer<PaymentSuccessfulEvent>() { .subscribe(new Consumer<PaymentSuccessfulEvent>() {
@Override @Override
...@@ -115,18 +120,31 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -115,18 +120,31 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
} }
}); });
RxBus.tObservable(PaymentFailedEvent.class) disposableFail = RxBus.tObservable(PaymentFailedEvent.class)
.observeOn(Schedulers.newThread()) .observeOn(Schedulers.newThread())
.subscribe(new Consumer<PaymentFailedEvent>() { .subscribe(new Consumer<PaymentFailedEvent>() {
@Override @Override
public void accept(PaymentFailedEvent payEvent) throws Exception { public void accept(PaymentFailedEvent payEvent) throws Exception {
if (mActivity.getClass().equals(MemberCenterActivity.class)) { if (mActivity.getClass().equals(MemberCenterActivity.class)) {
Log.e("xxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxx");
ARouter.getInstance().build(Constance.ACTIVITY_URL_ORDERLIST).navigation(); ARouter.getInstance().build(Constance.ACTIVITY_URL_ORDERLIST).navigation();
finish(); finish();
} }
} }
}); });
Log.e("xxxxxxxxxxxxxx", disposableSuc == disposableFail ? "true" : "false");
}
@Override
public void onDestroy() {
super.onDestroy();
if (disposableSuc != null && !disposableSuc.isDisposed()) {
disposableSuc.dispose();
}
if (disposableFail != null && !disposableFail.isDisposed()) {
disposableFail.dispose();
}
} }
@Override @Override
......
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