]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Add error messages when dictionary path is not writable.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Wed, 18 Nov 2015 20:54:45 +0000 (21:54 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Wed, 18 Nov 2015 20:54:45 +0000 (21:54 +0100)
res/values/strings.xml
src/com/hughes/android/dictionary/DictionaryManagerActivity.java
src/com/hughes/android/dictionary/PreferenceActivity.java

index 6069e24296f903b3002d35981a21b7d47dc6ffec..6067957a87e34ddd2658bbf758b317a8ed57df68 100644 (file)
@@ -31,6 +31,7 @@
     <string name="unzippingDictionary">Unzipping dictionary: \n%s</string>
     <string name="unzippingFailed">Unzipping failed: \n%s</string>
     <string name="installationFinished">Installation finished: \n%s.</string>
+    <string name="notWritable">Dictionary location %s not writable, change in settings.</string>
 
     <!-- DictionaryActivity -->
     <string name="searchText">Search Text</string>
@@ -96,5 +97,6 @@
     <string name="themeKey">theme</string>
     <string name="themeTitle">UI theme</string>
     <string name="themeSummary">User-interface color theme.</string>
+    <string name="chosenNotWritable">Chosen directory not writable, try one of</string>
 
 </resources>
index d9b1eed447eb87f95940f4e51a97ad7c0a5fb598..127de4358792396ba289327b3673ae7d793d1611 100644 (file)
@@ -173,7 +173,11 @@ public class DictionaryManagerActivity extends ActionBarActivity {
                     Toast.makeText(context, getString(R.string.installationFinished, dest),
                             Toast.LENGTH_LONG).show();
                 } catch (Exception e) {
-                    new AlertDialog.Builder(context).setTitle(getString(R.string.error)).setMessage(getString(R.string.unzippingFailed, dest)).setNeutralButton("Close", null).show();
+                    String msg = getString(R.string.unzippingFailed, dest);
+                    if (!application.getDictDir().canWrite()) {
+                        msg = getString(R.string.notWritable, application.getDictDir().getAbsolutePath());
+                    }
+                    new AlertDialog.Builder(context).setTitle(getString(R.string.error)).setMessage(msg).setNeutralButton("Close", null).show();
                     Log.e(LOG, "Failed to unzip.", e);
                 } finally {
                     localZipFile.delete();
index e1412594bf8b3b9ad0c3986fca85ba75562eb07c..470677a13656b27b89383f8a8e7f9a8faf901be4 100644 (file)
@@ -66,7 +66,19 @@ public class PreferenceActivity extends android.preference.PreferenceActivity
 
         defaultDic.setEntries(entries);
         defaultDic.setEntryValues(entryvalues);
+    }
 
+    @Override
+    protected void onPause() {
+        super.onPause();
+        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+        prefs.unregisterOnSharedPreferenceChangeListener(this);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
         prefs.registerOnSharedPreferenceChangeListener(this);
     }
 
@@ -96,7 +108,7 @@ public class PreferenceActivity extends android.preference.PreferenceActivity
                     dirs += "\n" + externalFilesDir;
             }
             new AlertDialog.Builder(this).setTitle(getString(R.string.error))
-                .setMessage("Chosen directory not writeable, try one of" + dirs)
+                .setMessage(getString(R.string.chosenNotWritable) + dirs)
                     .setNeutralButton("Close", null).show();
         }
     }