diff options
author | Allan Wang <me@allanwang.ca> | 2019-10-22 00:34:24 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-22 00:34:24 -0700 |
commit | f9129dd7b59b4b3119805a49c21315e1f5a5e336 (patch) | |
tree | 77d05207e31f4b3fd30c9af6deb0fae0be9ec27b | |
parent | c2d70807d555f685e22875565475aeca556a11cb (diff) | |
parent | cdddb88d53e86561179daf97af825a86aa41c1b1 (diff) | |
download | frost-f9129dd7b59b4b3119805a49c21315e1f5a5e336.tar.gz frost-f9129dd7b59b4b3119805a49c21315e1f5a5e336.tar.bz2 frost-f9129dd7b59b4b3119805a49c21315e1f5a5e336.zip |
Merge pull request #1578 from AllanWang/fix-backstack
Fix backstack
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt | 24 | ||||
-rw-r--r-- | app/src/main/play/en-US/whatsnew | 10 | ||||
-rw-r--r-- | app/src/main/res/xml/frost_changelog.xml | 6 | ||||
-rw-r--r-- | docs/Changelog.md | 3 |
4 files changed, 25 insertions, 18 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt b/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt index 5b564102..b76f0134 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt @@ -33,6 +33,7 @@ import com.pitchedapps.frost.db.currentCookie import com.pitchedapps.frost.facebook.FB_HOME_URL import com.pitchedapps.frost.facebook.USER_AGENT import com.pitchedapps.frost.fragments.WebFragment +import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.Prefs import com.pitchedapps.frost.utils.ctxCoroutine import com.pitchedapps.frost.utils.frostDownload @@ -130,15 +131,23 @@ class FrostWebView @JvmOverloads constructor( } /** - * By 2018-10-17, facebook automatically adds their home page to the back stack, + * 2018-10-17. facebook automatically adds their home page to the back stack, * regardless of the loaded url. We will make sure we skip it when going back. + * + * 2019-10-14. Looks like facebook now randomly populates some links with the home page, + * especially those that are launched with a blank target... + * In some cases, there can be more than one home target in a row. */ override fun onBackPressed(): Boolean { - if (canGoBackOrForward(-2)) { - goBack() + val list = copyBackForwardList() + if (list.currentIndex >= 2) { + val skipCount = (1..list.currentIndex).firstOrNull { + list.getItemAtIndex(list.currentIndex - it).url != FB_HOME_URL + } ?: return false // If no non home url is found, we will treat the stack as empty + L.v { "onBackPress: going back ${if (skipCount == 1) "one page" else "$skipCount pages"}" } + goBackOrForward(-skipCount) return true } - val list = copyBackForwardList() if (list.currentIndex == 1 && list.getItemAtIndex(0).url == FB_HOME_URL) { return false } @@ -202,10 +211,7 @@ class FrostWebView @JvmOverloads constructor( } override fun destroy() { - val parent = getParent() as? ViewGroup - if (parent != null) { - parent.removeView(this) - super.destroy() - } + (getParent() as? ViewGroup)?.removeView(this) + super.destroy() } } diff --git a/app/src/main/play/en-US/whatsnew b/app/src/main/play/en-US/whatsnew index f286cb6f..d9c37fbc 100644 --- a/app/src/main/play/en-US/whatsnew +++ b/app/src/main/play/en-US/whatsnew @@ -1,9 +1,3 @@ -v2.4.1 +v2.4.2 -* Add better support for mobile url conversions -* Notification tab will keep first page in the same window; fixes marking notifications as read -* Fix nav and status bar icon colors for custom themes (Android O+) -* Fix biometric prompt, and prompt on activity resume -* Fix notification title -* Add option to open overlay links in browser -* Disable swipe to refresh for composer and sharer pages
\ No newline at end of file +* Fix back stack history
\ No newline at end of file diff --git a/app/src/main/res/xml/frost_changelog.xml b/app/src/main/res/xml/frost_changelog.xml index e8856b03..0b77ad1d 100644 --- a/app/src/main/res/xml/frost_changelog.xml +++ b/app/src/main/res/xml/frost_changelog.xml @@ -6,6 +6,11 @@ <item text="" /> --> + <version title="v2.4.2" /> + <item text="Fix back stack history" /> + <item text="" /> + <item text="" /> + <version title="v2.4.1" /> <item text="Add better support for mobile url conversions" /> <item text="Notification tab will keep first page in the same window; fixes marking notifications as read" /> @@ -14,7 +19,6 @@ <item text="Fix notification title" /> <item text="Add option to open overlay links in browser" /> <item text="Disable swipe to refresh for composer and sharer pages" /> - <item text="" /> <version title="v2.4.0" /> <item text="Removed request services, which potentially caused phishing warnings." /> diff --git a/docs/Changelog.md b/docs/Changelog.md index 849170bf..f511c6ed 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,5 +1,8 @@ # Changelog +## v2.4.2 +* Fix back stack history + ## v2.4.1 * Add better support for mobile url conversions * Notification tab will keep first page in the same window; fixes marking notifications as read |