ChooseStationActivity.java 6.15 KB
package com.huaheng.robot.login;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.huaheng.robot.MainActivity;
import com.huaheng.robot.R;
import com.huaheng.robot.adapter.ChooseAdapter;
import com.huaheng.robot.adapter.ChooseBean;
import com.huaheng.robot.adapter.MenuBean;
import com.huaheng.robot.adapter.RecyclerViewAdapter;
import com.huaheng.robot.https.HttpInterface;
import com.huaheng.robot.https.Subscribers.ProgressSubscriber;
import com.huaheng.robot.https.Subscribers.SubscriberOnNextListener;
import com.huaheng.robot.util.CommonActivity;
import com.huaheng.robot.util.Constant;
import com.huaheng.robot.util.DataBaseHelpter;
import com.huaheng.robot.util.MenuConstant;
import com.huaheng.robot.util.WMSLog;
import com.huaheng.robot.util.WMSUtils;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class ChooseStationActivity extends CommonActivity {

    @BindView(R.id.line_list)
    ListView lineList;
    @BindView(R.id.chooseRecycleView)
    RecyclerView recyclerView;
    @BindView(R.id.stationLayout)
    FrameLayout stationLayout;
    private Context mContext;
    private RecyclerViewAdapter adapter;
    private GridLayoutManager layoutManager;
    private ArrayList<MenuBean> menuBeans;
    private ArrayList<UserBean> mlist;
    private ChooseAdapter mAdapter;
    private ArrayList<ChooseBean> chooseBeanList;
    private int lineNumber = 0;

    @Override
    protected void initActivityOnCreate(Bundle saveInstance) {
        super.initActivityOnCreate(saveInstance);
        setContentView(R.layout.activity_choose_station);
        ButterKnife.bind(this);
        this.setTitle(this.getString(R.string.choose_line));
        mContext = this;
        Bundle bundle = getIntent().getExtras();
        mlist = bundle.getParcelableArrayList("userBean");
        initView();
    }

    private void initList() {
        chooseBeanList = parseList(mlist);
        mAdapter = new ChooseAdapter(this);
        lineList.setAdapter(mAdapter);
        lineList.setOnItemClickListener(listener);
        mAdapter.setList(chooseBeanList);
    }

    private ArrayList<ChooseBean> parseList(ArrayList<UserBean> list) {
        ArrayList<ChooseBean> chooseBeans = new ArrayList<>();
        for(int i=1; i<5; i++) {
            chooseBeans.add(new ChooseBean(this.getResources().getDrawable(R.mipmap.cangku), this.getResources().getString(R.string.line) + i));
        }
        return chooseBeans;
    }

    AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            lineNumber = position + 1;
            String[] list = mContext.getResources().getStringArray(R.array.line_number);
            WMSUtils.saveData(Constant.CURREN_LINE_NUMBER, String.valueOf(lineNumber));
            WMSUtils.saveData(Constant.CURREN_LINE_NAME, list[position]);
            setTitle(mContext.getString(R.string.choose_station));
            getStation();
        }
    };

     private void initView() {
        initList();
        adapter = new RecyclerViewAdapter(mContext);
        layoutManager = new GridLayoutManager(mContext, 3);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(adapter);
        adapter.setOnItemClickListener(stationClickListener);
        getModules();
    }

    private void getModules() {
        String warehouseCode = mlist.get(0).getCode();
        int warehouseId = mlist.get(0).getId();
        WMSUtils.saveData(Constant.CURREN_WAREHOUSE, mlist.get(0).getName());
        HttpInterface.getInsstance().getModules(new ProgressSubscriber<ArrayList<ModulesBean>>(ChooseStationActivity.this, modulesListener), warehouseCode, warehouseId);
    }

    SubscriberOnNextListener modulesListener = new SubscriberOnNextListener<ArrayList<ModulesBean>>() {
        @Override
        public void onNext(ArrayList<ModulesBean> modulesBeans) {
            if(modulesBeans != null) {
                DataBaseHelpter.deleteAllModules();
                for(int i=0; i<modulesBeans.size(); i++) {
                    ModulesBean module = modulesBeans.get(i);
                    module.set_id(i);
                    DataBaseHelpter.insertModule(module);
                }
            }
        }

        @Override
        public void onError(String str) {

        }
    };

    private ArrayList<MenuBean> buildMenuBeans(ArrayList<WorkStation> workStations){
        ArrayList<MenuBean> menuBeanList = new ArrayList<>();
        for(WorkStation workStation : workStations) {
            menuBeanList.add(new MenuBean(mContext.getResources().getDrawable(R.mipmap.station), workStation.getName()));
        }
        return menuBeanList;
    }

    private void getStation() {
        HttpInterface.getInsstance().getAllWorkStation(new ProgressSubscriber<ArrayList<WorkStation>>(mContext, stationListener));
    }

    SubscriberOnNextListener stationListener = new SubscriberOnNextListener<ArrayList<WorkStation>>() {
        @Override
        public void onNext(ArrayList<WorkStation> workStations) {
            menuBeans = buildMenuBeans(workStations);
            if(menuBeans != null) {
                adapter.setList(menuBeans);
            }
            lineList.setVisibility(View.GONE);
            stationLayout.setVisibility(View.VISIBLE);
        }

        @Override
        public void onError(String str) {

        }
    };

    RecyclerViewAdapter.OnRecyclerViewItemClickListener stationClickListener = new RecyclerViewAdapter.OnRecyclerViewItemClickListener() {
        @Override
        public void onItemClick(int position) {
            WMSUtils.saveData(Constant.CURREN_STATION, menuBeans.get(position).getName());
            WMSUtils.startActivity(mContext, MainActivity.class);
        }
    };

}