LoginActivity.java 4.08 KB
package com.huaheng.wms;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;

import com.huaheng.wms.https.HttpInterface;
import com.huaheng.wms.https.Subscribers.ProgressSubscriber;
import com.huaheng.wms.https.Subscribers.SubscriberOnNextListener;
import com.huaheng.wms.login.UserBean;
import com.huaheng.wms.login.UserInfo;
import com.huaheng.wms.login.WareHouseActivity;
import com.huaheng.wms.login.WareHouseBean;
import com.huaheng.wms.util.WMSUtils;
import com.huaheng.wms.wmsgreendao.DaoManager;

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

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;


public class LoginActivity extends Activity {

    @BindView(R.id.userEdit)
    EditText userEdit;
    @BindView(R.id.passwordEdit)
    EditText passwordEdit;
    @BindView(R.id.loginBtn)
    Button loginBtn;
    private Context mContext;
    private List<UserInfo> userInfos;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.bind(this);
        mContext = this;
        initView();
    }



    @OnClick(R.id.loginBtn)
    public void onViewClicked() {
        login();
    }

    private void login() {
        String userName = userEdit.getText().toString();
        String password = passwordEdit.getText().toString();
        if (TextUtils.isEmpty(userName)) {
            WMSUtils.showShort(this, this.getString(R.string.enter_username));
            WMSUtils.requestFocus(userEdit);
            return;
        }

        if (TextUtils.isEmpty(password)) {
            WMSUtils.showShort(this, this.getString(R.string.enter_password));
            WMSUtils.requestFocus(passwordEdit);
            return;
        }


        HttpInterface.getInsstance().login(new ProgressSubscriber<ArrayList<UserBean>>(this, loginListener), userName, password);
    }

    private boolean insertUserInfo(UserInfo userInfo){
        boolean flag = false;
        if(userInfos != null && userInfos.size() > 0) {
            deleteUserInfo(userInfos.get(0));
        }
        try {
            flag = DaoManager.getInstance(this).getDaoSession().getUserInfoDao().insert(userInfo) == -1 ? false : true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        WMSLog.d("insertUserInfo:" + flag + "-->" + userInfo.toString());
        return flag;
    }

    private void initView() {
        userInfos = queryAllUserInfo();
        if(userInfos != null && userInfos.size() > 0) {
            WMSLog.d("userInfos:" + userInfos.get(userInfos.size() - 1).toString() + "length:" + userInfos.size());
            UserInfo userInfo = userInfos.get(userInfos.size() - 1);
            userEdit.setText(userInfo.getName());
        }
    }

    private void deleteUserInfo(UserInfo userInfo) {
        DaoManager.getInstance(this).getDaoSession().delete(userInfo);
    }
    /**
     * 查询所有记录
     * @return
     */
    public List<UserInfo> queryAllUserInfo(){
        return DaoManager.getInstance(this).getDaoSession().loadAll(UserInfo.class);
    }


    SubscriberOnNextListener loginListener = new SubscriberOnNextListener<ArrayList<UserBean>>() {
        @Override
        public void onNext(ArrayList<UserBean> userBean) {
            WMSLog.d("loginListener  userBean:" + userBean);
            UserInfo info = new UserInfo();
            info.set_id(0);
            info.setName(userEdit.getText().toString());
            info.setPassword(passwordEdit.getText().toString());
            insertUserInfo(info);
            Intent intent = new Intent();
            intent.setClass(mContext, WareHouseActivity.class);
            Bundle bundle = new Bundle();
            bundle.putParcelableArrayList("wareHouse", userBean);// 序列化
            intent.putExtras(bundle);// 发送数据
            startActivity(intent);//

        }
    };

}