diff options
author | Jean-François Turcotte <[email protected]> | 2019-06-27 18:49:45 -0400 |
---|---|---|
committer | Jean-François Turcotte <[email protected]> | 2019-06-27 18:49:45 -0400 |
commit | 052a220cff715300c07e5681715b7fe97241ed5a (patch) | |
tree | 6f72d4c1b35ca1dce47838ce0d43c2027324f9e0 | |
parent | 9d2d7d528e55657f16406831cf4c2f99f2caf914 (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-x | org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java | 57 | ||||
-rwxr-xr-x | org.fox.ttrss/src/main/res/values/strings.xml | 2 | ||||
-rwxr-xr-x | org.fox.ttrss/src/main/res/xml/preferences.xml | 5 |
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…\' 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 |