summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-François Turcotte <[email protected]>2019-06-27 18:49:45 -0400
committerJean-François Turcotte <[email protected]>2019-06-27 18:49:45 -0400
commit052a220cff715300c07e5681715b7fe97241ed5a (patch)
tree6f72d4c1b35ca1dce47838ce0d43c2027324f9e0
parent9d2d7d528e55657f16406831cf4c2f99f2caf914 (diff)
- Added a new preference "Always open external links" that changes the default behavior of selecting an article
- Activating this preference will make it so that the "Open with..." command is invoked directly when selecting an article, instead of opening the default detail view - The long-press menu on articles remain usable and unchanged
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java57
-rwxr-xr-xorg.fox.ttrss/src/main/res/values/strings.xml2
-rwxr-xr-xorg.fox.ttrss/src/main/res/xml/preferences.xml5
3 files changed, 43 insertions, 21 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
index f513ce98..1b638d48 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
@@ -7,6 +7,7 @@ import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
@@ -464,27 +465,41 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
public void onArticleSelected(Article article, boolean open) {
if (open) {
- HeadlinesFragment hf = (HeadlinesFragment)getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
-
- Intent intent = new Intent(MasterActivity.this, DetailActivity.class);
- intent.putExtra("feed", hf.getFeed());
- //intent.putExtra("article", article);
- intent.putExtra("searchQuery", hf.getSearchQuery());
- //intent.putExtra("articles", (Parcelable)hf.getAllArticles());
- Application.getInstance().tmpArticleList = hf.getAllArticles();
- Application.getInstance().tmpArticle = article;
-
- /* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- startActivityForResult(intent, HEADLINES_REQUEST, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
- } else {
- startActivityForResult(intent, HEADLINES_REQUEST);
- } */
-
- // mysterious crashes somewhere in gl layer (?) on some feeds if we use activitycompat transitions here on LP so welp
- startActivityForResult(intent, HEADLINES_REQUEST);
- overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
-
-
+ boolean alwaysOpenUri = m_prefs.getBoolean("always_open_uri", false);
+ if (alwaysOpenUri) {
+ if (article.unread) {
+ article.unread = false;
+ saveArticleUnread(article);
+ }
+
+ HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
+ if (hf != null) {
+ hf.setActiveArticle(article);
+ }
+
+ openUri(Uri.parse(article.link));
+ }
+ else {
+ HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
+
+ Intent intent = new Intent(MasterActivity.this, DetailActivity.class);
+ intent.putExtra("feed", hf.getFeed());
+ //intent.putExtra("article", article);
+ intent.putExtra("searchQuery", hf.getSearchQuery());
+ //intent.putExtra("articles", (Parcelable)hf.getAllArticles());
+ Application.getInstance().tmpArticleList = hf.getAllArticles();
+ Application.getInstance().tmpArticle = article;
+
+ /* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ startActivityForResult(intent, HEADLINES_REQUEST, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
+ } else {
+ startActivityForResult(intent, HEADLINES_REQUEST);
+ } */
+
+ // mysterious crashes somewhere in gl layer (?) on some feeds if we use activitycompat transitions here on LP so welp
+ startActivityForResult(intent, HEADLINES_REQUEST);
+ overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
+ }
} else {
invalidateOptionsMenu();
diff --git a/org.fox.ttrss/src/main/res/values/strings.xml b/org.fox.ttrss/src/main/res/values/strings.xml
index ae2f1cc7..f9067440 100755
--- a/org.fox.ttrss/src/main/res/values/strings.xml
+++ b/org.fox.ttrss/src/main/res/values/strings.xml
@@ -239,6 +239,8 @@
<string name="headlines_row_top_changed">New articles found, reload feed to continue.</string>
<string name="prefs_custom_tabs_summary">Open external links with browser custom tabs (faster, used if available)</string>
<string name="prefs_use_custom_tabs">Use quick preview</string>
+ <string name="prefs_always_open_uri">Always open external links</string>
+ <string name="prefs_always_open_uri_summary">Selecting an article will automatically trigger the \'Open with&#8230;\' command</string>
<string name="ask_me_every_time">Ask me every time</string>
<!-- <string name="open_link">Open link</string> -->
<string name="quick_preview">Quick preview</string>
diff --git a/org.fox.ttrss/src/main/res/xml/preferences.xml b/org.fox.ttrss/src/main/res/xml/preferences.xml
index bf893468..7a05b18a 100755
--- a/org.fox.ttrss/src/main/res/xml/preferences.xml
+++ b/org.fox.ttrss/src/main/res/xml/preferences.xml
@@ -148,6 +148,11 @@
android:defaultValue="true"
android:key="custom_tabs_ask_always"
android:title="@string/ask_me_every_time" />
+ <org.fox.ttrss.util.LessBrokenSwitchPreference
+ android:defaultValue="false"
+ android:key="always_open_uri"
+ android:summary="@string/prefs_always_open_uri_summary"
+ android:title="@string/prefs_always_open_uri" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/offline_mode" >
<ListPreference