package com.ztspeech.simutalk2.trans; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.BitmapDrawable; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; 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.OnKeyListener; import android.view.View.OnTouchListener; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.inputmethod.InputMethodManager; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.GridView; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; import com.ztspeech.recognizer.EngineResultFlag; import com.ztspeech.recognizer.OnEngineListener; import com.ztspeech.recognizer.net.HttpGetQtEv; import com.ztspeech.recognizerDialog.UnisayRecognizerDialog; import com.ztspeech.simutalk2.R; import com.ztspeech.simutalk2.data.TextPlayer; import com.ztspeech.simutalk2.data.TransTextTable; import com.ztspeech.simutalk2.data.UserInfo; import com.ztspeech.simutalk2.dictionary.activity.ShowWhiteBordActivity; import com.ztspeech.simutalk2.dictionary.dom.SQLiteDom; import com.ztspeech.simutalk2.dictionary.entity.Collecter; import com.ztspeech.simutalk2.dictionary.entity.KouyiRecord; 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.Location; import com.ztspeech.simutalk2.qa.MainActivity; import com.ztspeech.simutalk2.qa.WaitingActivity; import com.ztspeech.simutalk2.qa.view.InterpretView; import com.ztspeech.simutalk2.trans.speak.AudioClip; import com.ztspeech.simutalk2.trans.speak.SpeakAdapter; import com.ztspeech.simutalk2.trans.speak.SpeakItemData; import com.ztspeech.simutalk2.trans.speak.SpeakView; import com.ztspeech.simutalk2.trans.speak.SpeakView.IOnSpeakViewAdapterCallback; 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; import com.ztspeech.translator.Translator; public class InterpretActivity extends Activity implements OnClickListener, OnScrollListener, OnTouchListener, IOnSpeakViewAdapterCallback { SQLiteDom sqliteDom = null; @Override protected void onDestroy() { super.onDestroy(); } @Override protected void onStop() { super.onStop(); stopAll(); isWorking = false; } /** Called when the activity is first created. */ private SpeakAdapter mSpeakAdapter; private int nCurrentSpeakIndex = 0; private static InterpretActivity instance; private ListView mListView; private Translator mTranslater; private TextPlayer mPlayer; private AudioClip mResultTipAudio; // private RecognizerDialog mDialog; // new aip private UnisayRecognizerDialog mDialog; private UserInfo mUser = UserInfo.getInstanse(); private EditText mEditInput; // private Button mBtnRecord; private Button mBtnChangeInput; private Button mBtnSendInput; private Button mBtnLanguage; private ImageButton m_btn_record; public static boolean isWorking = false; public LinearLayout controlLayout; private InterpretView mInterpretView; 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: mDialog.setToEN2CHEngine(); transInputText(msg.obj.toString()); break; default: break; } } }; private String mCurrentInLanguage = ""; private String mCurrentOutLanguage = ""; private String mCurrentTransText = ""; private float startX, startY; private boolean mIsInputTextModel = false; public TransTextTable mTableTransText; public static boolean isDeletefromMyLiberary = false; private int mListViewHeight = 0; // �����˵� private PopupWindow popMenu; private Button btnGood; private Button btnBad; private Button btnCopy; private Button btnFull; private Button btnMore; // ����˵� private PopupWindow popMore; private GridView gdv; // �����л� private PopupWindow popCL; private Button btnLetter; private Button btnEnToCh; private Button btnChToEn; private LayoutInflater inflater; public static InterpretActivity getInstance() { return instance; } public void setAutoTTS(boolean autoTts) { } public void setOnlyRecoginze(boolean b) { mDialog.setListViewShow(false); if (mUser.isOnlyRecoginze()) { if (UserInfo.S2T_CH2EN.equals(mUser.s2sType)) { mDialog.setToChineseEngine(); } else if (UserInfo.S2T_EN2CH.equals(mUser.s2sType)) { mDialog.setToEnglishEngine(); } else if (UserInfo.S2T_LETTER.equals(mUser.s2sType)) { mDialog.setListViewShow(true); } } else { if (UserInfo.S2T_CH2EN.equals(mUser.s2sType)) { mDialog.setToCH2ENEngine(); } else if (UserInfo.S2T_EN2CH.equals(mUser.s2sType)) { mDialog.setToEN2CHEngine(); } else if (UserInfo.S2T_LETTER.equals(mUser.s2sType)) { // mDialog.setToEN2CHEngine(); mDialog.setListViewShow(true); } } } public void setS2sType(String sType) { mUser.s2sType = sType; mUser.save(); if (sType.equals(UserInfo.S2T_EN2CH)) { mBtnLanguage.setBackgroundResource(R.drawable.trans_bottorm_button_ec); // mBtnLanguage.setText("Ӣ>��"); nCurrentSpeakIndex = 1; mCurrentInLanguage = TransTextTable.LANGUAGE_EN; mCurrentOutLanguage = TransTextTable.LANGUAGE_CH; } else if (sType.equals(UserInfo.S2T_CH2EN)) { mBtnLanguage.setBackgroundResource(R.drawable.trans_bottorm_button_ce); // mBtnLanguage.setText("��>Ӣ"); mCurrentInLanguage = TransTextTable.LANGUAGE_CH; mCurrentOutLanguage = TransTextTable.LANGUAGE_EN; nCurrentSpeakIndex = 0; } else { mBtnLanguage.setBackgroundResource(R.drawable.trans_bottorm_button_zimu); // mBtnLanguage.setText("�� ĸ"); mCurrentInLanguage = TransTextTable.LANGUAGE_EN; mCurrentOutLanguage = TransTextTable.LANGUAGE_CH; // mDialog.setListViewShow(true); } setOnlyRecoginze(false); mEditInput.setText(""); // int nSelection = mSpeakAdapter.getCount(); // if (nSelection >= 0) { // mListView.setSelection(nSelection); // } // �������� // mSpeakAdapter.smoothToBottomWithAnim(mListView); } public void setUserName(String name) { mUser.isChange = true; mUser.setUserName(name); mDialog.setUserInfo(name, 0, 0); } private void stopAll() { } @Override public void onCreate(Bundle savedInstanceState) { overridePendingTransition(R.anim.slideinright, R.anim.slideoutleft); super.onCreate(savedInstanceState); 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(); // sqliteDom.openDataBase2(); // �����ޱ��� requestWindowFeature(Window.FEATURE_NO_TITLE); setVolumeControlStream(AudioManager.STREAM_MUSIC); instance = this; inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.activity_interpret, null); setContentView(v); // mInterpretView = new InterpretView(this, mHandlerKeyboard, v, this); // // mMainViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper1); // mDialog = new UnisayRecognizerDialog(this, "", mRecognizerListener, // mInterpretView.mNewRecognizerViewListenerInterface); mInterpretView = new InterpretView(this, mHandlerKeyboard, this); mDialog = new UnisayRecognizerDialog(this, "", mRecognizerListener, mInterpretView.mNewRecognizerViewListenerInterface); mTranslater = new Translator(this, mTranslaterListener); mPlayer = TextPlayer.getInstance(); mPlayer.setPopContext(this); mResultTipAudio = new AudioClip(this, R.raw.show_results); mListView = (ListView) findViewById(R.id.scrollView1); mEditInput = (EditText) findViewById(R.id.edit_input_text); mBtnChangeInput = (Button) findViewById(R.id.btn_change_input); mBtnSendInput = (Button) findViewById(R.id.btn_send_input); mBtnLanguage = (Button) findViewById(R.id.btn_change_language); m_btn_record = (ImageButton) findViewById(R.id.m_btn_record); controlLayout = (LinearLayout) findViewById(R.id.control_layout); mBtnChangeInput.setOnClickListener(this); mBtnSendInput.setOnClickListener(this); m_btn_record.setOnClickListener(this); m_btn_record.setOnTouchListener(this); mBtnLanguage.setOnClickListener(this); mEditInput.setOnKeyListener(mEditInputTextKeyListener); mBtnSendInput.setText(""); mListView.setDividerHeight(0); mListView.setOnTouchListener(mListViewTouch); mListView.setOnScrollListener(this); // mListView.setOnItemLongClickListener(mAdapterLongLinstener); mListView.setOnItemClickListener(mAdapterLinstener); mTableTransText = ((Location)getApplication()).mTableTransText; createView(); readConfig(); inputUserName(); mListView.setSelection(mTableTransText.size() - 1); // mDialog.setObject("s2s.simutalk.com".getBytes()); // mDialog.setObject("192.168.154.93".getBytes()); mDialog.setToContinuous(2); } private boolean btnClickflag = false; private OnEngineListener mTranslaterListener = new OnEngineListener() { public void onEngineResult(List list, int flag, String id) { SpeakItemData data = null; if (flag == EngineResultFlag.OVER) { data = new SpeakItemData(mUser.s2sType, mCurrentInLanguage, mCurrentTransText, null, mCurrentOutLanguage, (String) list.get(0), null, true); data.taskId = id; onTranslatorViewResult(data); if (data.isTransTTS() && mUser.autoTTS) { playText(data.trans, mCurrentOutLanguage); } } else if (flag == EngineResultFlag.NOTHING) { onSpeakViewResult(data); } else if (flag == EngineResultFlag.CONNECT_ERROR) { onSpeakViewError(flag); } else if (flag == EngineResultFlag.CANCEL) { // doError(flag); } else { onSpeakViewError(flag); } mBtnSendInput.setEnabled(true); } public void onEngineStart() { WaitingActivity.waiting(InterpretActivity.this, 0); isWorking = true; } public void onEngineEnd() { mBtnSendInput.setEnabled(true); WaitingActivity.stop(); isWorking = false; } }; private OnEngineListener mRecognizerListener = new OnEngineListener() { private boolean fristR = true; private SpeakItemData data = null; // private List<String> list_$ = null; String mspeak = null; public void onEngineResult(List list, int flag, String id) { if (flag == EngineResultFlag.WORKING) { if (list.size() > 0) { String speak = (String) list.get(0); if (fristR) { // list_$ = new ArrayList<String>(); // list_$.add(speak); mspeak = speak; data = new SpeakItemData(mUser.s2sType, mCurrentInLanguage, mspeak, true); data.taskId = id; if (speak.contains(" / ")) { data.mspeak = mspeak; } data.speak = data.speak.replace(" / ", ""); onSpeakViewResultByLianxuR(data); fristR = false; } else { String[] empt = speak.split(" / "); if (empt.length > 1) { empt[1] = " / " + empt[1]; mspeak = mspeak.split(" / ")[0] + empt[0] + empt[1]; } else { mspeak = mspeak.split(" / ")[0] + empt[0]; } data.speak = mspeak; data.mspeak = mspeak; data.speak = data.speak.replace(" / ", ""); // list_$.add(speak); // if(speak.contains(" / ")){ // speak = speak.replace(" / ", ""); // data.speak = data.speak + speak; // }else{ // for(int i=0;i<list_$.size();i++){ // if(!list_$.get(i).contains(" / ")){ // speak+= list_$.get(i); // } // } // data.speak = speak; // } mSpeakAdapter.update(data); mSpeakAdapter.notifyDataSetChanged(); } } } else if (flag == EngineResultFlag.OVER) { mDialog.close(); mInterpretView.dismissPopWindow(); if (list.size() > 0) { String speak = (String) list.get(0); if (data == null) { data = new SpeakItemData(mUser.s2sType, mCurrentInLanguage, speak, true); data.taskId = id; onSpeakViewResultByLianxuR(data); } else { String[] empt = speak.split(" / "); if (empt.length > 1) { // empt[1] = " / "+empt[1]; mspeak = mspeak.split(" / ")[0] + empt[0] + empt[1]; } else { mspeak = mspeak.split(" / ")[0] + empt[0]; } data.speak = mspeak; data.speak = data.speak.replace(" / ", ""); mSpeakAdapter.update(data); data.mspeak = ""; mSpeakAdapter.notifyDataSetChanged(); } } if (mUser.isOnlyRecoginze()) { InputStream in = new ByteArrayInputStream((byte[]) mDialog.getObject()); data.speakStream = in; onSpeakViewResult(data); } if (list.size() > 1) { String trans = (String) list.get(1); data.trans = trans; InputStream in = new ByteArrayInputStream((byte[]) mDialog.getObject()); data.speakStream = in; onSpeakViewResult(data); if (mUser.autoTTS && data.isTransTTS()) { playText(data); } } data = null; fristR = true; mspeak = null; } else if (flag == EngineResultFlag.NOTHING) { mDialog.close(); mInterpretView.dismissPopWindow(); onSpeakViewResult(data); data = null; fristR = true; if (data != null) { onSpeakViewResult(data); } mspeak = null; } else if (flag == EngineResultFlag.CONNECT_ERROR) { mDialog.close(); mInterpretView.dismissPopWindow(); //onSpeakViewError(flag); data = null; fristR = true; if (data != null) { onSpeakViewResult(data); } mspeak = null; } else if (flag == EngineResultFlag.CANCEL) { // doError(flag); mDialog.close(); mInterpretView.dismissPopWindow(); data = null; fristR = true; if (data != null) { onSpeakViewResult(data); } mspeak = null; } else { mDialog.close(); mInterpretView.dismissPopWindow(); onSpeakViewError(flag); data = null; fristR = true; if (data != null) { onSpeakViewResult(data); } mspeak = null; } } public void onEngineStart() { isWorking = true; } public void onEngineEnd() { // btnCancelDisp(false); btnClickflag = false; // m_btn_record.setEnabled(true); // mDialog.close(); // mInterpretView.setRecordLayoutDisp(View.GONE); if (data != null) { onSpeakViewResult(data); } isWorking = false; data = null; mspeak = null; fristR = true; } }; private OnTouchListener mListViewTouch = new OnTouchListener() { public boolean onTouch(View arg0, MotionEvent event) { closePM();// �ص�popmenu // if(TextPlayer.getInstance().isPlaying()){ // TextPlayer.getInstance().stop(); // } if (event.getAction() == MotionEvent.ACTION_DOWN) { startX = event.getX(); startY = event.getY(); } else if (event.getAction() == MotionEvent.ACTION_UP) { float offsetX = event.getX() - startX; float offsetY = event.getY() - startY; if (offsetX < 0) { offsetX = -offsetX; } if (offsetY < 0) { offsetY = -offsetY; } if ((offsetX - 10) <= offsetY) { return false; } offsetX = event.getX() - startX; int nOldIndex = nCurrentSpeakIndex; if (offsetX > 20) { nCurrentSpeakIndex++; if (nCurrentSpeakIndex < 2) { } else { nCurrentSpeakIndex = 0; } // mMainViewFlipper.setInAnimation(InterpretActivity.this, // R.anim.in_lefttoright); // mMainViewFlipper.setOutAnimation(InterpretActivity.this, // R.anim.out_lefttoright); // mMainViewFlipper.showNext(); } else if (offsetX < -20) { nCurrentSpeakIndex--; if (nCurrentSpeakIndex >= 0) { } else { nCurrentSpeakIndex = 1; } // mMainViewFlipper.setInAnimation(InterpretActivity.this, // R.anim.in_righttoleft); // mMainViewFlipper.setOutAnimation(InterpretActivity.this, // R.anim.out_righttoleft); // mMainViewFlipper.showPrevious(); } if (nOldIndex != nCurrentSpeakIndex) { // setS2sType(mSpeakState[nCurrentSpeakIndex].getType()); } } return false; } }; private void inputUserName() { mDialog.setUserInfo(mUser.getUserName(), 0, 0); } private void readConfig() { changeInputTextModel(mIsInputTextModel); this.setS2sType(mUser.s2sType); this.setFontSize(mUser.getFontIndex()); } public void setFontSize(int fontSize) { mUser.setFontIndex(fontSize); float size = mUser.getFontSize(); mSpeakAdapter.setFontSize(size); mSpeakAdapter.notifyDataSetChanged(); // this.updateListView(); } private Runnable mKeyboardRunnable = new Runnable() { // s public void run() { // InputMethodManager imm = (InputMethodManager) // getSystemService(INPUT_METHOD_SERVICE); int h = mListView.getHeight(); if (mListViewHeight > h) { if (mBtnChangeInput.getVisibility() == View.VISIBLE) { if(popMenu!=null){ popMenu.dismiss(); } mBtnChangeInput.setVisibility(View.GONE); mBtnLanguage.setVisibility(View.GONE); // controlLayout.setMinimumHeight(120); // mEditInput.setLines(2); // mEditInput.setMaxLines(2); // mEditInput.setSingleLine(false); } } else { if (mBtnChangeInput.getVisibility() == View.GONE) { // mEditInput.setLines(1); // mEditInput.setMaxLines(1); // mEditInput.setSingleLine(true); mBtnChangeInput.setVisibility(View.VISIBLE); mBtnLanguage.setVisibility(View.VISIBLE); } } mHandlerKeyboard.postDelayed(mKeyboardRunnable, 300); } }; @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { mDialog.setUserInfo(mUser.getUserName(), 0, 0); if(requestCode==resultCode&&resultCode==000011){ int a = data.getIntExtra("action", 0); String str = data.getStringExtra("content"); switch(a){ case 2: MainActivity.iSina.sendWeibo(str, InterpretActivity.this); break; case 3: MainActivity.iTencent.sendWeibo(str, InterpretActivity.this); break; case 4: MainActivity.iRenren.sendWeibo(str, InterpretActivity.this); break; case 5: MainActivity.ikaixin.sendWeibo(str, InterpretActivity.this); break; case 0: Util.showToast(this, "���ʹ���"); break; } } // if (requestCode == ITencent.BIND_TENCENT_CODE) { // if (resultCode == OAuthV1AuthorizeWebView.RESULT_CODE) { // if (data == null) { // Toast.makeText(this, "��ʧ��", Toast.LENGTH_SHORT).show(); // iTencent.setOAuth(); // } else { // boolean result = iTencent.saveStatus(data); // if (result) { // Toast.makeText(this, "�󶨳ɹ�", Toast.LENGTH_SHORT).show(); // } else { // Toast.makeText(this, "��ʧ��", Toast.LENGTH_SHORT).show(); // iTencent.setOAuth(); // } // } // } // } } private void updateListView() { mSpeakAdapter.notifyDataSetChanged(true); } private void createView() { mSpeakAdapter = new SpeakAdapter(this, mTableTransText, mListView); mSpeakAdapter.setOnSpeakViewAdapterListener(this); mListView.setAdapter(mSpeakAdapter); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == 24) { return true; } else if (keyCode == 25) { return true; } return super.onKeyUp(keyCode, event); } private SpeakItemData mSelectedItemData = null; private OnItemClickListener mAdapterLinstener = new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if (TextPlayer.getInstance().isPlaying()) { TextPlayer.getInstance().stop(); } InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditInput.getWindowToken(), 0); if (arg2 == mListView.getCount() - 1) { } else { SpeakView v = (SpeakView) arg1; mSelectedItemData = v.data; mSpeakAdapter.setFocus(v.data); // updateListView(); // play(v.data); showPopMenu(arg1, arg2); } } }; public void initPopMenu(View view) { btnGood = (Button) view.findViewById(R.id.btnGood); btnBad = (Button) view.findViewById(R.id.btnBad); btnCopy = (Button) view.findViewById(R.id.btnCopy); btnFull = (Button) view.findViewById(R.id.btnFull); btnMore = (Button) view.findViewById(R.id.btnMore); } // ���ܲ˵� public void showPopMenu(View parentView, final int position) { closePM(); View view = LayoutInflater.from(this).inflate(R.layout.pop_interpret_action, null); initPopMenu(view); btnMore.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popMenu.dismiss(); showPopMore(position); } }); btnGood.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popMenu.dismiss(); commontRecord(position, 1); } }); btnBad.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popMenu.dismiss(); commontRecord(position, 0); } }); btnCopy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(mSelectedItemData.speak + "\n" + mSelectedItemData.trans); popMenu.dismiss(); } }); popMenu = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); popMenu.setBackgroundDrawable(new BitmapDrawable()); // pop λ���Ż� int yoff = -20; if ((parentView.getBottom() + 53) > mListView.getHeight()) { yoff = mListView.getHeight() - parentView.getBottom() - 53; } popMenu.showAsDropDown(parentView, 300, yoff); // popMenu.setFocusable(true); // popMenu.setOutsideTouchable(false); popMenu.update(); } public void closePM() { if (popMenu != null) { popMenu.dismiss(); } } ArrayList<Map<String, Object>> functionList = null; public void initPopMore(View view) { functionList = new ArrayList<Map<String, Object>>(); gdv = (GridView) view.findViewById(R.id.gdv); // gdv.setSelector(new ColorDrawable(Color.TRANSPARENT)); // 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_07); 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_08); 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_09); 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_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(InterpretActivity.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(final int position) { 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) { int a = Integer.parseInt(functionList.get(arg2).get("action").toString()); switch (a) { case 0: popMore.dismiss(); Uri smsToUri = Uri.parse("smsto:");// ��ϵ�˵�ַ Intent mIntent = new Intent(android.content.Intent.ACTION_SENDTO, smsToUri); mIntent.putExtra("sms_body", mSelectedItemData.speak + "\n" + mSelectedItemData.trans);// �������� 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, mSelectedItemData.speak + "\n" + mSelectedItemData.trans); startActivity(Intent.createChooser(mailIntent, "�����ʼ�")); break; // case 2: // popMore.dismiss(); // showPopEditWC(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, a); //// MainActivity.iSina.sendWeibo(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, //// InterpretActivity.this); // break; // case 3: // popMore.dismiss(); // showPopEditWC(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, a); //// MainActivity.iTencent.sendWeibo(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, //// InterpretActivity.this); // break; // case 4: // popMore.dismiss(); // showPopEditWC(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, a); //// MainActivity.iRenren.sendWeibo(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, //// InterpretActivity.this); // break; // case 5: // popMore.dismiss(); // showPopEditWC(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, a); //// MainActivity.ikaixin.sendWeibo(mSelectedItemData.speak + "\n" + mSelectedItemData.trans, //// InterpretActivity.this); // break; case 2: case 3: case 4: case 5: popMore.dismiss(); Intent intent = new Intent(InterpretActivity.this,EditContent.class); intent.putExtra("action", a); intent.putExtra("content", mSelectedItemData.speak + "\n" + mSelectedItemData.trans); startActivityForResult(intent, 000011); break; case 6: popMore.dismiss(); fullScreenTransData(); break; case 7: popMore.dismiss(); 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(InterpretActivity.this, "��ӳɹ�", Toast.LENGTH_SHORT).show(); } break; case 8: popMore.dismiss(); shareText(); break; case 9: popMore.dismiss(); deleteSelected(position); break; case 10: popMore.dismiss(); new AlertDialog.Builder(InterpretActivity.this).setTitle("ɾ��ȫ������").setView(null) .setPositiveButton("ȷ��", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { mSpeakAdapter.clear(); updateListView(); } }).setNegativeButton("ȡ��", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).show(); 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(); } public void initPopCL(View view) { btnLetter = (Button) view.findViewById(R.id.btnLetter); btnEnToCh = (Button) view.findViewById(R.id.btnEnglishToChinese); btnChToEn = (Button) view.findViewById(R.id.btnChineseToEnglish); } // �����л� public void showPopChangeLanguage(View parent) { View view = LayoutInflater.from(this).inflate(R.layout.pop_interpret_changelanguage, null); initPopCL(view); btnLetter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setS2sType(UserInfo.S2T_LETTER); popCL.dismiss(); } }); btnEnToCh.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setS2sType(UserInfo.S2T_EN2CH); popCL.dismiss(); } }); btnChToEn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setS2sType(UserInfo.S2T_CH2EN); popCL.dismiss(); } }); popCL = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); popCL.setBackgroundDrawable(new BitmapDrawable()); popCL.setAnimationStyle(R.style.PopupAnimation); // popCL.showAtLocation(parent, Gravity.BOTTOM, // getResources().getDimensionPixelSize(R.dimen.popchange_x), // parent.getBottom() - parent.getHeight()); // popCL.showAtLocation(mBtnLanguage, Gravity.BOTTOM, // (int) parent.getLeft() - // getResources().getDimensionPixelSize(R.dimen.popchange_x), // parent.getBottom() // - parent.getHeight()); popCL.showAtLocation(mBtnLanguage, Gravity.BOTTOM | Gravity.RIGHT, 0, mBtnLanguage.getBottom()); popCL.setFocusable(true); popCL.setOutsideTouchable(false); popCL.update(); } private void play(SpeakItemData data, boolean isSpeak) { if (TextPlayer.getInstance().isPlaying()) { TextPlayer.getInstance().stop(); return; } if (isSpeak) { if (data.speakStream != null) { TextPlayer.getInstance().play(data.speakStream); } else { playText(data.speak, data.languageSpeak); } } else { if (data.isTransTTS()) { playText(data.trans, data.languageTrans); } } /* * switch (data.type) { case SpeakItemData.Define.SPEAK_TYPE_FULL: case * SpeakItemData.Define.SPEAK_TYPE_TEXT: playText(data.text, * data.language); return; case SpeakItemData.Define.SPEAK_TYPE_SPEAK: * if (data.mPlayStream != null) { * TextPlayer.getInstance().play(data.mPlayStream); } else { * playText(data.text, data.language); } break; case * SpeakItemData.Define.SPEAK_TYPE_TRANS: * * playText(data.text, data.language); break; default: } */ } private void playText(SpeakItemData obj) { mPlayer.setPopContext(this); if (obj.type.equals(UserInfo.S2T_CH2EN)) { mPlayer.playEnglish(obj.trans); } else if (obj.type.equals(UserInfo.S2T_EN2CH)) { mPlayer.playChinese(obj.trans); } } private void playText(String text, String language) { if (TransTextTable.LANGUAGE_CH.equals(language)) { mPlayer.playChinese(text); } else { mPlayer.playEnglish(text); } } private OnKeyListener mEditInputTextKeyListener = new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == 66) { // ����û�����˻س��� transInputText(); } return false; } }; private void selectDo() { AlertDialog.Builder builder = new AlertDialog.Builder(InterpretActivity.this); CharSequence[] items = new CharSequence[6]; int i = 0; items[i++] = getString(R.string.trans_share_fullscreen); items[i++] = getString(R.string.trans_share_send); items[i++] = getString(R.string.trans_share_copy); items[i++] = getString(R.string.trans_share_collect); items[i++] = getString(R.string.trans_share_delete); items[i++] = getString(R.string.trans_share_clear); builder.setTitle(getString(R.string.trans_share_title)); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { if (item == 0) { fullScreenTransData(); } else if (item == 1) { shareText(); } else if (item == 2) { ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(mSelectedItemData.speak + "\n" + mSelectedItemData.trans); } else if (item == 3) { SQLiteDom sqliteDom = new SQLiteDom(); // if(UserInfo.S2T_CH2EN.equals(mUser.s2sType)){ KouyiRecord kk = mTableTransText.getRecords(mSelectedItemData.id); // 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(InterpretActivity.this, "��ӳɹ�", Toast.LENGTH_SHORT).show(); } } else if (item == 4) { // deleteSelected(position); } else { mSpeakAdapter.clear(); updateListView(); } } }); AlertDialog alert = builder.create(); alert.show(); } private void fullScreenTransData() { Intent intent = new Intent(InterpretActivity.this, ShowWhiteBordActivity.class); intent.putExtra("english", mSelectedItemData.trans); intent.putExtra("chinese", mSelectedItemData.speak); if (mSelectedItemData.type == UserInfo.S2T_CH2EN) { intent.putExtra("chOrEn", 0); } else if (mSelectedItemData.type == UserInfo.S2T_EN2CH) { intent.putExtra("chOrEn", 1); } // if // (TransTextTable.LANGUAGE_CH.equals(mSelectedItemData.languageSpeak)) // { // intent.putExtra("english", mSelectedItemData.trans); // intent.putExtra("chinese", mSelectedItemData.speak); // // if (mSelectedItemData.type == UserInfo.S2T_CH2EN) { // // intent.putExtra("chOrEn", 0); // } else { // intent.putExtra("chOrEn", 1); // } // // } else { // intent.putExtra("english", mSelectedItemData.speak); // intent.putExtra("chinese", mSelectedItemData.trans); // if (mSelectedItemData.type == SpeakItemData.Define.SPEAK_TYPE_TRANS) // { // intent.putExtra("chOrEn", 1); // } else { // intent.putExtra("chOrEn", 0); // } // // } startActivityForResult(intent, 0); } private void deleteSelected(int nIndex) { mSpeakAdapter.removeItem(nIndex, mSelectedItemData); mSpeakAdapter.notifyDataSetChanged(); } private void shareText() { Intent mailIntent = new Intent(Intent.ACTION_SEND); mailIntent.setType("text/plain"); mailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, ""); mailIntent .putExtra(android.content.Intent.EXTRA_TEXT, mSelectedItemData.speak + "\n" + mSelectedItemData.trans); mailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (UserInfo.S2T_CH2EN.equals(mUser.s2sType)) { startActivity(Intent.createChooser(mailIntent, "����")); } else { startActivity(Intent.createChooser(mailIntent, "Send")); } } public void sendSMS1(String text) { Uri smsToUri = Uri.parse("smsto:0"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); sendIntent.putExtra("sms_body", text); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent); } private void changeInputTextModel(boolean bText) { if (bText) { mBtnSendInput.setVisibility(View.VISIBLE); mEditInput.setVisibility(View.VISIBLE); // mBtnSendInput .setEnabled(true); mEditInput.setEnabled(true); // mBtnRecord.setVisibility(View.INVISIBLE); // mInterpretView.setRecordLayoutDisp(View.INVISIBLE); m_btn_record.setVisibility(View.GONE); if (mListViewHeight == 0) { mListViewHeight = mListView.getHeight(); } mHandlerKeyboard.postDelayed(mKeyboardRunnable, 100); } else { mBtnSendInput.setVisibility(View.INVISIBLE); mEditInput.setVisibility(View.INVISIBLE); // mBtnRecord.setVisibility(View.VISIBLE); // mInterpretView.setRecordLayoutDisp(View.VISIBLE); m_btn_record.setVisibility(View.VISIBLE); mHandlerKeyboard.removeCallbacks(mKeyboardRunnable); } if (mIsInputTextModel) { mBtnChangeInput.setBackgroundResource(R.drawable.trans_bottorm_button_mic); } else { mBtnChangeInput.setBackgroundResource(R.drawable.trans_bottorm_button_pen); } } @Override public void onClick(View arg0) { closePM(); TextPlayer.getInstance().stop(); switch (arg0.getId()) { case R.id.btn_change_input: mIsInputTextModel = !mIsInputTextModel; changeInputTextModel(mIsInputTextModel); break; case R.id.btn_send_input: // iTencent.sendWeibo("��Ѷ΢������", this); transInputText(); break; case R.id.m_btn_record: // mInterpretView.setRecordLayoutDisp(View.VISIBLE); // mDialog.show(); // btnClickflag = true; // m_btn_record.setEnabled(false); // mInterpretView.showPopWindowLocation(); // mDialog.show(); LogInfo.LogOutE("haitian", "---------------m_btn_record------------"); break; case R.id.btn_change_language: // if (UserInfo.S2T_EN2CH.equals(mUser.s2sType)) { // setS2sType(UserInfo.S2T_CH2EN); // } else { // setS2sType(UserInfo.S2T_EN2CH); // } showPopChangeLanguage(arg0); break; case R.id.btn_cancel: mDialog.onRecognizerViewCancel(); mInterpretView.dismissPopWindow(); break; case R.id.btn_bg: case R.id.imagenovoiceanim: mDialog.onRecognizerViewRecord(); LogInfo.LogOutE("haitian", "---------------stop record------------"); break; // case R.id.btn_cancel: // mDialog.onRecognizerViewCancel(); // mInterpretView.setRecordLayoutDisp(View.GONE); // break; // case R.id.btn_bg: // case R.id.imagenovoiceanim: // mDialog.onRecognizerViewRecord(); // LogInfo.LogOutE("haitian", "---------------stop record------------"); // break; case R.id.btn_record: TextPlayer.getInstance().stop(); // if (!btnClickflag) { // btnClickflag = true; // mDialog.show(); // mInterpretView.setBtnRecordEnable(true); // } else { // btnClickflag = false; // mDialog.close(); // mInterpretView.setRecordLayoutDisp(View.GONE); // } if (!btnClickflag) { btnClickflag = true; mDialog.show(); mInterpretView.setBtnRecordEnable(true); } else { btnClickflag = false; mDialog.close(); mInterpretView.dismissPopWindow(); } LogInfo.LogOutE("haitian", "---------------btn_record------------"); break; } } /** * ʶ��ť���� * * @param flag */ // private void btnDispProcess(boolean flag) { // if (flag) { // mBtnChangeInput.setVisibility(View.INVISIBLE); // mBtnLanguage.setVisibility(View.INVISIBLE); // } else { // mBtnChangeInput.setVisibility(View.VISIBLE); // mBtnLanguage.setVisibility(View.VISIBLE); // } // } private void btnDispProcess(boolean flag) { if (flag) { mInterpretView.setBtnCancelDisp(View.VISIBLE); } else { mInterpretView.setBtnCancelDisp(View.GONE); } } private void btnCancelDisp(boolean flag) { if (flag) { mInterpretView.setBtnCancelDisp(View.VISIBLE); mBtnLanguage.setVisibility(View.GONE); } else { mInterpretView.setBtnCancelDisp(View.GONE); mBtnChangeInput.setVisibility(View.VISIBLE); mBtnLanguage.setVisibility(View.VISIBLE); } } public static void setIsDeletefromMyLiberaryTrue() { isDeletefromMyLiberary = true; } @Override protected void onResume() { super.onResume(); // ����״̬���� setOnlyRecoginze(false); if (isDeletefromMyLiberary == true) { if (mSpeakAdapter != null) { mSpeakAdapter.notifyDataSetChanged(); isDeletefromMyLiberary = false; } } if(mUser.isLClickRecord()){ mDialog.setRecordAutoStop(false); m_btn_record.setBackgroundResource(R.drawable.long_put_speak); }else{ mDialog.setRecordAutoStop(true); m_btn_record.setBackgroundResource(R.drawable.trans_bottorm_button_speak); } } private void transInputText(String str) { mCurrentTransText = str.trim() + ""; if (mCurrentTransText.length() > 0) { mBtnSendInput.setEnabled(false); if (UserInfo.S2T_CH2EN.equals(this.mUser.s2sType)) { this.mTranslater.transCH2EN(mCurrentTransText, false); } else { this.mTranslater.transEN2CH(mCurrentTransText, false); } } InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditInput.getWindowToken(), 0); } private void transInputText() { mCurrentTransText = mEditInput.getText().toString().trim(); if (mCurrentTransText.length() > 0) { mBtnSendInput.setEnabled(false); if(PublicArithmetic.chTandEnF(mCurrentTransText)){ this.mTranslater.transCH2EN(mCurrentTransText, false); }else{ this.mTranslater.transEN2CH(mCurrentTransText, false); } // if (UserInfo.S2T_CH2EN.equals(this.mUser.s2sType)) { // // this.mTranslater.transCH2EN(mCurrentTransText, false); // } else { // this.mTranslater.transEN2CH(mCurrentTransText, false); // } } InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditInput.getWindowToken(), 0); } public void speakViewAdapterCheckedChange(SpeakItemData data, String cmd) { mSelectedItemData = data; selectDo(); } public void onSpeakViewWaitBegin() { showRecordkCtrls(false); isWorking = true; } public void onSpeakViewWaitEnd() { showRecordkCtrls(true); isWorking = false; } private void showRecordkCtrls(boolean bShow) { if (bShow) { changeInputTextModel(mIsInputTextModel); mBtnChangeInput.setEnabled(true); } else { mBtnChangeInput.setEnabled(false); mEditInput.setEnabled(false); } } public void onSpeakViewError(int error) { if (error == EngineResultFlag.CONNECT_ERROR) { alertDialog("��ʾ", "û���ҵ����磡", "��"); } else { alertDialog("��ʾ", "�����ϴ����ݴ���" + error, "��"); } onSpeakViewWaitEnd(); } private void alertDialog(String title, String msg, String btn) { new AlertDialog.Builder(this).setTitle(title).setMessage(msg).setPositiveButton(btn, null).show(); } public void onSpeakViewResultByLianxuR(SpeakItemData data) { if (data == null) { // alertDialog("��ʾ","����˵һ��","��"); return; } mSpeakAdapter.addItem(data); mSpeakAdapter.setFocus(data); updateListView(); mSpeakAdapter.smoothToBottomWithAnim(mListView); } public void onTranslatorViewResult(SpeakItemData data) { if (data == null) { // alertDialog("��ʾ","����˵һ��","��"); return; } mResultTipAudio.play(); mSpeakAdapter.addItem(data); mSpeakAdapter.setFocus(data); // mSpeakAdapter.updateAfterSpeak(data); mEditInput.setText(data.speak); // mSpeakAdapter.notifyDataSetChanged(); updateListView(); // int nSelection = mSpeakAdapter.getCount() - 1; // mListView.setSelection(nSelection); // �������� mSpeakAdapter.smoothToBottomWithAnim(mListView); } public void onSpeakViewResult(SpeakItemData data) { if (data == null) { // alertDialog("��ʾ","����˵һ��","��"); return; } // SQLiteDom sqliteDom = new SQLiteDom(); // KouyiRecord kouyi = new KouyiRecord(); // if (data.isExistTrans()) { // kouyi.setSaid(data.speak); // kouyi.setTranslated(data.trans); // } // else { // kouyi.setSaid(data.speak); // kouyi.setTranslated(""); // } // // sqliteDom.insertRecord(kouyi); mResultTipAudio.play(); // mSpeakAdapter.addItem(data); mSpeakAdapter.updateAfterSpeak(data); mSpeakAdapter.setFocus(data); mEditInput.setText(data.speak); mSpeakAdapter.notifyDataSetChanged(); // updateListView(); // int nSelection = mSpeakAdapter.getCount() - 1; // mListView.setSelection(nSelection); // �������� // mSpeakAdapter.smoothToBottomWithAnim(mListView); } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } public void setLocaleTTS(boolean localeTTS) { // TODO Auto-generated method stub } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { mDialog.close(); mInterpretView.dismissPopWindow(); // mInterpretView.dismissPopWindow(); } return super.onKeyDown(keyCode, event); } @Override protected void onPause() { closePM(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditInput.getWindowToken(), 0); super.onPause(); } private void commontRecord(int position, final int flag) { if (mSelectedItemData.flag == 3) { mSelectedItemData.flag = flag; mSpeakAdapter.commont(position, mSelectedItemData); new Thread() { public void run() { HttpGetQtEv httpGetQtEv = new HttpGetQtEv(); String result = httpGetQtEv.setEvToServer(mSelectedItemData.taskId, flag); } }.start(); } else { mSelectedItemData.flag = flag; mSpeakAdapter.commont(position, mSelectedItemData); } mSpeakAdapter.notifyDataSetChanged(); } @Override public boolean onTouch(View v, MotionEvent event) { if(v==m_btn_record){ if(mUser.isLClickRecord()){ switch(event.getAction()){ case MotionEvent.ACTION_DOWN: mInterpretView.showPopWindowLocation(); mDialog.show(); break; case MotionEvent.ACTION_UP: mDialog.onRecognizerViewRecord(); break; } }else{ switch(event.getAction()){ case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_UP: mInterpretView.showPopWindowLocation(); mDialog.show(); break; } } } return false; } // //�������ݱ༭�� // private PopupWindow popEdit; // private EditText edtContent; // private Button btnSend; // private Button btnCancle; // private TextView tvCount; // private int count = 140; // public void initPopEditWC(View view){ // edtContent = (EditText) view.findViewById(R.id.edtContent); // btnSend = (Button) view.findViewById(R.id.btnSend); // btnCancle = (Button) view.findViewById(R.id.btnCancle); // tvCount = (TextView) view.findViewById(R.id.tvCount); // // } // 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); // // } // }); // btnSend.setOnClickListener(new View.OnClickListener() { // // @Override // public void onClick(View v) { // popEdit.dismiss(); // switch(a){ // case 2: // MainActivity.iSina.sendWeibo(edtContent.getText().toString().trim(), // InterpretActivity.this); // break; // case 3: // MainActivity.iTencent.sendWeibo(edtContent.getText().toString().trim(), // InterpretActivity.this); // break; // case 4: // MainActivity.iRenren.sendWeibo(edtContent.getText().toString().trim(), // InterpretActivity.this); // break; // case 5: // MainActivity.ikaixin.sendWeibo(edtContent.getText().toString().trim(), // InterpretActivity.this); // break; // } // // } // }); // btnCancle.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; // } }