package com.ztspeech.simutalk2.dictionary.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.text.ClipboardManager;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.ztspeech.recognizer.OnEngineListener;
import com.ztspeech.recognizerDialog.UnisayRecognizerDialog;
import com.ztspeech.simutalk2.R;
import com.ztspeech.simutalk2.data.TextPlayer;
import com.ztspeech.simutalk2.data.UserInfo;
import com.ztspeech.simutalk2.dictionary.adapter.UserInputLvAdapter;
import com.ztspeech.simutalk2.dictionary.adapter.WordsLvAdapter;
import com.ztspeech.simutalk2.dictionary.adapter.WordsSimpleLvAdapter;
import com.ztspeech.simutalk2.dictionary.dom.SQLiteDom;
import com.ztspeech.simutalk2.dictionary.entity.Words;
import com.ztspeech.simutalk2.dictionary.util.LogInfo;
import com.ztspeech.simutalk2.dictionary.util.PublicArithmetic;
import com.ztspeech.simutalk2.dictionary.util.Util;
import com.ztspeech.simutalk2.qa.MainActivity;
import com.ztspeech.simutalk2.qa.view.InterpretView;
import com.ztspeech.simutalk2.weibo.EditContent;
import com.ztspeech.simutalk2.weibo.IRenren;
import com.ztspeech.simutalk2.weibo.ISina;
import com.ztspeech.simutalk2.weibo.ITencent;
import com.ztspeech.simutalk2.weibo.Ikaixin;
public class ResultActivity extends BaseActivity implements OnClickListener, TextWatcher, OnItemClickListener,
OnEngineListener, OnTouchListener {
private int page;
private ListView lvInputRecord;
private ListView lvSimple;
private ListView lvWords;
private EditText edtWord;
private Button btnSure;
private List listSimple = null;
private List listInputRecord = null;
private List listWords = null;
private Integer childId;
private Integer categroyId;
private String strWords;
private Intent fromWhere;
private SQLiteDom sqliteDom = null;
private TextView tvNoResult;
private WordsLvAdapter wLv;
private UserInputLvAdapter ulv;
private WordsSimpleLvAdapter wslv;
private UserInfo mUser = UserInfo.getInstanse();
private UnisayRecognizerDialog mDialog = null;
private Button btnLuyin = null;
private Integer chOrEn = 0;
private String from;
// =========================================================
// private PopupWindow mRecognizerWindow = null;
private InterpretView mInterpretView;
private PopupWindow popMore;
private GridView gdv;
private Handler mHandlerKeyboard = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Util.ON_RECORD_END:
mInterpretView.clearNoVoiceAnim();
mInterpretView.clearViewAnim();
mInterpretView.startViewAnim();
mInterpretView.setBtnRecordEnable(false);
break;
case Util.ON_RECORD_BEGIN:
mInterpretView.clearViewAnim();
mInterpretView.startNoVoiceAnim();
// btnDispProcess(true);
mInterpretView.setBtnRecordEnable(true);
break;
case Util.ON_RECORDER_ERROR:
mInterpretView.clearViewAnim();
mInterpretView.setBtnRecordEnable(true);
break;
case Util.ON_WAIT_BEGIN:
mInterpretView.setBtnRecordEnable(false);
mInterpretView.clearViewAnim();
mInterpretView.startViewAnim();
break;
case Util.ON_WAIT_END:
mInterpretView.setBtnRecordEnable(true);
// btnDispProcess(false);
mInterpretView.clearViewAnim();
break;
case Util.ON_RECOGNIZER_ERROR:
mInterpretView.clearViewAnim();
mInterpretView.setBtnRecordEnable(true);
mInterpretView.setTextStatusDisp(View.VISIBLE);
mDialog.close();
mInterpretView.setTextStatus((Integer) msg.obj);
break;
case Util.ON_VOICE_VALUE:
mInterpretView.clearViewAnim();
mInterpretView.setBtnRecordEnable(false);
int value = (Integer) msg.obj;
mInterpretView.setBtnRecordBg(value);
break;
case Util.SET_LIST_VIEW:
mInterpretView.setBtnRecordEnable(true);
mInterpretView.clearViewAnim();
mDialog.close();
mInterpretView.dispRresultList((ArrayList<String>) msg.obj);
break;
case Util.SELECT_RESULT:
break;
default:
break;
}
}
};
private void btnDispProcess(boolean flag) {
if (flag) {
mInterpretView.setBtnCancelDisp(View.VISIBLE);
} else {
mInterpretView.setBtnCancelDisp(View.GONE);
}
}
private boolean btnClickflag = false;
// =========================================================
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerBoradcastReceiver();
if (MainActivity.iSina != null) {
MainActivity.iSina.setClass();
}
if (MainActivity.iRenren != null) {
MainActivity.iRenren.setClass();
}
if (MainActivity.iTencent != null) {
MainActivity.iTencent.setClass();
}
if (MainActivity.ikaixin != null) {
MainActivity.ikaixin.setClass();
}
MainActivity.ikaixin = Ikaixin.getInstance(this);
MainActivity.ikaixin.init(this);
MainActivity.iSina = ISina.getInstance(this);
MainActivity.iSina.init();
MainActivity.iRenren = IRenren.getInstance(this);
MainActivity.iRenren.init(this);
MainActivity.iTencent = ITencent.getInstance(this);
MainActivity.iTencent.init();
sqliteDom = new SQLiteDom();
fromWhere = getIntent();
from = fromWhere.getStringExtra("from");
categroyId = fromWhere.getIntExtra("categroyId", 0);
strWords = fromWhere.getStringExtra("strWords");
childId = fromWhere.getIntExtra("childId", 0);
String title = fromWhere.getStringExtra("title");
setTitleAndContentView(R.layout.activity_result, title);
lvWords = (ListView) findViewById(R.id.lvWords);
lvInputRecord = (ListView) findViewById(R.id.lvInputRecord);
lvSimple = (ListView) findViewById(R.id.lvSimple);
edtWord = (EditText) findViewById(R.id.edtInputWords);
edtWord.setText(strWords);
btnSure = (Button) findViewById(R.id.btnSearch);
btnSure.setOnClickListener(this);
edtWord.addTextChangedListener(this);
edtWord.setOnTouchListener(this);
tvNoResult = (TextView) findViewById(R.id.tvNoResult);
lvWords.setOnItemClickListener(this);
lvInputRecord.setOnItemClickListener(this);
lvSimple.setOnItemClickListener(this);
btnLuyin = (Button) findViewById(R.id.btnLuyin);
btnLuyin.setOnClickListener(this);
mInterpretView = new InterpretView(this, mHandlerKeyboard, this);
mDialog = new UnisayRecognizerDialog(this, "", this, mInterpretView.mNewRecognizerViewListenerInterface);
init(fromWhere.getStringExtra("from"));
}
public void init(String from) {
if (childId == 0 && categroyId == 0) {
childId = null;
categroyId = null;
// list = sqliteDom.getSimilarResult(null, null, childId,1);
} else if (childId != 0 && categroyId == 0) {
categroyId = null;
// list = sqliteDom.getSimilarResult(null, null, childId,1);
} else if (childId == 0 && categroyId != 0) {
childId = null;
// list = sqliteDom.getSimilarResult(categroyId,null, null,1);
} else if (childId != 0 && categroyId != 0) {
// list = sqliteDom.getSimilarResult(null, null, childId,1);
}
if (from.equals("search")) {
lvInputRecord.setVisibility(View.VISIBLE);
if (edtWord.getText().toString().equals("") || edtWord.getText().toString() == null) {
getUserInput();
}
if (wLv == null) {
listWords = searchWordsBystrWords(strWords);
wLv = new WordsLvAdapter(this, listWords, childId);
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
lvWords.setAdapter(wLv);
} else {
listWords.clear();
listWords.addAll(searchWordsBystrWords(strWords));
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
wLv.notifyDataSetChanged();
}
} else if (from.equals("detail")) {
lvWords.setVisibility(View.VISIBLE);
if (wLv == null) {
listWords = searchWordsBystrWords(strWords);
wLv = new WordsLvAdapter(this, listWords, childId);
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
lvWords.setAdapter(wLv);
} else {
listWords.clear();
listWords.addAll(searchWordsBystrWords(strWords));
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
wLv.notifyDataSetChanged();
}
}
}
public void setTitleAndContentView(int layout, String title) {
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
tvTitle = (TextView) findViewById(R.id.tvTitle);
tvTitle.setText(title);
btnCancle = (ImageButton) findViewById(R.id.btnLeft);
btnCancle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = edtWord.getText().toString();
if (str.equals("")) {
ResultActivity.this.finish();
} else {
edtWord.setText("");
}
}
});
}
@Override
public void onEngineEnd() {
// TODO Auto-generated method stub
}
@Override
public void onEngineResult(List arg0, int arg1, String id) {
mDialog.close();
mInterpretView.dismissPopWindow();
if (arg0 == null) {
return;
}
if (arg0.size() > 0) {
String text = (String) ((String) arg0.get(0)).replace(".", "").replace("��", "").replace("?", "")
.replace("��", "").replace("!", "").replace("��", "");
edtWord.setText(text);
}
}
@Override
public void onEngineStart() {
// TODO Auto-generated method stub
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edtWord.getWindowToken(), 0);
if (parent == lvInputRecord) {
if (position == listInputRecord.size()) {
sqliteDom.deleteAllUserInput();
lvInputRecord.setVisibility(View.GONE);
tvNoResult.setVisibility(View.VISIBLE);
tvNoResult.setText("- ����ʷ��¼ -");
} else {
edtWord.setText(" ");
lvInputRecord.setVisibility(View.GONE);
lvSimple.setVisibility(View.GONE);
lvWords.setVisibility(View.VISIBLE);
page = 1;
if (wLv == null) {
listWords = searchWordsBystrWords(listInputRecord.get(position).toString());
wLv = new WordsLvAdapter(this, listWords, childId);
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
lvWords.setAdapter(wLv);
} else {
listWords.clear();
listWords.addAll(searchWordsBystrWords(listInputRecord.get(position).toString()));
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
wLv.notifyDataSetChanged();
}
}
} else if (parent == lvSimple) {
lvInputRecord.setVisibility(View.GONE);
lvSimple.setVisibility(View.GONE);
lvWords.setVisibility(View.VISIBLE);
if (listSimple.size() > 0) {
sqliteDom.saveUserInput(edtWord.getText().toString().trim());
// edtWord.setText(listSimple.get(position))
}
page = 1;
if (wLv == null) {
listWords = new ArrayList();
listWords.add(listSimple.get(position));
wLv = new WordsLvAdapter(this, listWords, childId);
wLv.setCHorEN(chOrEn);
lvWords.setAdapter(wLv);
} else {
listWords.clear();
listWords.add(listSimple.get(position));
wLv.setCHorEN(chOrEn);
wLv.removeFooter(lvWords);
wLv.notifyDataSetChanged();
}
} else if (parent == lvWords) {
if (position == listWords.size()) {
int count1 = listWords.size();
addLvItemFenYe();
int count2 = listWords.size();
if (count1 == count2) {
wLv.removeFooter(lvWords);
}
wLv.notifyDataSetChanged();
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
strWords = edtWord.getText().toString().trim();
if (strWords.equals("")) {
imm.hideSoftInputFromWindow(edtWord.getWindowToken(), 0);
if (from.equals("search")) {
lvInputRecord.setVisibility(View.VISIBLE);
lvSimple.setVisibility(View.GONE);
lvWords.setVisibility(View.GONE);
tvNoResult.setVisibility(View.GONE);
if (ulv == null) {
getUserInput();
} else {
listInputRecord.clear();
listInputRecord.addAll(sqliteDom.getUserInput());
ulv.notifyDataSetChanged();
if (listInputRecord.size() == 0) {
lvInputRecord.setVisibility(View.GONE);
tvNoResult.setVisibility(View.VISIBLE);
tvNoResult.setText("- ����ʷ��¼ -");
}
}
} else if (from.equals("detail")) {
lvInputRecord.setVisibility(View.GONE);
lvSimple.setVisibility(View.GONE);
lvWords.setVisibility(View.VISIBLE);
tvNoResult.setVisibility(View.GONE);
if (wLv == null) {
listWords = searchWordsBystrWords(strWords);
wLv = new WordsLvAdapter(this, listWords, childId);
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
lvWords.setAdapter(wLv);
} else {
listWords.clear();
listWords.addAll(searchWordsBystrWords(strWords));
wLv.addFooter(lvWords);
wLv.setCHorEN(chOrEn);
wLv.notifyDataSetChanged();
}
}
} else {
chOrEn = new PublicArithmetic().isWhat(strWords);
lvInputRecord.setVisibility(View.GONE);
lvSimple.setVisibility(View.VISIBLE);
lvWords.setVisibility(View.GONE);
getList(edtWord.getText().toString());
}
}
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (v == btnSure) {
strWords = edtWord.getText().toString().trim();
if (!"".equals(strWords) && strWords != null) {
imm.hideSoftInputFromWindow(edtWord.getWindowToken(), 0);
if (listSimple != null) {
if (listSimple.size() > 0) {
sqliteDom.saveUserInput(strWords);
}
page = 1;
lvSimple.setVisibility(View.GONE);
lvInputRecord.setVisibility(View.GONE);
lvWords.setVisibility(View.VISIBLE);
if (wLv == null) {
listWords = listSimple;
wLv = new WordsLvAdapter(this, listWords, childId);
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
lvWords.setAdapter(wLv);
} else {
listWords.clear();
listWords.addAll(listSimple);
wLv.setCHorEN(chOrEn);
wLv.addFooter(lvWords);
wLv.notifyDataSetChanged();
}
}
} else {
Toast.makeText(ResultActivity.this, "��������������", Toast.LENGTH_SHORT).show();
}
} else if (v == btnLuyin) {
imm.hideSoftInputFromWindow(edtWord.getWindowToken(), 0);
if (mUser.s2sType.equals(UserInfo.S2T_CH2EN)) {
mDialog.setToChineseEngine();
} else if (mUser.s2sType.equals(UserInfo.S2T_EN2CH)) {
mDialog.setToEnglishEngine();
}
mInterpretView.showPopWindowLocation();
mDialog.show();
} else if (v.getId() == R.id.btn_bg || v.getId() == R.id.imagenovoiceanim) {
mDialog.onRecognizerViewRecord();
LogInfo.LogOutE("haitian", "---------------stop record------------");
} else if (v.getId() == R.id.btn_cancel) {
mDialog.onRecognizerViewCancel();
mInterpretView.dismissPopWindow();
} else if (v.getId() == R.id.btn_record) {
if (!btnClickflag) {
btnClickflag = true;
mDialog.show();
mInterpretView.setBtnRecordEnable(true);
} else {
btnClickflag = false;
mDialog.close();
mInterpretView.dismissPopWindow();
}
}
}
public void getList(String str) {
str = str.trim();
PublicArithmetic pa = new PublicArithmetic();
Integer enOrCh = pa.isWhat(str);
switch (enOrCh) {
case 0:
case 3:
listSimple = searchByChinese(str);
break;
case 1:
case 2:
listSimple = searchByEnglish(str);
break;
}
if (listSimple.size() > 0) {
lvSimple.setVisibility(View.VISIBLE);
tvNoResult.setVisibility(View.GONE);
wslv = new WordsSimpleLvAdapter(this, listSimple, enOrCh);
lvSimple.setAdapter(wslv);
} else {
lvSimple.setVisibility(View.GONE);
tvNoResult.setVisibility(View.VISIBLE);
tvNoResult.setText(getResources().getString(R.string.dictionary_noresult));
}
}
public void getUserInput() {
listInputRecord = sqliteDom.getUserInput();
ulv = new UserInputLvAdapter(this, listInputRecord);
ulv.addFooter(lvInputRecord);
lvInputRecord.setAdapter(ulv);
if (listInputRecord.size() == 0) {
lvInputRecord.setVisibility(View.GONE);
tvNoResult.setVisibility(View.VISIBLE);
tvNoResult.setText("- ����ʷ��¼ -");
}
}
public List searchWordsBystrWords(String strWords) {
if (strWords != null && !"".equals(strWords)) {
strWords = strWords.trim();
chOrEn = new PublicArithmetic().isWhat(strWords);
}
List newList = null;
if ("".equals(strWords) || strWords == null) {
newList = sqliteDom.getSimilarResult(null, null, childId, 1);
} else {
switch (chOrEn) {
case 0:
case 3:
newList = searchByChinese(strWords);
break;
case 1:
case 2:
newList = searchByEnglish(strWords);
break;
}
}
return newList;
}
public List searchByChinese(String strWords) {
page = 1;
List newList = null;
if (childId == null && categroyId == null) {
newList = sqliteDom.getSimilarResult(strWords, null, childId, page);
} else if (childId != null && categroyId == null) {
newList = sqliteDom.getSimilarResult(strWords, null, childId, page);
} else if (childId == null && categroyId != null) {
// newList = sqliteDom.getSimilarResult(categroyId,strWords,
// null,page);
newList = sqliteDom.getSimilarResult(strWords, null, childId, page);
} else if (childId != null && categroyId != null) {
newList = sqliteDom.getSimilarResult(strWords, null, childId, page);
}
return newList;
}
public List searchByEnglish(String strWords) {
page = 1;
List newList = null;
if (childId == null && categroyId == null) {
newList = sqliteDom.getSimilarResult(null, strWords, childId, page);
} else if (childId != null && categroyId == null) {
newList = sqliteDom.getSimilarResult(null, strWords, childId, page);
} else if (childId == null && categroyId != null) {
// newList = sqliteDom.getSimilarResult(categroyId,null,
// strWords,page);
newList = sqliteDom.getSimilarResult(null, strWords, childId, page);
} else if (childId != null && categroyId != null) {
newList = sqliteDom.getSimilarResult(null, strWords, childId, page);
}
return newList;
}
public void addLvItemFenYe() {
page++;
strWords = edtWord.getText().toString().trim();
List newList = null;
if (childId == null && categroyId != null) {
if (strWords.equals("")) {
newList = sqliteDom.getSimilarResult(categroyId, null, null, page);
} else {
PublicArithmetic pa = new PublicArithmetic();
Integer enOrCh = pa.isWhat(strWords);
switch (enOrCh) {
case 0:
case 3:
newList = sqliteDom.getSimilarResult(categroyId, strWords, null, page);
break;
case 1:
case 2:
newList = sqliteDom.getSimilarResult(categroyId, null, strWords, page);
break;
}
}
} else {
if (strWords.equals("")) {
newList = sqliteDom.getSimilarResult(null, null, childId, page);
} else {
PublicArithmetic pa = new PublicArithmetic();
Integer enOrCh = pa.isWhat(strWords);
switch (enOrCh) {
case 0:
case 3:
newList = sqliteDom.getSimilarResult(strWords, null, childId, page);
break;
case 1:
case 2:
newList = sqliteDom.getSimilarResult(null, strWords, childId, page);
break;
}
}
}
listWords.addAll(newList);
}
public void registerBoradcastReceiver() {
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(Util.ACTION_POMENU);
registerReceiver(receivePopMenuEvent, myIntentFilter);
}
public BroadcastReceiver receivePopMenuEvent = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Util.ACTION_POMENU)) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edtWord.getWindowToken(), 0);
// showPopMenu(intent.getParcelableExtra("word"),intent.getIntExtra("button",
// 0));
// showDialogMenu(intent.getParcelableExtra("word"),
// intent.getIntExtra("button", 0));
showPopMore(intent.getParcelableExtra("word"));
}
}
};
public void showDialogMenu(Parcelable word, final int buttonNo) {
final Words words = (Words) word;
AlertDialog.Builder builder = new AlertDialog.Builder(ResultActivity.this);
CharSequence[] items = new CharSequence[4];
int i = 0;
items[i++] = getResources().getString(R.string.trans_share_fullscreen);
items[i++] = getResources().getString(R.string.trans_share_send);
items[i++] = getResources().getString(R.string.trans_share_copy);
items[i++] = getResources().getString(R.string.trans_share_collect);
builder.setTitle("ѡ��");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch (item) {
case 0:
Intent intent = new Intent(ResultActivity.this, ShowWhiteBordActivity.class);
intent.putExtra("english", words.getEnglish());
intent.putExtra("chinese", words.getChinese());
intent.putExtra("chOrEn", chOrEn);
startActivity(intent);
break;
case 1:
if (chOrEn == 1) {
switch (buttonNo) {
case 1:
sendSMS(words.getChinese() + "\n" + words.getEnglish());
break;
case 2:
sendSMS(words.getEnglish());
break;
}
} else {
switch (buttonNo) {
case 1:
sendSMS(words.getEnglish() + "\n" + words.getChinese());
break;
case 2:
sendSMS(words.getChinese());
break;
}
}
break;
case 2:
if (chOrEn == 1) {
switch (buttonNo) {
case 1:
shareText(words.getChinese() + "\n" + words.getEnglish());
break;
case 2:
shareText(words.getEnglish());
break;
}
} else {
switch (buttonNo) {
case 1:
shareText(words.getEnglish() + "\n" + words.getChinese());
break;
case 2:
shareText(words.getChinese());
break;
}
}
break;
case 3:
int result = sqliteDom.insertCollecterFromSearch(words);
switch (result) {
case 0:
new AlertDialog.Builder(ResultActivity.this).setTitle(null).setMessage("�Ѽ����ղؼ�")
.setPositiveButton("ȷ��", null).show();
break;
default:
Toast.makeText(ResultActivity.this, "��ӳɹ�", Toast.LENGTH_SHORT).show();
}
break;
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
mDialog.close();
mInterpretView.dismissPopWindow();
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
edtWord.setText(strWords);
}
return false;
}
ArrayList<Map<String, Object>> functionList = null;
public void initPopMore(View view) {
functionList = new ArrayList<Map<String, Object>>();
gdv = (GridView) view.findViewById(R.id.gdv);
// final RelativeLayout rlbg = (RelativeLayout)
// view.findViewById(R.id.rlBg);
// // rlbg.setVisibility(View.VISIBLE);
// rlbg.setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// // rlbg.setVisibility(View.INVISIBLE);
// popMore.dismiss();
// }
// });
Map<String, Object> m0 = new HashMap<String, Object>();
m0.put("textItem", "");
m0.put("iconItem", R.drawable.trans_ci_pop_button_01);
m0.put("action", 0);
functionList.add(m0);
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("textItem", "");
m1.put("iconItem", R.drawable.trans_ci_pop_button_02);
m1.put("action", 1);
functionList.add(m1);
Map<String, Object> m2 = new HashMap<String, Object>();
m2.put("textItem", "");
m2.put("iconItem", R.drawable.trans_ci_pop_button_03);
m2.put("action", 2);
functionList.add(m2);
Map<String, Object> m3 = new HashMap<String, Object>();
m3.put("textItem", "");
m3.put("iconItem", R.drawable.trans_ci_pop_button_04);
m3.put("action", 3);
functionList.add(m3);
Map<String, Object> m4 = new HashMap<String, Object>();
m4.put("textItem", "");
m4.put("iconItem", R.drawable.trans_ci_pop_button_05);
m4.put("action", 4);
functionList.add(m4);
Map<String, Object> m5 = new HashMap<String, Object>();
m5.put("textItem", "");
m5.put("iconItem", R.drawable.trans_ci_pop_button_06);
m5.put("action", 5);
functionList.add(m5);
Map<String, Object> m6 = new HashMap<String, Object>();
m6.put("textItem", "");
m6.put("iconItem", R.drawable.trans_ci_pop_button_12);
m6.put("action", 6);
functionList.add(m6);
Map<String, Object> m7 = new HashMap<String, Object>();
m7.put("textItem", "");
m7.put("iconItem", R.drawable.trans_ci_pop_button_07);
m7.put("action", 7);
functionList.add(m7);
Map<String, Object> m8 = new HashMap<String, Object>();
m8.put("textItem", "");
m8.put("iconItem", R.drawable.trans_ci_pop_button_08);
m8.put("action", 8);
functionList.add(m8);
Map<String, Object> m9 = new HashMap<String, Object>();
m9.put("textItem", "");
m9.put("iconItem", R.drawable.trans_ci_pop_button_09);
m9.put("action", 9);
functionList.add(m9);
// Map<String, Object> m9 = new HashMap<String, Object>();
// m9.put("textItem", "");
// m9.put("iconItem", R.drawable.trans_ci_pop_button_10);
// m9.put("action", 9);
// functionList.add(m9);
// Map<String, Object> m10 = new HashMap<String, Object>();
// m10.put("textItem", "");
// m10.put("iconItem", R.drawable.trans_ci_pop_button_11);
// m10.put("action", 10);
// functionList.add(m10);
SimpleAdapter sa = new SimpleAdapter(ResultActivity.this, functionList, R.layout.gdv_interpret_item,
new String[] { "textItem", "iconItem" }, new int[] { R.id.tvFunction, R.id.imageFunction });
gdv.setAdapter(sa);
}
public void showPopMore(Parcelable word) {
final Words words = (Words) word;
View view = LayoutInflater.from(this).inflate(R.layout.pop_interpret_more, null);
initPopMore(view);
gdv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
switch (Integer.parseInt(functionList.get(arg2).get("action").toString())) {
case 0:
popMore.dismiss();
Uri smsToUri = Uri.parse("smsto:");// ��ϵ�˵�ַ
Intent mIntent = new Intent(android.content.Intent.ACTION_SENDTO, smsToUri);
mIntent.putExtra("sms_body", words.getChinese() + "\n" + words.getEnglish());// ��������
startActivity(mIntent);
break;
case 1:
popMore.dismiss();
Intent mailIntent = new Intent(android.content.Intent.ACTION_SEND);
mailIntent.setType("plain/test");
mailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, "");
mailIntent.putExtra(android.content.Intent.EXTRA_CC, "");
mailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");
mailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
words.getChinese() + "\n" + words.getEnglish());
startActivity(Intent.createChooser(mailIntent, "�����ʼ�"));
break;
// case 2:
// popMore.dismiss();
// showPopEditWC(words.getChinese() + "\n" + words.getEnglish(), Integer.parseInt(functionList.get(arg2).get("action").toString()));
//// MainActivity.iSina.sendWeibo(words.getChinese() + "\n" + words.getEnglish(), ResultActivity.this);
// break;
// case 3:
// popMore.dismiss();
// showPopEditWC(words.getChinese() + "\n" + words.getEnglish(), Integer.parseInt(functionList.get(arg2).get("action").toString()));
//// MainActivity.iTencent.sendWeibo(words.getChinese() + "\n" + words.getEnglish(), ResultActivity.this);
// break;
// case 4:
// popMore.dismiss();
// showPopEditWC(words.getChinese() + "\n" + words.getEnglish(), Integer.parseInt(functionList.get(arg2).get("action").toString()));
//// MainActivity.iRenren.sendWeibo(words.getChinese() + "\n" + words.getEnglish(), ResultActivity.this);
// break;
// case 5:
// popMore.dismiss();
// showPopEditWC(words.getChinese() + "\n" + words.getEnglish(), Integer.parseInt(functionList.get(arg2).get("action").toString()));
//// MainActivity.ikaixin.sendWeibo(words.getChinese() + "\n" + words.getEnglish(), ResultActivity.this);
//
// break;
case 2:
case 3:
case 4:
case 5:
popMore.dismiss();
Intent intentW = new Intent(ResultActivity.this,EditContent.class);
intentW.putExtra("action", Integer.parseInt(functionList.get(arg2).get("action").toString()));
intentW.putExtra("content", words.getChinese() + "\n" + words.getEnglish());
startActivityForResult(intentW, 000011);
break;
case 6:
popMore.dismiss();
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(words.getEnglish() + "\n" + words.getChinese());
break;
case 7:
popMore.dismiss();
// fullScreenTransData();
Intent intent = new Intent(ResultActivity.this, ShowWhiteBordActivity.class);
intent.putExtra("english", words.getEnglish());
intent.putExtra("chinese", words.getChinese());
intent.putExtra("chOrEn", chOrEn);
startActivity(intent);
break;
case 8:
popMore.dismiss();
int result = sqliteDom.insertCollecterFromSearch(words);
switch (result) {
case 0:
new AlertDialog.Builder(ResultActivity.this).setTitle(null).setMessage("�Ѽ����ղؼ�")
.setPositiveButton("ȷ��", null).show();
break;
default:
Toast.makeText(ResultActivity.this, "��ӳɹ�", Toast.LENGTH_SHORT).show();
}
// SQLiteDom sqliteDom = new SQLiteDom();
// // if(UserInfo.S2T_CH2EN.equals(mUser.s2sType)){
// KouyiRecord kk = mTableTransText.getRecords(position);
// // System.out.println(mTableCH.get(0).text);
// Collecter collecter = new Collecter();
// collecter.setChildId(6);
// collecter.setText1(kk.getSaid());
// collecter.setText2(kk.getTranslated());
// int result =
// sqliteDom.insertCollecterFromKouyi(collecter);
// switch (result) {
// case 0:
// new
// AlertDialog.Builder(InterpretActivity.this).setTitle(null).setMessage("�Ѽ����ղؼ�")
// .setPositiveButton("ȷ��", null).show();
// break;
// default:
// Toast.makeText(ResultActivity.this, "��ӳɹ�",
// Toast.LENGTH_SHORT).show();
// }
break;
case 9:
popMore.dismiss();
// shareText();
if (chOrEn == 1) {
sendSMS(words.getChinese() + "\n" + words.getEnglish());
} else {
sendSMS(words.getEnglish() + "\n" + words.getChinese());
}
break;
case 10:
popMore.dismiss();
// deleteSelected(position);
break;
case 11:
popMore.dismiss();
// mSpeakAdapter.clear();
// updateListView();
break;
}
}
});
popMore = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
popMore.setBackgroundDrawable(new BitmapDrawable());
popMore.setAnimationStyle(R.style.popMoreAnimation);
popMore.showAtLocation(findViewById(R.id.interpret_parent), Gravity.CENTER, 0, 0);
popMore.setFocusable(true);
popMore.setOutsideTouchable(false);
popMore.update();
}
@Override
protected void onDestroy() {
unregisterReceiver(receivePopMenuEvent);
super.onDestroy();
}
@Override
protected void onStop() {
if(TextPlayer.getInstance().isPlaying()){
TextPlayer.getInstance().stop();
}
super.onStop();
}
// //�������ݱ༭��
// private PopupWindow popEdit;
// private EditText edtContent;
// private Button btnSend2;
// private Button btnCancle2;
// private TextView tvCount;
// private int count = 140;
// public void initPopEditWC(View view){
// edtContent = (EditText) view.findViewById(R.id.edtContent);
// btnSend2 = (Button) view.findViewById(R.id.btnSend);
// btnCancle2 = (Button) view.findViewById(R.id.btnCancle);
// tvCount = (TextView) view.findViewById(R.id.tvCount);
// edtContent.setMaxEms(count);
//
// }
// public String showPopEditWC(String str,final int a){
//
// View view = LayoutInflater.from(this).inflate(R.layout.pop_editweibocontent, null);
// initPopEditWC(view);
// edtContent.setText(str);
// tvCount.setText((count-str.length())+"/"+count);
// edtContent.addTextChangedListener(new TextWatcher() {
// @Override
// public void onTextChanged(CharSequence s, int start, int before, int count) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public void beforeTextChanged(CharSequence s, int start, int count,
// int after) {
//
//
// }
//
// @Override
// public void afterTextChanged(Editable s) {
// tvCount.setText((count-edtContent.getText().toString().length())+"/"+count);
//
// }
// });
// btnSend2.setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// popEdit.dismiss();
// switch(a){
// case 2:
// MainActivity.iSina.sendWeibo(edtContent.getText().toString().trim(),
// ResultActivity.this);
// break;
// case 3:
// MainActivity.iTencent.sendWeibo(edtContent.getText().toString().trim(),
// ResultActivity.this);
// break;
// case 4:
// MainActivity.iRenren.sendWeibo(edtContent.getText().toString().trim(),
// ResultActivity.this);
// break;
// case 5:
// MainActivity.ikaixin.sendWeibo(edtContent.getText().toString().trim(),
// ResultActivity.this);
// break;
// }
//
// }
// });
// btnCancle2.setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// popEdit.dismiss();
//
// }
// });
// popEdit = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
// popEdit.setBackgroundDrawable(new BitmapDrawable());
// popEdit.showAtLocation(findViewById(R.id.interpret_parent), Gravity.CENTER, 0, 0);
// popEdit.setFocusable(true);
// popEdit.setOutsideTouchable(false);
// popEdit.update();
// return null;
// }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==resultCode&&resultCode==000011){
int a = data.getIntExtra("action", 0);
String str = data.getStringExtra("content");
switch(a){
case 2:
MainActivity.iSina.sendWeibo(str,
ResultActivity.this);
break;
case 3:
MainActivity.iTencent.sendWeibo(str,
ResultActivity.this);
break;
case 4:
MainActivity.iRenren.sendWeibo(str,
ResultActivity.this);
break;
case 5:
MainActivity.ikaixin.sendWeibo(str,
ResultActivity.this);
break;
case 0:
Util.showToast(this, "���ʹ���");
break;
}
}
}
}