<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hughes.android.dictionary"
android:installLocation="auto"
- android:versionCode="23"
- android:versionName="4.0.1" >
+ android:versionCode="24"
+ android:versionName="5.0.0" >
<uses-sdk
android:minSdkVersion="10"
<!--
@author Dominik Köppl
- Added two different intents to catch simple and advanced queries from other extern applications.
+ Added two different intents to catch simple and advanced queries from other external applications.
-->
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView.ScaleType;
-import android.widget.LinearLayout;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.hughes.android.dictionary.DictionaryInfo.IndexInfo;
import com.hughes.android.dictionary.engine.Dictionary;
import com.hughes.android.dictionary.engine.Language;
-import com.hughes.android.dictionary.engine.TransliteratorManager;
import com.hughes.android.dictionary.engine.Language.LanguageResources;
-import com.hughes.android.util.IntentLauncher;
+import com.hughes.android.dictionary.engine.TransliteratorManager;
import com.hughes.android.util.PersistentObjectCache;
import com.hughes.util.ListUtil;
import com.ibm.icu.text.Collator;
final List<String> dictionaryFilesOrdered = new ArrayList<String>();
final Map<String, DictionaryInfo> uncompressedFilenameToDictionaryInfo = new LinkedHashMap<String, DictionaryInfo>();
+
+ /**
+ * Sometimes a deserialized version of this datastructure isn't valid.
+ * @return
+ */
+ boolean isValid() {
+ return uncompressedFilenameToDictionaryInfo != null && dictionaryFilesOrdered != null;
+ }
}
DictionaryConfig dictionaryConfig = null;
int languageButtonPixels = -1;
- // static final class DictionaryHistory implements Serializable {
- // private static final long serialVersionUID = -4842995032541390284L;
- // // User-ordered list, persisted, just the ones that are/have been
- // present.
- // final List<DictionaryLink> dictionaryLinks = new
- // ArrayList<DictionaryLink>();
- // }
- // DictionaryHistory dictionaryHistory = null;
-
static synchronized void staticInit(final Context context) {
if (DOWNLOADABLE_UNCOMPRESSED_FILENAME_NAME_TO_DICTIONARY_INFO != null) {
return;
if (dictionaryConfig == null) {
dictionaryConfig = new DictionaryConfig();
}
+ if (!dictionaryConfig.isValid()) {
+ dictionaryConfig = new DictionaryConfig();
+ }
// Theme stuff.
setTheme(getSelectedTheme().themeId);
uiHandler.post(new Runnable() {
@Override
public void run() {
- setListAdapater();
+ setMyListAdapater();
}
});
}
final InputStream zipIn = zipFile.getInputStream(zipEntry);
File targetFile = new File(application.getDictDir(), zipEntry.getName());
if (targetFile.exists()) {
- targetFile.renameTo(new File(targetFile.getAbsolutePath().replace(".quickdic", "bak.quickdic")));
+ targetFile.renameTo(new File(targetFile.getAbsolutePath().replace(".quickdic", ".bak.quickdic")));
targetFile = new File(application.getDictDir(), zipEntry.getName());
}
final OutputStream zipOut = new FileOutputStream(targetFile);
showDownloadable.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- onShowLocalChanged();
+ onShowDownloadableChanged();
}
});
registerReceiver(broadcastReceiver, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));
- setListAdapater();
+ setMyListAdapater();
registerForContextMenu(getListView());
final File dictDir = application.getDictDir();
@Override
public boolean onQueryTextChange(String filterText) {
- setListAdapater();
+ setMyListAdapater();
return true;
}
});
}
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- showDownloadable.setChecked(prefs.getBoolean(C.SHOW_DOWNLOADABLE, false));
+ showDownloadable.setChecked(prefs.getBoolean(C.SHOW_DOWNLOADABLE, true));
if (!blockAutoLaunch &&
getIntent().getBooleanExtra(C.CAN_AUTO_LAUNCH_DICT, true) &&
application.backgroundUpdateDictionaries(dictionaryUpdater);
- setListAdapater();
+ setMyListAdapater();
}
@Override
@Override
public boolean onMenuItemClick(android.view.MenuItem item) {
application.moveDictionaryToTop(row.dictionaryInfo);
- setListAdapater();
+ setMyListAdapater();
return true;
}
});
@Override
public boolean onMenuItemClick(android.view.MenuItem item) {
application.deleteDictionary(row.dictionaryInfo);
- setListAdapater();
+ setMyListAdapater();
return true;
}
});
}
}
- private void onShowLocalChanged() {
- setListAdapater();
+ private void onShowDownloadableChanged() {
+ setMyListAdapater();
Editor prefs = PreferenceManager.getDefaultSharedPreferences(this).edit();
prefs.putBoolean(C.SHOW_DOWNLOADABLE, showDownloadable.isChecked());
prefs.commit();
}
- private void setListAdapater() {
+ private void setMyListAdapater() {
final String filter = filterSearchView == null ? "" : filterSearchView.getQuery()
.toString();
final String[] filters = filter.trim().toLowerCase().split("(\\s|-)+");
final boolean updateAvailable = application.updateAvailable(dictionaryInfo);
final Button downloadButton = (Button) row.findViewById(R.id.downloadButton);
if (!canLaunch || updateAvailable) {
+ final DictionaryInfo downloadable = application.getDownloadable(dictionaryInfo.uncompressedFilename);
downloadButton
.setText(getString(
R.string.downloadButton,
- application.getDownloadable(dictionaryInfo.uncompressedFilename).zipBytes / 1024.0 / 1024.0));
+ downloadable.zipBytes / 1024.0 / 1024.0));
downloadButton.setMinWidth(application.languageButtonPixels * 3 / 2);
downloadButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
- downloadDictionary(dictionaryInfo);
+ downloadDictionary(downloadable.downloadUrl);
}
});
} else {
return row;
}
- private void downloadDictionary(final DictionaryInfo dictionaryInfo) {
+ private void downloadDictionary(final String downloadUrl) {
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(
- Uri.parse(dictionaryInfo.downloadUrl));
+ Uri.parse(downloadUrl));
try {
- final String destFile = new File(new URL(dictionaryInfo.downloadUrl).getFile())
+ final String destFile = new File(new URL(downloadUrl).getFile())
.getName();
Log.d(LOG, "Downloading to: " + destFile);
\r
package com.hughes.android.dictionary;\r
\r
-import android.app.Activity;\r
import android.content.Intent;\r
import android.os.Bundle;\r
import android.util.Log;\r
import android.view.View.OnClickListener;\r
import android.widget.Button;\r
\r
+import com.actionbarsherlock.app.ActionBar;\r
+import com.actionbarsherlock.app.SherlockActivity;\r
import com.hughes.util.StringUtil;\r
\r
-public final class HtmlDisplayActivity extends Activity {\r
+public final class HtmlDisplayActivity extends SherlockActivity {\r
\r
static final String LOG = "QuickDic";\r
\r
\r
super.onCreate(savedInstanceState);\r
setContentView(R.layout.html_display_activity);\r
+ \r
+ ActionBar actionBar = getSupportActionBar();\r
+ actionBar.setDisplayHomeAsUpEnabled(true);\r
\r
final int htmlRes = getIntent().getIntExtra(HTML_RES, -1);\r
final String html;\r