package com.cheikh.lazywaimai.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import butterknife.Bind;
import butterknife.OnClick;
import com.cheikh.lazywaimai.R;
import com.cheikh.lazywaimai.base.BaseActivity;
import com.cheikh.lazywaimai.base.BaseController;
import com.cheikh.lazywaimai.base.BaseViewHolder;
import com.cheikh.lazywaimai.context.AppContext;
import com.cheikh.lazywaimai.controller.OrderController;
import com.cheikh.lazywaimai.model.bean.Order;
import com.cheikh.lazywaimai.model.bean.PaymentPlatform;
import com.cheikh.lazywaimai.model.bean.ResponseError;
import com.cheikh.lazywaimai.ui.adapter.PlatformListAdapter;
import com.cheikh.lazywaimai.util.ContentView;
import com.cheikh.lazywaimai.ui.Display;
import com.cheikh.lazywaimai.util.ToastUtil;
import com.cheikh.lazywaimai.util.ViewEventListener;
import java.util.List;
/**
* author: cheikh.wang on 17/1/5
* email: wanghonghi@126.com
*/
@ContentView(R.layout.activity_payment)
public class PaymentActivity extends BaseActivity<OrderController.OrderUiCallbacks>
implements OrderController.OrderPaymentUi {
@Bind(R.id.recycler_view)
RecyclerView mRecyclerView;
@Bind(R.id.btn_payment)
Button mBtnPayment;
private PlatformListAdapter mAdapter;
private Order mOrder;
@Override
protected BaseController getController() {
return AppContext.getContext().getMainController().getOrderController();
}
@Override
protected void handleIntent(Intent intent, Display display) {
mOrder = (Order) intent.getSerializableExtra(Display.PARAM_OBJ);
}
@Override
protected void initializeViews(Bundle savedInstanceState) {
mAdapter = new PlatformListAdapter();
mAdapter.setSelectedPosition(0);
mAdapter.setViewEventListener(new ViewEventListener<PaymentPlatform>() {
@Override
public void onViewEvent(int actionId, PaymentPlatform item, int position, View view) {
mAdapter.setSelectedPosition(position);
}
});
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
}
@Override
public String getRequestParameter() {
return mOrder.getId();
}
@Override
public void setPlatforms(List<PaymentPlatform> platforms) {
mAdapter.setItems(platforms);
}
@Override
public void onFinishPayment(Order order) {
cancelLoading();
ToastUtil.showToast(R.string.toast_success_online_payment);
getCallbacks().showOrderDetail(order);
}
@Override
public void onResponseError(ResponseError error) {
cancelLoading();
mBtnPayment.setEnabled(true);
ToastUtil.showToast(error.getMessage());
}
@OnClick({R.id.btn_payment})
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_payment:
payment();
break;
}
}
/**
* 执行付款操作
*/
private void payment() {
// 获取选择的支付平台
int selectedPosition = mAdapter.getSelectedPosition();
PaymentPlatform platform = mAdapter.getItem(selectedPosition);
showLoading(R.string.label_being_simulate_payment);
mBtnPayment.setEnabled(false);
getCallbacks().payment(mOrder, platform.getId());
}
@Override
public void onBackPressed() {
Display display = getDisplay();
if (display != null) {
display.showOrderDetail(mOrder);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Display display = getDisplay();
if (display != null) {
display.showOrderDetail(mOrder);
}
return true;
}
return super.onOptionsItemSelected(item);
}
}