aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-10-22 00:34:24 -0700
committerGitHub <noreply@github.com>2019-10-22 00:34:24 -0700
commitf9129dd7b59b4b3119805a49c21315e1f5a5e336 (patch)
tree77d05207e31f4b3fd30c9af6deb0fae0be9ec27b
parentc2d70807d555f685e22875565475aeca556a11cb (diff)
parentcdddb88d53e86561179daf97af825a86aa41c1b1 (diff)
downloadfrost-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.kt24
-rw-r--r--app/src/main/play/en-US/whatsnew10
-rw-r--r--app/src/main/res/xml/frost_changelog.xml6
-rw-r--r--docs/Changelog.md3
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