@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
- final DictionaryApplication application = (DictionaryApplication) getApplication();
+ DictionaryApplication.INSTANCE.init(getApplicationContext());
+ final DictionaryApplication application = DictionaryApplication.INSTANCE;
setTheme(application.getSelectedTheme().themeId);
-
+
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getString(getString(R.string.quickdicDirectoryKey), "").equals("")) {
prefs.edit().putString(getString(R.string.quickdicDirectoryKey), application.getDictDir().getAbsolutePath()).commit();
prefs.edit().putString(getString(R.string.wordListFileKey), application.getWordListFile().getAbsolutePath()).commit();
}
- /**
- * @author Dominik Köppl Preference: select default dictionary As this
+ /*
+ @author Dominik Köppl Preference: select default dictionary As this
* list is dynamically generated, we have to do it in this
* fashion
*/
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
ListPreference defaultDic = (ListPreference) findPreference(getResources().getString(
- R.string.defaultDicKey));
+ R.string.defaultDicKey));
List<DictionaryInfo> dicts = application.getDictionariesOnDevice(null);
final CharSequence[] entries = new CharSequence[dicts.size()];
final CharSequence[] entryvalues = new CharSequence[dicts.size()];
- for (int i = 0; i < entries.length; ++i)
- {
+ for (int i = 0; i < entries.length; ++i) {
entries[i] = dicts.get(i).dictInfo;
entryvalues[i] = dicts.get(i).uncompressedFilename;
}
prefs.registerOnSharedPreferenceChangeListener(this);
}
- @Override
- public void onContentChanged() {
- super.onContentChanged();
+ private String suggestedPaths(String suffix) {
+ String dirs = "";
+ String externalDir = Environment.getExternalStorageDirectory().getAbsolutePath();
+ if (new File(externalDir).canWrite())
+ dirs += "\n" + externalDir + "/quickDic" + suffix;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ File[] files = getApplicationContext().getExternalFilesDirs(null);
+ for (File f : files) {
+ if (f.canWrite())
+ dirs += "\n" + f.getAbsolutePath() + suffix;
+ }
+ } else {
+ File efd = null;
+ try {
+ efd = getApplicationContext().getExternalFilesDir(null);
+ } catch (Exception ignored) {
+ }
+ if (efd != null) {
+ String externalFilesDir = efd.getAbsolutePath();
+ if (new File(externalFilesDir).canWrite())
+ dirs += "\n" + externalFilesDir + suffix;
+ }
+ }
+ File fd = getApplicationContext().getFilesDir();
+ if (fd.canWrite())
+ dirs += "\n" + fd.getAbsolutePath() + suffix;
+ return dirs;
}
@Override
public void onSharedPreferenceChanged(SharedPreferences p, String v) {
- final DictionaryApplication application = (DictionaryApplication)getApplication();
+ DictionaryApplication.INSTANCE.init(getApplicationContext());
+ final DictionaryApplication application = DictionaryApplication.INSTANCE;
File dictDir = application.getDictDir();
if (!dictDir.isDirectory() || !dictDir.canWrite() ||
- !application.checkFileCreate(dictDir)) {
- String dirs = "";
- String externalDir = Environment.getExternalStorageDirectory().getAbsolutePath();
- if (new File(externalDir).canWrite())
- dirs += "\n" + externalDir + "/quickDic";
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- File[] files = getApplicationContext().getExternalFilesDirs(null);
- for (File f : files) {
- if (f.canWrite())
- dirs += "\n" + f.getAbsolutePath();
- }
- } else {
- File efd = null;
- try {
- efd = getApplicationContext().getExternalFilesDir(null);
- } catch (Exception e) {
- }
- if (efd != null) {
- String externalFilesDir = efd.getAbsolutePath();
- if (new File(externalFilesDir).canWrite())
- dirs += "\n" + externalFilesDir;
- }
- }
+ !DictionaryApplication.checkFileCreate(dictDir)) {
+ String dirs = suggestedPaths("");
+ new AlertDialog.Builder(this).setTitle(getString(R.string.error))
+ .setMessage(getString(R.string.chosenNotWritable) + dirs)
+ .setNeutralButton("Close", null).show();
+ }
+ File wordlist = application.getWordListFile();
+ boolean ok = false;
+ try {
+ ok = wordlist.canWrite() || wordlist.createNewFile();
+ } catch (Exception ignored) {
+ }
+ if (!ok) {
+ String dirs = suggestedPaths("/wordList.txt");
new AlertDialog.Builder(this).setTitle(getString(R.string.error))
- .setMessage(getString(R.string.chosenNotWritable) + dirs)
- .setNeutralButton("Close", null).show();
+ .setMessage(getString(R.string.chosenNotWritable) + dirs)
+ .setNeutralButton("Close", null).show();
}
}
}