Skip to content

Commit c171631

Browse files
ReDirected URL from Help center to Browser.
1 parent 622de05 commit c171631

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
androidDatabaseSqlcipher = "4.5.0"
33
androidGradlePlugin = '8.5.2'
44
appcompat = "1.7.0"
5+
browser = "1.8.0"
56
circleimageview = "2.2.0"
67
cardview = "1.0.0"
78
constraintlayout = "2.0.4"
@@ -42,6 +43,7 @@ sentryPluginVersion = "4.11.0"
4243

4344
[libraries]
4445
android-database-sqlcipher = { module = "net.zetetic:android-database-sqlcipher", version.ref = "androidDatabaseSqlcipher" }
46+
browser = { module = "androidx.browser:browser", version.ref = "browser" }
4547
cardview = { module = "androidx.cardview:cardview", version.ref = "cardview" }
4648
circleimageview = { module = "de.hdodenhof:circleimageview", version.ref = "circleimageview" }
4749
constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }

kommunicateui/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ dependencies {
5353
api libs.glide
5454
api libs.cardview
5555
api libs.material
56+
implementation libs.browser
5657
api libs.swiperefreshlayout
5758
implementation libs.media3.exoplayer
5859
implementation libs.media3.ui

kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/webview/KmWebViewActivity.java

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@
1414
import android.os.Bundle;
1515

1616
import androidx.appcompat.widget.Toolbar;
17+
import androidx.browser.customtabs.CustomTabColorSchemeParams;
18+
import androidx.browser.customtabs.CustomTabsIntent;
1719

1820
import android.text.TextUtils;
1921
import android.view.View;
2022
import android.webkit.CookieManager;
21-
import android.webkit.DownloadListener;
2223
import android.webkit.URLUtil;
24+
import android.webkit.WebResourceRequest;
2325
import android.webkit.WebSettings;
2426
import android.webkit.WebView;
2527
import android.webkit.WebViewClient;
@@ -231,13 +233,29 @@ public void loadUrl(String url) {
231233

232234
@Override
233235
public boolean shouldOverrideUrlLoading(WebView view, String url) {
236+
if (isRedirectingFromHelpCenter(Uri.parse(url))) {
237+
openUrlInBrowser(Uri.parse(url));
238+
return true;
239+
}
234240
if (loadingProgressBar != null) {
235241
loadingProgressBar.setVisibility(View.VISIBLE);
236242
}
237243
view.loadUrl(url);
238244
return true;
239245
}
240246

247+
@Override
248+
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
249+
if (isRedirectingFromHelpCenter(request.getUrl())) {
250+
openUrlInBrowser(request.getUrl());
251+
return true;
252+
}
253+
if (loadingProgressBar != null) {
254+
loadingProgressBar.setVisibility(View.VISIBLE);
255+
}
256+
return super.shouldOverrideUrlLoading(view, request);
257+
}
258+
241259
@Override
242260
public void onPageFinished(WebView view, final String url) {
243261
webView.setVisibility(View.VISIBLE);
@@ -287,4 +305,21 @@ public void onPageFinished(WebView view, String url) {
287305
webView.getSettings().setLoadWithOverviewMode(false);
288306
webView.addJavascriptInterface(new KmWebViewJsInterface(KmWebViewActivity.this), JS_INTERFACE_NAME);
289307
}
308+
309+
private boolean isRedirectingFromHelpCenter(Uri url) {
310+
String helpCenterURL = "helpcenter.kommunicate.io";
311+
return webView.getUrl() != null && webView.getUrl().contains(helpCenterURL) && url.getHost() != null && !url.getHost().equals(helpCenterURL);
312+
}
313+
314+
private void openUrlInBrowser(Uri url) {
315+
KmThemeHelper themeHelper = KmThemeHelper.getInstance(this, alCustomizationSettings);
316+
CustomTabsIntent intent = new CustomTabsIntent.Builder()
317+
.setDefaultColorSchemeParams(new CustomTabColorSchemeParams.Builder()
318+
.setToolbarColor(themeHelper.getToolbarColor())
319+
.build())
320+
.setStartAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
321+
.setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
322+
.build();
323+
intent.launchUrl(this, url);
324+
}
290325
}

0 commit comments

Comments
 (0)