LoginActivity.java 6.62 KB
package com.lijinji.exception;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.InputType;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.lijinji.exception.bean.ActivityIslandBean;
import com.lijinji.exception.bean.LineBean;
import com.lijinji.exception.bean.MenuOperationBean;
import com.lijinji.exception.bean.RGVUserBean;
import com.lijinji.exception.bean.RolesBean;
import com.lijinji.exception.download.DownloadUtils;
import com.lijinji.exception.util.Constant;
import com.lijinji.exception.https.HttpInterface;
import com.lijinji.exception.https.Subscribers.ProgressSubscriber;
import com.lijinji.exception.https.Subscribers.SubscriberOnNextListener;
import com.lijinji.exception.util.SpeechUtil;
import com.lijinji.exception.util.WMSLog;
import com.lijinji.exception.util.WMSUtils;
import com.lijinji.exception.util.DataBaseHelpter;

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

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


public class LoginActivity extends Activity{

    @BindView(com.lijinji.exception.R.id.userEdit)
    EditText userEdit;
    @BindView(com.lijinji.exception.R.id.passwordEdit)
    EditText passwordEdit;
    @BindView(com.lijinji.exception.R.id.loginBtn)
    Button loginBtn;
    @BindView(com.lijinji.exception.R.id.eyeImage)
    ImageView eyeImage;
    @BindView(com.lijinji.exception.R.id.logo)
    ImageView logo;
    private Context mContext;
    private boolean passwordType = false;
    private int times = 0;
    private String userName;
    private String password;

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

    @Override
    protected void onResume() {
        super.onResume();
        times = 0;
        DownloadUtils.as(mContext).startDownload();
    }

    private void initView() {
        String userName = WMSUtils.getData(Constant.LOGIN_NAME);
        if (userName != null) {
            userEdit.setText(userName);
            WMSUtils.requestFocus(passwordEdit);
        }
        passwordEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                rgvLogin();
                return false;
            }
        });
        logo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                times++;
                if(times >= 3) {
                    WMSUtils.startActivity(mContext, NetworkSettingActivity.class);
                }
            }
        });
    }

    @OnClick({com.lijinji.exception.R.id.eyeImage, com.lijinji.exception.R.id.loginBtn})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case com.lijinji.exception.R.id.eyeImage:
                if (passwordType) {
                    passwordEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
                    passwordType = false;
                    eyeImage.setImageResource(com.lijinji.exception.R.mipmap.eye);
                } else {
                    passwordEdit.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
                    passwordType = true;
                    eyeImage.setImageResource(com.lijinji.exception.R.mipmap.eyeoff);
                }
                break;
            case com.lijinji.exception.R.id.loginBtn:
                rgvLogin();
                break;
        }
    }

    private void insertUserInfo(String userName) {
        WMSUtils.saveData(Constant.LOGIN_NAME, userName);
    }

    private void rgvLogin() {
        userName =  userEdit.getText().toString();
        password = passwordEdit.getText().toString();
        HttpInterface.getInsstance().reset();
        HttpInterface.getInsstance().login(new ProgressSubscriber<RGVUserBean>(LoginActivity.this, rgvLoginListener), userName, password);
    }

    SubscriberOnNextListener rgvLoginListener = new SubscriberOnNextListener<RGVUserBean>() {
        @Override
        public void onNext(RGVUserBean rgvUserBean) {
            WMSLog.d("RGVUserBean :" + rgvUserBean);
            SpeechUtil.getInstance(mContext).speech(mContext.getString(R.string.login_success));
            getMenuOperation(rgvUserBean.getRoles());
            insertUserInfo(userEdit.getText().toString());
            getAllLine();
        }

        @Override
        public void onError(String str) {
            passwordEdit.setText("");
        }
    };


    private void getAllLine() {
        HttpInterface.getInsstance().getAllLine(new ProgressSubscriber<ArrayList<LineBean>>(LoginActivity.this, allLineListener));
    }

    SubscriberOnNextListener allLineListener = new SubscriberOnNextListener<ArrayList<LineBean>>() {
        @Override
        public void onNext(ArrayList<LineBean> lineBeans) {
            WMSLog.d("getAllLine:" + lineBeans);
            DataBaseHelpter.deleteAll(LineBean.class);
//            for(LineBean lineBean : lineBeans) {
//                if(lineBean.getType() == 0) {
//                    DataBaseHelpter.insertLine(lineBean);
//                }
//            }
            Intent intent = new Intent();
            intent.setClass(mContext, ScanExceptionActivity.class);
            startActivity(intent);
        }

        @Override
        public void onError(String str) {

        }
    };

    private void getMenuOperation(List<RolesBean> rolesBeans) {
        HttpInterface.getInsstance().getMenuOperation(new ProgressSubscriber<List<MenuOperationBean>>(LoginActivity.this, menuListener), rolesBeans);
    }

    SubscriberOnNextListener menuListener = new SubscriberOnNextListener<List<MenuOperationBean>>() {
        @Override
        public void onNext(List<MenuOperationBean> menuOperationBeans) {
            DataBaseHelpter.deleteAll(MenuOperationBean.class);
            for(MenuOperationBean menuOperationBean : menuOperationBeans) {
                DataBaseHelpter.insertMenuOperationBean(menuOperationBean);
            }
        }

        @Override
        public void onError(String str) {

        }
    };
}