fix(android): add toast when browser fails to open

This commit is contained in:
Marc Durdin 2022-08-23 07:41:56 +10:00
parent 127fb3b4e0
commit f90eaee6dd
9 changed files with 31 additions and 2 deletions

View file

@ -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;
}

View file

@ -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();

View file

@ -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();
}
}
}

View file

@ -247,4 +247,7 @@
<!-- Context: KMP Package strings -->
<string name="minimum_keyboard_version_not_supported" comment="Notification when keyboard has functionality not supported by current Keyman">
Keyboard requires a newer version of Keyman</string>
<!-- Context: anywhere -->
<string name="unable_to_open_browser" comment="Notification when a browser activity cannot be launched">Unable to launch web browser</string>
</resources>

View file

@ -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();
}
}
}

View file

@ -3,10 +3,10 @@
<!-- Device type -->
<string name="device_type" translatable="false">AndroidMobile</string>
<!-- Application name (Keyman Engine for Android) -->
<string name="app_name" translatable="false">KMEA</string>
<!-- Context: Title for list -->
<plurals name="title_keyboards">
<item quantity="one">Keyboard</item>
@ -267,4 +267,6 @@
<!-- Context: Other strings -->
<string name="help_bubble_text">Tap here to change keyboard</string>
<!-- Context: anywhere -->
<string name="unable_to_open_browser" comment="Notification when a browser activity cannot be launched">Unable to launch web browser</string>
</resources>

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -42,4 +42,6 @@
<!-- Context: KMP Package strings -->
<string name="invalid_metadata" comment="kmp.json metadata file is invalid or missing in package">Invalid/Missing metadata in package</string>
<!-- Context: anywhere -->
<string name="unable_to_open_browser" comment="Notification when a browser activity cannot be launched">Unable to launch web browser</string>
</resources>