From f90eaee6ddbbbdeb372b3a21351f56de4e1aace6 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 23 Aug 2022 07:41:56 +1000 Subject: [PATCH] fix(android): add toast when browser fails to open --- .../java/com/tavultesoft/kmapro/KMPBrowserActivity.java | 3 +++ .../com/tavultesoft/kmapro/KeyboardSettingsActivity.java | 3 +++ .../main/java/com/tavultesoft/kmapro/MainActivity.java | 9 +++++++++ android/KMAPro/kMAPro/src/main/res/values/strings.xml | 3 +++ .../java/com/tavultesoft/kmea/KeyboardInfoActivity.java | 2 ++ android/KMEA/app/src/main/res/values/strings.xml | 6 ++++-- .../main/java/com/firstvoices/keyboards/FVShared.java | 3 +++ .../java/com/firstvoices/keyboards/MainActivity.java | 2 ++ .../android/app/src/main/res/values/strings.xml | 2 ++ 9 files changed, 31 insertions(+), 2 deletions(-) diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java index ff74db201f..fe217c57e4 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java @@ -18,6 +18,7 @@ import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; +import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import com.tavultesoft.kmea.BaseActivity; @@ -115,6 +116,8 @@ public class KMPBrowserActivity extends BaseActivity { Intent intent = new Intent(Intent.ACTION_VIEW, uri); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); + } else { + Toast.makeText(context, getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); } return true; } diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java index b471fc1cee..dc5519095a 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java @@ -26,6 +26,7 @@ import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; +import android.widget.Toast; import com.tavultesoft.kmea.ConfirmDialogFragment; import com.tavultesoft.kmea.KMHelpFileActivity; @@ -162,6 +163,8 @@ public final class KeyboardSettingsActivity extends AppCompatActivity { i.putExtras(args); if (i.resolveActivity(getPackageManager()) != null) { startActivity(i); + } else { + Toast.makeText(getApplicationContext(), getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); } finish(); diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java index af9b16fbc1..2a9626984a 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java @@ -764,12 +764,21 @@ public class MainActivity extends BaseActivity implements OnKeyboardEventListene Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.android.chrome")); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); + } else { + intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.android.chrome")); + if (intent.resolveActivity(getPackageManager()) != null) { + startActivity(intent); + } else { + Toast.makeText(getApplicationContext(), getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); + } } } catch (android.content.ActivityNotFoundException e) { // Link to Chrome if user is not signed in to Play Store Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.android.chrome")); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); + } else { + Toast.makeText(getApplicationContext(), getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); } } } diff --git a/android/KMAPro/kMAPro/src/main/res/values/strings.xml b/android/KMAPro/kMAPro/src/main/res/values/strings.xml index 09a91b5f60..ed4e5b85a1 100644 --- a/android/KMAPro/kMAPro/src/main/res/values/strings.xml +++ b/android/KMAPro/kMAPro/src/main/res/values/strings.xml @@ -247,4 +247,7 @@ Keyboard requires a newer version of Keyman + + + Unable to launch web browser diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java index 89bab42c66..4b818acf7c 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java @@ -138,6 +138,8 @@ public final class KeyboardInfoActivity extends BaseActivity { i.setData(Uri.parse(customHelpLink)); if (i.resolveActivity(getPackageManager()) != null) { startActivity(i); + } else { + Toast.makeText(context, getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); } } } diff --git a/android/KMEA/app/src/main/res/values/strings.xml b/android/KMEA/app/src/main/res/values/strings.xml index 8f7d20150d..50f52c5ef3 100644 --- a/android/KMEA/app/src/main/res/values/strings.xml +++ b/android/KMEA/app/src/main/res/values/strings.xml @@ -3,10 +3,10 @@ AndroidMobile - + KMEA - + Keyboard @@ -267,4 +267,6 @@ Tap here to change keyboard + + Unable to launch web browser diff --git a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java index 9e8790acda..d308049417 100644 --- a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java +++ b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java @@ -6,6 +6,7 @@ import android.content.SharedPreferences; import android.content.res.AssetManager; import android.net.Uri; import android.util.Log; +import android.widget.Toast; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.data.Keyboard; import com.tavultesoft.kmea.packages.PackageProcessor; @@ -254,6 +255,8 @@ final class FVShared { i.setData(Uri.parse(helpUrl)); if (i.resolveActivity(localContext.getPackageManager()) != null) { localContext.startActivity(i); + } else { + Toast.makeText(localContext, localContext.getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); } } diff --git a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java index 897145ec5f..95309efe48 100644 --- a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java +++ b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java @@ -107,6 +107,8 @@ public class MainActivity extends AppCompatActivity implements OnKeyboardDownloa Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); if (i.resolveActivity(getPackageManager()) != null) { startActivity(i); + } else { + Toast.makeText(context, getString(R.string.unable_to_open_browser), Toast.LENGTH_SHORT).show(); } } diff --git a/oem/firstvoices/android/app/src/main/res/values/strings.xml b/oem/firstvoices/android/app/src/main/res/values/strings.xml index 83edf8f86b..e443e0f717 100644 --- a/oem/firstvoices/android/app/src/main/res/values/strings.xml +++ b/oem/firstvoices/android/app/src/main/res/values/strings.xml @@ -42,4 +42,6 @@ Invalid/Missing metadata in package + + Unable to launch web browser