package com.wisedu.scc.love.activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import com.wisedu.scc.love.R; import com.wisedu.scc.love.activity.base.BaseExitActivity; import com.wisedu.scc.love.application.LoveApplication; import com.wisedu.scc.love.sqlite.ModelFactory; import com.wisedu.scc.love.sqlite.SqlBuilder; import com.wisedu.scc.love.sqlite.SqliteHelper; import com.wisedu.scc.love.sqlite.model.Login; import com.wisedu.scc.love.sqlite.model.User; import com.wisedu.scc.love.utils.CommonUtil; import com.wisedu.scc.love.utils.DecodeUtil; import org.androidannotations.annotations.AfterTextChange; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.ViewById; import java.io.File; import java.util.List; /** * Created by JZ on 2015/3/9. */ @EActivity(R.layout.activity_login) public class LoginActivity extends BaseExitActivity { @Bean public SqliteHelper sqliteHelper; @ViewById public ImageView avatar; @ViewById public EditText phoneEdit; @ViewById public EditText pswEdit; @ViewById public Button loginButton; @ViewById public Button registerButton; @Click(R.id.loginButton) public void doLogin(){ String phone = phoneEdit.getText().toString(); String psw = pswEdit.getText().toString(); if(CommonUtil.isEmpty(phone)|| CommonUtil.isEmpty(psw)){ CommonUtil.shortToast(LoginActivity.this, "请填写完整再登录!"); } else if(!checkUser(phone, psw)){ CommonUtil.shortToast(LoginActivity.this, "用户不存在或密码错误!"); } else { CommonUtil.shortToast(LoginActivity.this, "登录成功!"); /*登录成功处理*/ dealLoginSuccess(phone, psw); startActivity(new Intent(LoginActivity.this, MainActivity_.class)); LoginActivity.this.finish(); } } @Click(R.id.registerButton) public void doRegister(){ startActivity(new Intent(LoginActivity.this, RegisterActivity_.class)); } @AfterTextChange(R.id.phoneEdit) public void dealPhoneChange(){ String phone = phoneEdit.getText().toString(); // 取出用户 List<User> users = sqliteHelper.get(ModelFactory.getUserTableName(), null, SqlBuilder.geneWhere("=","phone"), new String[]{phone} , null, null, null, null); if(null!=users&&users.size()>0) { String avatarPath = users.get(0).getAvatar(); if(!CommonUtil.isEmpty(avatarPath)) { File file = new File(avatarPath); Uri uri = Uri.fromFile(file); Bitmap bitmap = DecodeUtil.decode(getApplicationContext(), uri, 400, 400); Drawable drawable = new BitmapDrawable(getResources(), bitmap); avatar.setImageDrawable(drawable); } } else { avatar.setImageResource(R.drawable.avatar_default); } } @AfterViews public void doAfterViews(){ dealLogin(); } /** * 检查用户是否存在 * @param phone * @param psw * @return true 存在,false 不存在 */ private boolean checkUser(String phone, String psw) { return sqliteHelper.check(ModelFactory.getUserTableName(), SqlBuilder.geneWhere("=","phone", "psw"), new String[]{phone, psw}); } /** * 选出最近登陆的第一个账户 */ private void dealLogin() { String avatarPath = "", phone = ""; // 判断是否从登录页面跳转并有附带数据 if(CommonUtil.isEmpty(getIntent().getStringExtra("curAvatar"))){ // 判断登录表中是否有已登录信息 List<Login> logins = sqliteHelper.get(ModelFactory.getLoginTableName(), new String[]{"userId", "avatar", "phone"}, null, null, null, null, " lastTime desc ", null); if(null!=logins&&logins.size()>0) { Login login = logins.get(0); avatarPath = login.getAvatar(); phone = login.getPhone(); } } else { avatarPath = getIntent().getStringExtra("curAvatar"); phone = getIntent().getStringExtra("curPhone"); avatarPath = CommonUtil.isEmpty(avatarPath) ? "" : avatarPath; phone = CommonUtil.isEmpty(phone) ? "" : phone; } // 设置头像、手机 phoneEdit.setText(phone); if(!CommonUtil.isEmpty(avatarPath)) { File file = new File(avatarPath); Uri uri = Uri.fromFile(file); Bitmap bitmap = DecodeUtil.decode(getApplicationContext(), uri, 400, 400); Drawable drawable = new BitmapDrawable(getResources(), bitmap); avatar.setImageDrawable(drawable); } } /** * 登录成功处理 */ private void dealLoginSuccess(String phone, String psw){ String userId = "", avatar = ""; // 缓存当前用户信息 List<User> users = sqliteHelper.get(ModelFactory.getUserTableName(), new String[]{"id", "avatar"}, SqlBuilder.geneWhere("=","phone", "psw"), new String[]{phone, psw} , null, null, null, null); if(null!=users&&users.size()>0){ User user = users.get(0); if(null!=user) { userId = user.getId(); avatar = user.getAvatar(); LoveApplication.getInstance().setUserId(userId); LoveApplication.getInstance().setAvatar(avatar); } } LoveApplication.getInstance().setPhone(phone); // 缓存登录信息 sqliteHelper.insert(ModelFactory.getLoginTableName(), new Login(userId, avatar, phone, psw, "on", CommonUtil.getCurrentTime())); } }