]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Check isFinishing when creating a Toast in some cases.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 17 Apr 2018 20:41:56 +0000 (22:41 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 17 Apr 2018 20:41:56 +0000 (22:41 +0200)
For code that may be run in the background this
is necessary to avoid a BadTokenException when
trying to display the Toast with no active window.

AndroidManifest.xml
src/com/hughes/android/dictionary/DictionaryActivity.java
src/com/hughes/android/dictionary/DictionaryManagerActivity.java

index 192b804493595317f8b640301d8d5787c285a9f2..647d12df21cd89d7a52c0f736336bbe1029a421b 100644 (file)
@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.hughes.android.dictionary"
     android:installLocation="auto"
-    android:versionCode="99"
+    android:versionCode="100"
     android:versionName="5.4.5" >
 
     <uses-sdk
index eb3b2a2fff0b6522722a95ba38e0e783f9903afe..8ab56277b2b6832ae274353f73d1adc8982498d2 100644 (file)
@@ -784,7 +784,8 @@ public class DictionaryActivity extends ActionBarActivity {
                 Log.e(LOG, "TTS not available in this language: ttsResult=" + ttsResult);
             }
         } catch (Exception e) {
-            Toast.makeText(this, getString(R.string.TTSbroken), Toast.LENGTH_LONG).show();
+            if (!isFinishing())
+                Toast.makeText(this, getString(R.string.TTSbroken), Toast.LENGTH_LONG).show();
         }
     }
 
index 2bbe1fc8a90543e86c75aeaaaac5acca2c70b03c..69e5645333c87315bafe38e086353141310740c7 100644 (file)
@@ -186,8 +186,9 @@ public class DictionaryManagerActivity extends ActionBarActivity {
                 }
 
                 Log.w(LOG, "Download finished: " + dest + " Id: " + downloadId);
-                Toast.makeText(context, getString(R.string.unzippingDictionary, dest),
-                               Toast.LENGTH_LONG).show();
+                if (!isFinishing())
+                    Toast.makeText(context, getString(R.string.unzippingDictionary, dest),
+                                   Toast.LENGTH_LONG).show();
 
                 if (unzipInstall(context, Uri.parse(dest), dest, true)) {
                     finishedDownloadIds.add(downloadId);
@@ -233,8 +234,9 @@ public class DictionaryManagerActivity extends ActionBarActivity {
             zipOut = new FileOutputStream(targetFile);
             copyStream(zipFile, zipOut);
             application.backgroundUpdateDictionaries(dictionaryUpdater);
-            Toast.makeText(context, getString(R.string.installationFinished, dest),
-                           Toast.LENGTH_LONG).show();
+            if (!isFinishing())
+                Toast.makeText(context, getString(R.string.installationFinished, dest),
+                               Toast.LENGTH_LONG).show();
             result = true;
         } catch (Exception e) {
             String msg = getString(R.string.unzippingFailed, dest + ": " + e.getMessage());