@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (PathSelectActivity.FILE_RESULT_CODE == requestCode) { Bundle bundle = null; if (data != null && (bundle = data.getExtras()) != null) { String srcFilePath = bundle.getString("filePath"); File f = new File(srcFilePath); if (f.exists() && f.isFile()) { String fileName = f.getName(); String srcUrl = srcFilePath; String dstUrl = mMemorizePath + "/" + fileName.substring(0, fileName.lastIndexOf(".")) + ".mem"; File memorizeFolder = new File(mMemorizePath); if (!memorizeFolder.exists()) { memorizeFolder.mkdirs(); } MyLog.v(TAG, "onActivityResult()::srcUrl=" + srcUrl); MyLog.v(TAG, "onActivityResult()::dstURL=" + dstUrl); mMemorizeEng.GenerateMemorizeFile(srcUrl, dstUrl); getMemorizeList(); } } } }
@Override protected void onDestroy() { MyLog.v(TAG, "onDestroy()"); mMemorizeEng.releaseMemorizeEng(); super.onDestroy(); }
private void getMemorizeList() { File f = new File(mMemorizePath); int cnt = 0; mMemorizeCnt = 0; if (!f.exists() || !f.isDirectory()) { return; } File[] files = f.listFiles(); cnt = files.length / 3; if (cnt <= 0) { return; } String memorizeFiles[] = new String[cnt]; for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { String fileName = files[i].getName(); String extName = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()).toLowerCase(); if (extName.equalsIgnoreCase("mem")) { memorizeFiles[mMemorizeCnt] = fileName.replace(".mem", ""); mMemorizeCnt++; } } } if (mMemorizeCnt > 0) { mCheckedIndex = -1; Arrays.sort(memorizeFiles, Collator.getInstance(java.util.Locale.CHINA)); mMemorizeFiles = new String[mMemorizeCnt]; mMemorizeInfo = new String[mMemorizeCnt]; for (int i = 0; i < mMemorizeCnt; i++) { mMemorizeFiles[i] = memorizeFiles[i]; if (mMemorizeName.equalsIgnoreCase(mMemorizeFiles[i])) { mCheckedIndex = i; } String mfoFile = mMemorizePath + "/" + memorizeFiles[i] + ".mfo"; int[] cardsProgress = mMemorizeEng.GetCardsProgressFromMfo(mfoFile); if (cardsProgress[1] > 0) { double progress = (double) cardsProgress[0] / (double) cardsProgress[1] * 100; progress = MangoDictUtils.roundDouble(progress, 2, BigDecimal.ROUND_HALF_UP); mMemorizeInfo[i] = mMemorizeFiles[i] + " (" + cardsProgress[0] + " / " + cardsProgress[1] + " [" + Double.toString(progress) + "%])"; } else { mMemorizeInfo[i] = mMemorizeFiles[i]; } } setListAdapter( new ArrayAdapter<String>(this, R.layout.select_dialog_singlechoice, mMemorizeInfo)); if (mCheckedIndex >= 0) { mListView.setItemChecked(mCheckedIndex, true); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyLog.v(TAG, "onCreate()"); requestWindowFeature(Window.FEATURE_NO_TITLE); mMemorizeEng = MemorizeEng.createMemorizeEng(); setContentView(R.layout.memorize_select); SharedPreferences settings = getSharedPreferences(MangoDictEng.DICT_SETTING_PREF_NAME, Activity.MODE_PRIVATE); MangoDictEng.mDictPath = settings.getString(MangoDictEng.DICT_SETTING_PATH, MangoDictEng.DICT_DEFAULT_PATH); mMemorizeName = settings.getString(MemorizeActivity.DICT_SETTING_MEMORIZE_NAME, ""); mMemorizePath = MangoDictEng.mDictPath + "/" + MemorizeActivity.MEMORIZE_FOLDER; ImageButton buttonConfirm = (ImageButton) findViewById(R.id.buttonConfirm); buttonConfirm.setOnClickListener( new OnClickListener() { public void onClick(View v) { MyLog.v(TAG, "buttonConfirm.onClick()"); int position = mListView.getCheckedItemPosition(); if (AdapterView.INVALID_POSITION != position) { String memorizeName = mMemorizeFiles[position]; Intent data = new Intent(MemorizeSelectActivity.this, MemorizeActivity.class); Bundle bundle = new Bundle(); bundle.putString("memorizeName", memorizeName); data.putExtras(bundle); setResult(2, data); } finish(); } }); ImageButton buttonCancle = (ImageButton) findViewById(R.id.buttonCancle); buttonCancle.setOnClickListener( new OnClickListener() { public void onClick(View v) { finish(); } }); ImageButton buttonGenerate = (ImageButton) findViewById(R.id.buttonGenerate); buttonGenerate.setOnClickListener( new OnClickListener() { public void onClick(View v) { MyLog.v(TAG, "buttonGenerate.onClick()"); Intent intent = new Intent(MemorizeSelectActivity.this, PathSelectActivity.class); Bundle bundle = new Bundle(); bundle.putString(PathSelectActivity.DEFAULT_PATH, MangoDictUtils.getSDCardPath()); bundle.putString(PathSelectActivity.CLASS_NAME, "MemorizeSelectActivity"); bundle.putInt(PathSelectActivity.SELECT_TYPE, PathSelectActivity.SELECT_TYPE_FILE); intent.putExtras(bundle); startActivityForResult(intent, PathSelectActivity.FILE_RESULT_CODE); } }); mListView = getListView(); mListView.setItemsCanFocus(false); mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); getMemorizeList(); }