package com.tinyscreen.quteWatcher;
import java.io.File;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Html;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;
import com.tinyscreen.mail.MailInfoUtil;
import com.tinyscreen.mail.MailSenderInfo;
import com.tinyscreen.mail.SimpleMailSender;
import com.tinyscreen.quteWatcher.Data.FileData;
/**
* qute debug监控器
* 测试团队安装该监控器,在测试时如果发现crash问题,监控器会记录所有log数据,便于开发定位问题
* @author sandroCheng
*
*/
public class QuteWatcherActivity extends Activity {
private TextView tv ;
private static final int SEND_MAIL = 0;
/**
* 进度条
*/
private ProgressDialog mSpinner;
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.layout_debug);
tv = (TextView) findViewById(R.id.debugLine);
super.onCreate(savedInstanceState);
}
@Override
protected void onResume(){
super.onResume();
String str = FileData.getLogStr();
tv.setText(Html.fromHtml(str));
// android.util.Log.i("QuteWatcherActivity", "str : " + str);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.layout.menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.sendEmail:
sendTextMail();
break;
case R.id.cleanData:
cleanData();
break;
case R.id.refesh:
String str = FileData.getLogStr();
tv.setText(Html.fromHtml(str));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void cleanData() {
FileData.cleanData();
tv.setText(Html.fromHtml(FileData.getLogStr()));
}
/**
* 发送邮件
*/
private void sendTextMail(){
mSpinner = new ProgressDialog(this);
mSpinner.requestWindowFeature(Window.FEATURE_NO_TITLE);
mSpinner.setMessage("邮件发送中");
mSpinner.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
return false;
}
});
mSpinner.show();
new Thread() {
@Override
public void run() {
FileData.saveFile();
File[] files = FileData.getZipFiles();
MailSenderInfo mailInfo = MailInfoUtil.getMailInfo(QuteWatcherActivity.this);
mailInfo.setContent(FileData.getFileData());
boolean result = SimpleMailSender.sendHtmlMail(mailInfo,files);// 发送html格式
Message message = mHandler.obtainMessage(SEND_MAIL,result);
mHandler.sendMessage(message);
}
}.start();
}
protected Handler mHandler = new Handler() {
public void handleMessage(Message msg){
switch (msg.what){
case SEND_MAIL:
String resultStr = "邮件发送成功";
boolean result = (Boolean)msg.obj;
if(result){
cleanData();
}else{
resultStr = "邮件发送失败";
}
Toast.makeText(QuteWatcherActivity.this, resultStr, Toast.LENGTH_LONG).show();
if (mSpinner != null) {
try {
mSpinner.dismiss();
mSpinner.cancel();
} catch (Exception e) {
}
mSpinner = null;
}
break;
}
}
};
}