package com.wyp.materialqqlite.ui; import com.material.widget.CircularProgress; import com.material.widget.FloatingEditText; import com.wyp.materialqqlite.AbsActivity; import com.wyp.materialqqlite.AppData; import com.wyp.materialqqlite.LoginAccountList; import com.wyp.materialqqlite.R; import com.wyp.materialqqlite.qqclient.QQClient; import com.wyp.materialqqlite.qqclient.protocol.protocoldata.QQCallBackMsg; import com.wyp.materialqqlite.qqclient.protocol.protocoldata.QQLoginResultCode; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewCompat; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.Toast; public class VerifyCodeActivity extends AbsActivity{ //private TextView m_txtCancel; //private Button m_btnFinish; private ImageView m_imgVC; private CircularProgress m_prgLogining; private FloatingEditText m_edtVC; private QQClient m_QQClient; private SharedPreferences sp; private int color_theme; private Handler m_Handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); m_prgLogining.setVisibility(View.GONE); switch (msg.what) { case QQCallBackMsg.LOGIN_RESULT: if (msg.arg1 == QQLoginResultCode.SUCCESS) { // 登录成功 LoginAccountList accountList = AppData.getAppData().getLoginAccountList(); int nPos = accountList.add(m_QQClient.getQQNum(), m_QQClient.getQQPwd(), m_QQClient.getLoginStatus(), true, true); accountList.setLastLoginUser(nPos); String strAppPath = AppData.getAppData().getAppPath(); String strFileName = strAppPath + "LoginAccountList.dat"; accountList.saveFile(strFileName); m_QQClient.setNullCallBackHandler(m_Handler); startActivity(new Intent(VerifyCodeActivity.this, MainActivity.class)); finish(); } else if (msg.arg1 == QQLoginResultCode.FAILED) { // 登录失败 Toast.makeText(getBaseContext(), R.string.login_failed, Toast.LENGTH_LONG).show(); m_QQClient.setNullCallBackHandler(m_Handler); startActivity(new Intent(VerifyCodeActivity.this, LoginActivity.class)); finish(); } else if (msg.arg1 == QQLoginResultCode.PASSWORD_ERROR) { // 密码错误 Toast.makeText(getBaseContext(), R.string.id_or_pwd_err, Toast.LENGTH_LONG).show(); m_QQClient.setNullCallBackHandler(m_Handler); startActivity(new Intent(VerifyCodeActivity.this, LoginActivity.class)); finish(); } else if (msg.arg1 == QQLoginResultCode.NEED_VERIFY_CODE) { // 需要输入验证码 byte[] bytData = m_QQClient.getVerifyCodePic(); Bitmap bmp = BitmapFactory.decodeByteArray(bytData, 0, bytData.length); m_imgVC.setImageBitmap(bmp); } else if (msg.arg1 == QQLoginResultCode.VERIFY_CODE_ERROR) { // 验证码错误 Toast.makeText(getBaseContext(), R.string.vc_err, Toast.LENGTH_LONG).show(); m_edtVC.setText(""); byte[] bytData = m_QQClient.getVerifyCodePic(); Bitmap bmp = BitmapFactory.decodeByteArray(bytData, 0, bytData.length); m_imgVC.setImageBitmap(bmp); } default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_verifycode); } @Override public void setUpViews() { ViewCompat.setElevation(mToolbar, getResources().getDimension(R.dimen.toolbar_elevation)); sp = getSharedPreferences("theme", MODE_PRIVATE); color_theme = sp.getInt("color", -12627531); m_QQClient = AppData.getAppData().getQQClient(); m_QQClient.setCallBackHandler(m_Handler); // m_txtCancel = (TextView)findViewById(R.id.vc_txtCancel); // m_btnFinish = (Button)findViewById(R.id.vc_btnFinish); m_imgVC = (ImageView)findViewById(R.id.vc_imgVC); m_prgLogining = (CircularProgress)findViewById(R.id.vc_prgLogining); m_edtVC = (FloatingEditText)findViewById(R.id.vc_edtVC); m_edtVC.setNormalColor(color_theme); m_edtVC.setHighlightedColor(color_theme); m_prgLogining.setColor(color_theme); // m_txtCancel.setOnClickListener(this); // m_btnFinish.setOnClickListener(this); // m_edtVC.addTextChangedListener(this); byte[] bytData = m_QQClient.getVerifyCodePic(); Bitmap bmp = BitmapFactory.decodeByteArray(bytData, 0, bytData.length); m_imgVC.setImageBitmap(bmp); mToolbar.setNavigationIcon(R.drawable.qqicon); mToolbar.inflateMenu(R.menu.menu_ok); setSupportActionBar(mToolbar); mToolbar.setOnMenuItemClickListener(onMenuItemClick); mToolbar.setNavigationOnClickListener(new OnClickListener() { @Override public void onClick(View v) { m_QQClient.setCallBackHandler(null); startActivity(new Intent(VerifyCodeActivity.this, LoginActivity.class)); finish(); } }); // Navigation Icon 要設定在 setSupoortActionBar 才有作用 // 否則會出現 back button } private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.ok: String strVC = m_edtVC.getText().toString(); if (strVC.length() < 4) return false; m_prgLogining.setVisibility(View.VISIBLE); m_QQClient.setVerifyCode(strVC); m_QQClient.login(); break; } return true; } }; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_ok, menu); return true; } }