diff options
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java b/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java index 9355c0c15..30852c970 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java +++ b/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java @@ -1,6 +1,7 @@ package de.danoeh.antennapod.view; import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.graphics.Color; @@ -15,10 +16,15 @@ import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; + +import androidx.core.content.ContextCompat; import androidx.core.util.Consumer; import androidx.core.view.ViewCompat; + import com.google.android.material.snackbar.Snackbar; + import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.core.util.Converter; import de.danoeh.antennapod.core.util.IntentUtils; import de.danoeh.antennapod.core.util.NetworkUtils; @@ -94,6 +100,19 @@ public class ShownotesWebView extends WebView implements View.OnLongClickListene selectedUrl = r.getExtra(); showContextMenu(); return true; + } else if (r != null && r.getType() == HitTestResult.EMAIL_TYPE) { + Log.d(TAG, "E-Mail of webview was long-pressed. Extra: " + r.getExtra()); + ClipboardManager clipboardManager = ContextCompat.getSystemService(this.getContext(), + ClipboardManager.class); + if (clipboardManager != null) { + clipboardManager.setPrimaryClip(ClipData.newPlainText("AntennaPod", r.getExtra())); + } + if (this.getContext() instanceof MainActivity) { + ((MainActivity) this.getContext()).showSnackbarAbovePlayer( + getResources().getString(R.string.copied_to_clipboard), + Snackbar.LENGTH_SHORT); + } + return true; } selectedUrl = null; return false; |