MessageAdapter.java 5.62 KB
package com.naji.xiaotao.tangshi.adapter;

import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.naji.xiaotao.R;
import com.naji.xiaotao.cookbook.adapter.RvAdapter;
import com.naji.xiaotao.cookbook.listener.RvListener;
import com.naji.xiaotao.cookbook.viewholder.RvHolder;
import com.naji.xiaotao.http.RetrofitClient;
import com.naji.xiaotao.message.entity.Message;
import com.naji.xiaotao.message.entity.Message_Table;
import com.naji.xiaotao.tangshi.service.TangshiApiService;
import com.naji.xiaotao.util.TimeUtil;
import com.raizlabs.android.dbflow.sql.language.SQLite;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import me.goldze.mvvmhabit.bus.RxBus;
import me.goldze.mvvmhabit.http.BaseResponse;
import me.goldze.mvvmhabit.utils.RxUtils;
import retrofit2.Retrofit;

public class MessageAdapter extends RvAdapter<Message> {

    private onOperationClickListener onOperationClickListener;
    private boolean isWaitingSure;

    public MessageAdapter(Context context, List<Message> list, RvListener rvListener,boolean isWaitingSure){
        super(context,list,rvListener);
        this.isWaitingSure=isWaitingSure;
    }

    public interface onOperationClickListener{
        void onOperationClick(int type,String message_id);
    }

    public void setOnOperationClickListener(MessageAdapter.onOperationClickListener onOperationClickListener) {
        this.onOperationClickListener = onOperationClickListener;
    }

    @Override
    protected int getLayoutId(int viewType) {
        return R.layout.layout_message_item;
    }

    @Override
    protected RvHolder getHolder(View view, int viewType) {
        return new MessageHolder(view,viewType,null);
    }

    private class MessageHolder extends RvHolder<Message>{

        private ImageView msgBell;
        private TextView msgTitle;
        private TextView msgTime;
        private LinearLayout msgOperation;
        private TextView operationTv;


        public MessageHolder(View itemView, int type, RvListener listener) {
            super(itemView, type, listener);
            msgTitle=itemView.findViewById(R.id.message_title);
            msgTime=itemView.findViewById(R.id.message_time);
            msgOperation=itemView.findViewById(R.id.message_operation);
            msgBell=itemView.findViewById(R.id.message_bell);
            operationTv=itemView.findViewById(R.id.operation_text);
        }

        @Override
        public void bindHolder(final Message messageEntity, final int position) {
            switch (messageEntity.getMessage_type()){
                case "1"://呼叫服务
                    msgTitle.setText("呼叫服务");
                    msgBell.setImageDrawable(mContext.getResources().getDrawable(R.mipmap.bell_yellow));
                    operationTv.setText("我知道了");
                    break;
                case "2"://加减菜,审核
                    if(isWaitingSure){
                        msgTitle.setText("顾客已下单");
                    }else{
                        msgTitle.setText("顾客已加菜");
                    }
                    msgBell.setImageDrawable(mContext.getResources().getDrawable(R.mipmap.bell_red));
                    operationTv.setText("立即审核");
                    break;
                case "3"://开发票
                    msgTitle.setText("需要开发票");
                    msgBell.setImageDrawable(mContext.getResources().getDrawable(R.mipmap.bell_green));
                    operationTv.setText("立即处理");
                    break;
            }
            msgTime.setText(TimeUtil.DateformatTime(new Date(messageEntity.getMessage_time()*1000)));
            msgOperation.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(onOperationClickListener!=null){
                        onOperationClickListener.onOperationClick(Integer.parseInt(messageEntity.getMessage_type()),messageEntity.getMessage_id());
                    }
//                    list.remove(position);
//                    notifyItemRemoved(position);
//                    RxBus.getDefault().post("refresh");
                    if(!messageEntity.getMessage_type().equals("2")){
                        getAppHandle(messageEntity.getMessage_id());
                    }
                }
            });
        }
    }

    //告诉后台前端消息已处理
    private void getAppHandle(String messageid){
        Map<String,String> params=new HashMap<>();
        params.put("message_id",messageid);
        RetrofitClient.getInstance().create(TangshiApiService.class)
                .getAppHandle(params)
                .compose(RxUtils.schedulersTransformer())
                .compose(RxUtils.exceptionTransformer())
                .doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Exception {

                    }
                })
                .subscribe(new Consumer<BaseResponse<String>>() {
                    @Override
                    public void accept(BaseResponse<String> stringBaseResponse) throws Exception {
                        if(stringBaseResponse.getRet()==200){}
                    }
                }, new Consumer<Throwable>() {
                    @Override
                    public void accept(Throwable throwable) throws Exception {

                    }
                });
    }
}