Skip to content

Commit 8ad4fdf

Browse files
committed
Merge pull request #3599 from wordpress-mobile/issue/3594-webview-crash-on-app-start
Fix #3594 webview crash on app start
2 parents 5c5bffa + 4627b55 commit 8ad4fdf

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

WordPress/src/main/java/org/wordpress/android/WordPress.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.os.StrictMode;
1515
import android.os.SystemClock;
1616
import android.text.TextUtils;
17+
import android.util.AndroidRuntimeException;
1718
import android.webkit.WebView;
1819

1920
import com.android.volley.RequestQueue;
@@ -574,7 +575,14 @@ public static String getLoginUrl(Blog blog) {
574575
public static String getDefaultUserAgent() {
575576
if (mDefaultUserAgent == null) {
576577
// TODO: use WebSettings.getDefaultUserAgent() after upgrade to API level 17+
577-
mDefaultUserAgent = new WebView(getContext()).getSettings().getUserAgentString();
578+
try {
579+
// Catch AndroidRuntimeException that could be raised by the WebView() constructor.
580+
// See https://github.com/wordpress-mobile/WordPress-Android/issues/3594
581+
mDefaultUserAgent = new WebView(getContext()).getSettings().getUserAgentString();
582+
} catch (AndroidRuntimeException e) {
583+
// init with the empty string, it's a rare issue
584+
mDefaultUserAgent = "";
585+
}
578586
}
579587
return mDefaultUserAgent;
580588
}
@@ -592,8 +600,13 @@ public static String getDefaultUserAgent() {
592600
private static String mUserAgent;
593601
public static String getUserAgent() {
594602
if (mUserAgent == null) {
595-
mUserAgent = getDefaultUserAgent() + " "
596-
+ USER_AGENT_APPNAME + "/" + PackageUtils.getVersionName(getContext());
603+
String defaultUserAgent = getDefaultUserAgent();
604+
if (TextUtils.isEmpty(defaultUserAgent)) {
605+
mUserAgent = USER_AGENT_APPNAME + "/" + PackageUtils.getVersionName(getContext());
606+
} else {
607+
mUserAgent = defaultUserAgent + " "+ USER_AGENT_APPNAME + "/"
608+
+ PackageUtils.getVersionName(getContext());
609+
}
597610
}
598611
return mUserAgent;
599612
}

0 commit comments

Comments
 (0)