From 05e6e4d2bdc7e5848060bd7a114d5f52e604abf4 Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Sun, 18 Dec 2016 16:10:48 +0100 Subject: [PATCH] Reduce messages by broadcast --- .../activity/DiasporaStreamFragment.java | 3 --- .../web/ContextMenuWebView.java | 11 ++-------- .../web/CustomWebViewClient.java | 1 + .../web/DiasporaStreamWebChromeClient.java | 1 + .../dfa/diaspora_android/web/WebHelper.java | 20 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 +- 6 files changed, 25 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java index 163c64d0..c2ecd631 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java @@ -332,7 +332,6 @@ public class DiasporaStreamFragment extends BrowserFragment { @JavascriptInterface public void setUserProfile(final String webMessage) throws JSONException { final DiasporaUserProfile pup = ((App) getActivity().getApplication()).getDiasporaUserProfile(); - AppLog.spam(this, "StreamFragment.JavaScriptInterface.setUserProfile()"); if (pup.isRefreshNeeded()) { AppLog.v(this, "DiasporaUserProfile needs refresh; Try to parse JSON"); pup.parseJson(webMessage); @@ -341,8 +340,6 @@ public class DiasporaStreamFragment extends BrowserFragment { pup.analyzeUrl(webView.getUrl()); } }); - } else { - AppLog.spam(this, "No DiasporaUserProfile refresh needed"); } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java b/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java index f9fc22fb..8dd20368 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java @@ -58,7 +58,7 @@ public class ContextMenuWebView extends NestedWebView { private final Context context; private Activity parentActivity; - private String lasLoadUrl = ""; + private String lastLoadUrl = ""; public ContextMenuWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); @@ -226,14 +226,7 @@ public class ContextMenuWebView extends NestedWebView { @Override public void loadUrl(String url) { super.loadUrl(url); - - // Don't spam intents ;) - if (!lasLoadUrl.equals(url)) { - Intent updateActivityTitleIntent = new Intent(MainActivity.ACTION_UPDATE_TITLE_FROM_URL); - updateActivityTitleIntent.putExtra(MainActivity.EXTRA_URL, getUrl()); - LocalBroadcastManager.getInstance(context).sendBroadcast(updateActivityTitleIntent); - } - lasLoadUrl = url; + WebHelper.sendUpdateTitleByUrlIntent(url, getContext()); } public void setParentActivity(Activity activity) { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java index 8479efa3..11480f05 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java @@ -29,6 +29,7 @@ import com.github.dfa.diaspora_android.activity.MainActivity; public class CustomWebViewClient extends WebViewClient { private final App app; + private String lastLoadUrl =""; public CustomWebViewClient(App app, WebView webView) { this.app = app; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/DiasporaStreamWebChromeClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/DiasporaStreamWebChromeClient.java index d06556d4..70e16f6c 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/DiasporaStreamWebChromeClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/DiasporaStreamWebChromeClient.java @@ -45,6 +45,7 @@ public class DiasporaStreamWebChromeClient extends FileUploadWebChromeClient { public void onProgressChanged(WebView wv, int progress) { super.onProgressChanged(wv, progress); WebHelper.optimizeMobileSiteLayout(wv); + WebHelper.sendUpdateTitleByUrlIntent(wv.getUrl(), wv.getContext()); if (progress > 0 && progress <= 85) { WebHelper.getUserProfile(wv); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java index a82df182..d4ce510a 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java @@ -20,12 +20,16 @@ package com.github.dfa.diaspora_android.web; import android.content.Context; +import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.support.v4.content.LocalBroadcastManager; import android.text.Html; import android.webkit.URLUtil; import android.webkit.WebView; +import com.github.dfa.diaspora_android.activity.MainActivity; + /** * Created by Gregor Santner on 07.08.16. * https://gsantner.github.io @@ -102,4 +106,20 @@ public class WebHelper { " }" + "})();"); } + + private static String lastUpdateTitleByUrl =""; + public static synchronized void sendUpdateTitleByUrlIntent(String url, Context context){ + // Ignore javascript stuff + if (url != null && url.startsWith("javascript:")){ + return; + } + + // Don't spam intents + if (lastUpdateTitleByUrl != null && !lastUpdateTitleByUrl.equals(url) && url != null) { + Intent updateActivityTitleIntent = new Intent(MainActivity.ACTION_UPDATE_TITLE_FROM_URL); + updateActivityTitleIntent.putExtra(MainActivity.EXTRA_URL, url); + LocalBroadcastManager.getInstance(context).sendBroadcast(updateActivityTitleIntent); + } + lastUpdateTitleByUrl = url; + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8094fa76..634a2d84 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -113,5 +113,5 @@ https Pod address Missing value - Jump to last visited page? + Jump to last visited page in stream?