From d64a79dcf84358e390b7c9b0e5d80d6567b4cbe7 Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Mon, 8 Aug 2016 07:41:36 +0200 Subject: [PATCH] . --- .../activity/MainActivity.java | 40 ++++++++++--------- .../dfa/diaspora_android/util/WebHelper.java | 21 ++++++++++ 2 files changed, 43 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index 206156de..0f5408a7 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -131,6 +131,7 @@ public class MainActivity extends AppCompatActivity private Snackbar snackbarExitApp; private Snackbar snackbarNewNotification; private Snackbar snackbarNoInternet; + public String textToBeShared = null; /** * UI Bindings @@ -305,6 +306,10 @@ public class MainActivity extends AppCompatActivity if (progress > 60) { WebHelper.optimizeMobileSiteLayout(wv); + + if(textToBeShared != null){ + WebHelper.shareTextIntoWebView(wv, textToBeShared); + } } progressBar.setVisibility(progress == 100 ? View.GONE : View.VISIBLE); @@ -838,7 +843,6 @@ public class MainActivity extends AppCompatActivity } void handleSendText(Intent intent) { - webView.loadUrl("https://"+podDomain+"/status_messages/new"); String content = WebHelper.replaceUrlWithMarkdown(intent.getStringExtra(Intent.EXTRA_TEXT)); if(appSettings.isAppendSharedViaApp()) { // = \n @@ -847,23 +851,10 @@ public class MainActivity extends AppCompatActivity final String sharedText = WebHelper.escapeHtmlText(content); if (sharedText != null) { - webView.setWebViewClient(new WebViewClient() { - public void onPageFinished(WebView view, String url) { - webView.loadUrl("javascript:(function() { " + - "document.getElementsByTagName('textarea')[0].style.height='110px'; " + - "document.getElementsByTagName('textarea')[0].innerHTML = '" + sharedText + "'; " + - " if(document.getElementById(\"main_nav\")) {" + - " document.getElementById(\"main_nav\").parentNode.removeChild(" + - " document.getElementById(\"main_nav\"));" + - " } else if (document.getElementById(\"main-nav\")) {" + - " document.getElementById(\"main-nav\").parentNode.removeChild(" + - " document.getElementById(\"main-nav\"));" + - " }" + - "})();"); - webView.setWebViewClient(webViewClient); - } - }); + textToBeShared = sharedText; } + webView.stopLoading(); + webView.loadUrl("https://"+podDomain+"/status_messages/new"); } /** @@ -882,7 +873,15 @@ public class MainActivity extends AppCompatActivity final String sharedSubject = WebHelper.escapeHtmlText(subject); final String sharedContent = WebHelper.escapeHtmlText(content); + final String sharedText = "**" + sharedSubject + "** " + sharedContent; + if (sharedText != null) { + textToBeShared = sharedText; + } + webView.stopLoading(); + webView.loadUrl("https://"+podDomain+"/status_messages/new"); + +/* if (subject != null) { webView.setWebViewClient(new WebViewClient() { @@ -901,7 +900,7 @@ public class MainActivity extends AppCompatActivity webView.setWebViewClient(webViewClient); } }); - } + }*/ } //TODO: Implement? @@ -944,6 +943,11 @@ public class MainActivity extends AppCompatActivity podUserProfile.parseJson(webMessage); } } + + @JavascriptInterface + public void contentHasBeenShared(){ + textToBeShared = null; + } } @SuppressWarnings("StatementWithEmptyBody") diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java index ae0abd9c..1fd8ec2c 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java @@ -25,6 +25,7 @@ import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.support.v4.content.ContextCompat; +import android.support.v4.text.TextUtilsCompat; import android.text.Html; import android.webkit.URLUtil; import android.webkit.WebView; @@ -99,6 +100,26 @@ public class WebHelper { "})();"); } + public static void shareTextIntoWebView(final WebView webView, String sharedText){ + sharedText = sharedText.replace("'", "'").replace("\"", """); + webView.loadUrl("javascript:(function() { " + + "if (typeof window.hasBeenSharedTo !== 'undefined') { AndroidBridge.contentHasBeenShared(); return; }" + + "var textbox = document.getElementsByTagName('textarea')[0];" + + "if (textbox) { " + + "document.getElementsByTagName('textarea')[0].style.height='110px'; " + + "document.getElementsByTagName('textarea')[0].innerHTML = '" + sharedText + "'; " + + "window.hasBeenSharedTo = true;" + + "}" + + " if(document.getElementById(\"main_nav\")) {" + + " document.getElementById(\"main_nav\").parentNode.removeChild(" + + " document.getElementById(\"main_nav\"));" + + " } else if (document.getElementById(\"main-nav\")) {" + + " document.getElementById(\"main-nav\").parentNode.removeChild(" + + " document.getElementById(\"main-nav\"));" + + " }" + + "})();"); + } + public static void showAspectList(final WebView wv, final App app) { wv.stopLoading(); PodUserProfile profile = app.getPodUserProfile();