From e905504dff275deebf39ad97182310c3b34bd16b Mon Sep 17 00:00:00 2001 From: massimiliano Date: Fri, 23 Nov 2018 19:20:59 +0100 Subject: [PATCH] Added option For user to choose how to open youtube links --- .../dfa/diaspora_android/util/AppSettings.java | 4 ++++ .../web/CustomWebViewClient.java | 16 +++++----------- .../drawable/ic_open_yt_external_black_24px.xml | 5 +++++ .../main/res/values/strings-not_translatable.xml | 1 + app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/preferences__master.xml | 7 +++++++ 6 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/drawable/ic_open_yt_external_black_24px.xml diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java index 8d3bb655..8ae76fea 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java @@ -359,6 +359,10 @@ public class AppSettings extends SharedPreferencesPropertyBackend { return getBool(R.string.pref_key__topbar_stream_shortcut, false); } + public boolean isOpenYoutubeExternalEnabled() { + return getBool(R.string.pref_key__open_youtube_external_enabled, true); + } + public String getScreenRotation() { return getString(R.string.pref_key__screen_rotation, R.string.rotation_val_system); } 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 8a19fb85..848e1b65 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 @@ -40,10 +40,7 @@ public class CustomWebViewClient extends WebViewClient { private final App app; private String lastLoadUrl = ""; private boolean isAdBlockEnabled = false; - protected Context _context; - - String newpipe = "org.schabi.newpipe";//for checking if app is installed - String youtube = "com.google.android.youtube";//for checking if app is installed + AppSettings appSettings = AppSettings.get(); public CustomWebViewClient(App app, WebView webView) { this.app = app; @@ -63,13 +60,10 @@ public class CustomWebViewClient extends WebViewClient { || url.startsWith("http://" + host)))) { return false; }//make youtube links open external-->never customtab - else if (url.startsWith("https://youtube.com/") || url.startsWith("https://www.youtube.com/") || url.startsWith("https://m.youtube.com/") || url.startsWith("https://youtu.be/")){// && checkNewpipie != null || checkYoutube != null) { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - //Intent checkNewpipie = new Intent(_context.getPackageManager().getLaunchIntentForPackage(newpipe)); - //Intent checkYoutube = new Intent(_context.getPackageManager().getLaunchIntentForPackage(youtube)); - //if (checkNewpipie!=null || checkYoutube != null){view.getContext().startActivity(intent);} - view.getContext().startActivity(intent); - return true; + else if (appSettings.isOpenYoutubeExternalEnabled()&&(url.startsWith("https://youtube.com/") || url.startsWith("https://www.youtube.com/") || url.startsWith("https://m.youtube.com/") || url.startsWith("https://youtu.be/"))){ + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + view.getContext().startActivity(intent); + return true; } else { Intent i = new Intent(MainActivity.ACTION_OPEN_EXTERNAL_URL); i.putExtra(MainActivity.EXTRA_URL, url); diff --git a/app/src/main/res/drawable/ic_open_yt_external_black_24px.xml b/app/src/main/res/drawable/ic_open_yt_external_black_24px.xml new file mode 100644 index 00000000..14e620e1 --- /dev/null +++ b/app/src/main/res/drawable/ic_open_yt_external_black_24px.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/values/strings-not_translatable.xml b/app/src/main/res/values/strings-not_translatable.xml index aaa5137a..543ee52e 100644 --- a/app/src/main/res/values/strings-not_translatable.xml +++ b/app/src/main/res/values/strings-not_translatable.xml @@ -148,4 +148,5 @@ pref_key__show_title PDF gsantner + pref_key__open_youtube_external_enabled//make youtube open external diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d61d659c..6c542f21 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -253,5 +253,7 @@ The following libraries are used: We took some inspiration and code from LeafPic. Go check it out, it\'s free software as well! Tell me more + Enable to open Youtube links on external app + Youtube links diff --git a/app/src/main/res/xml/preferences__master.xml b/app/src/main/res/xml/preferences__master.xml index 7bb330f9..c1ab7939 100644 --- a/app/src/main/res/xml/preferences__master.xml +++ b/app/src/main/res/xml/preferences__master.xml @@ -73,6 +73,13 @@ android:summary="@string/open_external_links_with_chrome_custom_tabs_description" android:title="@string/pref_title__chrome_custom_tabs_enabled"/> + +