Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull to Refresh Feed #4893

Merged
merged 3 commits into from
Nov 20, 2020
Merged

Pull to Refresh Feed #4893

merged 3 commits into from
Nov 20, 2020

Conversation

okan35
Copy link
Contributor

@okan35 okan35 commented Nov 15, 2020

What is it?

  • Bugfix (user facing)
  • Feature (user facing)
  • Codebase improvement (dev facing)
  • Meta improvement to the project (dev facing)

Description of the changes in your PR

added pull to refresh to what's new section of app

Fixes the following issue(s)

Relies on the following changes

APK testing

debug.zip
app-debug.zip

Due diligence

@opusforlife2 opusforlife2 changed the title swipe to refresh added Pull to Refresh Feed Nov 15, 2020
@Stypox
Copy link
Member

Stypox commented Nov 15, 2020

Thank you! Please provide a debug apk when opening a PR ;-)

@okan35
Copy link
Contributor Author

okan35 commented Nov 15, 2020

Thank you! Please provide a debug apk when opening a PR ;-)

Sorry about that, just updated the request with apk.

Comment on lines 199 to 201
if (swipeRefreshLayout.isRefreshing){
swipeRefreshLayout.isRefreshing = false
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (swipeRefreshLayout.isRefreshing){
swipeRefreshLayout.isRefreshing = false
}
swipeRefreshLayout.isRefreshing = false

If I'm not mistaken, there's no difference.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But there is a difference of checking if currently there is a refreshing action and set that action false otherwise dont. I thought this is a healthier way of doing like when you dismiss a progressDialog.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In your original code, isRefreshing will be set to false if it's true, otherwise it stays the same. This is the same as setting it to false regardless of its value.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will try the change your recommended, if it doesn't change any behavior I will just commit it.

@opusforlife2
Copy link
Collaborator

Just tried it out. The spinner stutters. It seems to pause momentarily in the exact same places as the progress bar in the feed update notification.

@okan35
Copy link
Contributor Author

okan35 commented Nov 16, 2020

I don't know what to say for stutter, I just used swipe refresh layout and haven't changed much code.
Also started and stopped the refresh in the same place with feed refresh so that might be the reason it acts same.

I don't have stutter by the way.

I checked stutter on swipe refresh little bit and looks like it reasons from running heavy code on main thread, so it might be another underlying reason for this which effects the animation.

If there is a stutter then underlying problem needs to be fixed.

Copy link
Collaborator

@XiangRongLin XiangRongLin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some unnecessary whitespaces

@@ -56,6 +57,7 @@ import org.schabi.newpipe.util.Localization

class FeedFragment : BaseListFragment<FeedState, Unit>() {
private lateinit var viewModel: FeedViewModel
private lateinit var swipeRefreshLayout: SwipeRefreshLayout
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

double space

@@ -78,11 +80,16 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here

xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">


Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here

@@ -70,15 +74,23 @@
android:background="?attr/separator_color" />
</RelativeLayout>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/items_list"

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here

app/src/main/res/layout/fragment_feed.xml Outdated Show resolved Hide resolved
Copy link
Collaborator

@opusforlife2 opusforlife2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notes from a secret admirer:

You should put the new dependency in the AndroidX dependencies block.
And use Ctrl+Alt+L to format your XML.

@jaffery0605
Copy link

Please add pull down to refresh feed instead of clicking the touchable portion down the header. It will improve the UX of the app.

@triallax
Copy link
Contributor

@jaffery0605 and that's exactly what this PR does.

@XiangRongLin
Copy link
Collaborator

Btw how do android TV people refresh the feed afterwards?

@okan35
Copy link
Contributor Author

okan35 commented Nov 17, 2020

Made the necessary changes.

@okan35
Copy link
Contributor Author

okan35 commented Nov 17, 2020

Btw how do android TV people refresh the feed afterwards?

I haven't removed existing refreshing feature just added another one so they will continue to do as they did before. Not sure pull to refresh is even done on android tv.

Copy link
Member

@Stypox Stypox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this on multiple devices and it works good. Thank you, we really needed this! :-D

@Stypox Stypox merged commit 66d15ea into TeamNewPipe:dev Nov 20, 2020
@B0pol
Copy link
Member

B0pol commented Nov 22, 2020

Btw how do android TV people refresh the feed afterwards?

I haven't removed existing refreshing feature just added another one so they will continue to do as they did before. Not sure pull to refresh is even done on android tv.

I don't know how to do pull to refresh on Android TV. I wish there was a button on the remote, because it's lacking in many apps and sometimes the only way is to clear app data (:eyes: @f-droid)

@okan35
Copy link
Contributor Author

okan35 commented Nov 22, 2020

Actually that could be done in a way like double click on bottom button on android tv remote so when a user double clicks bottom button in less than a second we could refresh the feed. I don't use newpipe on android tv but since I use android tv what I said could give a good solution. If you like this idea you can open an issue or if you have a better suggestion you can open with that.

@B0pol
Copy link
Member

B0pol commented Nov 22, 2020

No, the current way is great. There is no reason to change to a "less than a second" thing.

ShareASmile pushed a commit to ShareASmile/NewPipeZing that referenced this pull request Aug 16, 2021
ShareASmile added a commit to ShareASmile/FoxPipe that referenced this pull request Jun 14, 2024
…s of 15-01-2024 into pre-unified-legacy

This is a fork of TeamNewPipe/NewPipe-legacy that I have been patching for a few months now. There is no commit history as this has been a personal project up until today.

Pulled in a major chunk of related commits for NewPipe Preunified from upstream TeamNewPipe/NewPipe repository:
1. Update NewPipe extractor to fetch likes count Fix TeamNewPipe/NewPipe#10624
2. Access Background Player Queue from Main menu by HybridAU
TeamNewPipe/NewPipe#8419
3. Added Bandcamp Music Support Into NewPipeLegacy, Improve Bandcamp intent filters
TeamNewPipe/NewPipe#3741
TeamNewPipe/NewPipe#6373
TeamNewPipe/NewPipe#6456
4. Disable sending metrics to Google when using Android System WebView
TeamNewPipe/NewPipe#5337
5. Add basic resize functionality
TeamNewPipe/NewPipe#3948
6. [media.ccc.de] Add recent & live stream kiosk
TeamNewPipe/NewPipe#5251
TeamNewPipe/NewPipe#5286
[media.ccc.de] Fix service color
TeamNewPipe/NewPipe#5258
7. Ability to see Pinned Comment added by dkramer95
TeamNewPipe/NewPipe#7577
8. Clicking on Title In Background Player Should Open Video Details
TeamNewPipe/NewPipe#3808 by https://github.com/budde25
9. Added Swipe to Refresh for Channels New Videos in Subscription Feed
TeamNewPipe/NewPipe#4893
10. [peertube] implement sepia search
TeamNewPipe/NewPipe#5257
11. Allow installation on external storage by triallax in
TeamNewPipe/NewPipe#6037
12. Change UA to privacy.resistFingerprinting
TeamNewPipe/NewPipe#5649 by FireMasterK
13. Add formatting removal on paste for search TeamNewPipe/NewPipe#5912 by imericxu
14. Remember Last Selected Media Type For Downloads
TeamNewPipe/NewPipe#4038 by vmazoyer
15. Improve search suggestion experience when remote ones can't be fetched
TeamNewPipe/NewPipe#4029 by StyPox
16. Fix Download Button Not Visible After Playing Live Stream, Fix video detail controls visibility set inconsistently
Add this commit by StyPox
TeamNewPipe/NewPipe@dbb86d2 from
TeamNewPipe/NewPipe#4362
17. [Background Player] Fix very small thumbnails in Video Detail Page by TobiGR in
TeamNewPipe/NewPipe#5818
18. Add Always Expand Description In Appearance Settings
TeamNewPipe/NewPipe#2998 by B0pol
(Related) entries from search history Increased from 25 to 80 and Search Suggestions Entries from 3 to 60 commit copied from
TeamNewPipe/NewPipe#2666 thanks to ergor
20. Fixes snackbar error on disabled likes count
Fixes TeamNewPipe/NewPipe#7405 by TeamNewPipe/NewPipeExtractor#753
21. Fixed player controls not hiding after replay & Bluetooth headset button by Alexander--
TeamNewPipe/NewPipe#3547
22. update user agent in Downloader to firefox latest ESR 115 by Nickoriginal
TeamNewPipe/NewPipe#8269
23. Changed Dark Theme Colors To Darker Variant by sauravrao637
TeamNewPipe/NewPipe#6244
24. Support for PeerTube Short Links
TeamNewPipe/NewPipe#7353
25. Handle URLs for YouTube Shorts
TeamNewPipe/NewPipe#7181
26. Fix playback speed not being updated in Background Player & Fix TeamNewPipe/NewPipe#8058
Fixed Combinedly by TeamNewPipe/NewPipe#6421 by Tobius
and by seanzzy in
TeamNewPipe/NewPipe#8244
27. Added comments disabled functionallity by litetex in
TeamNewPipe/NewPipe#6483
28. [media.ccc.de] Fix service color
TeamNewPipe/NewPipe#5258
29. Ignore ContentNotSupportedException caused by Bandcamp fan pages
TeamNewPipe/NewPipeExtractor#1033
30. Crash when rotating device on unsupported channels
TeamNewPipe/NewPipe#6696
31. Correct Gigaget's license from GPLv2 to GPLv3
TeamNewPipe/NewPipe#4892
32. Add basic resize functionality [Samsung Dex Now Supported]
TeamNewPipe/NewPipe#3948
33. [Security] Update ktlint to 0.40.0
34. Fix security vulnerability update checkstyle / guava
35. Update ExoPlayer from 2.11.6 to 2.11.8
36. Update checkstyle, OkHttp, use Kotlin JDK8 by TacoTheDank added this commit
TeamNewPipe/NewPipe@79e2bb3
from TeamNewPipe/NewPipe#3909
37. Use user agent of DownloaderImpl also in ReCapthaActivity
TeamNewPipe/NewPipe#5215
38. Fix ACRA bug reports not containing stack trace, Do not init ACRA if inside its own process
TeamNewPipe/NewPipe#3982
39. Remove deprecated calls to set Sender class to ACRA
TeamNewPipe/NewPipe#3982
40.Use SubtitlesStream#getUrl instead of getURL
TeamNewPipe/NewPipe#4120
41. Remove pbj=1 parameter from YouYube urls in recaptcha activity
TeamNewPipe/NewPipe#5208
42. Set notification style in Android 11 to MediaStyle Thanks to XiangRongLin for Limted Support for preunified refer to this commit
XiangRongLin@aa55a09
43. Click on title in background player opens video details
TeamNewPipe/NewPipe#3808
44. Add 2K and 4K to the options list for default resolution
 TeamNewPipe/NewPipe#2968
45. Fix crash when opening video in local playlist tab
Fixes TeamNewPipe/NewPipe#3887
by TeamNewPipe/NewPipe#3892 by wb9688
46.  Handle ContentNotSupportedException
TeamNewPipe/NewPipe#3300
47. [YouTube] Improve download speed by Theta-dev
TeamNewPipe/NewPipe#9948
48. Disable commenter image when disabling thumbnails loading by 4D17Y4
Fixes TeamNewPipe/NewPipe#4205
TeamNewPipe/NewPipe#4350
49. Adapt opacity of popup close button to allow touches in other apps on Android >=11
Fixes TeamNewPipe/NewPipe#6770
TeamNewPipe/NewPipe#8279
50. Better error messages for SoundCloud and YouTube unavailable contents
TeamNewPipe/NewPipe#5385
51. Mitigating long buffering on initial video playback by using custom progress-load-interval in exoplayer,
Use 16 KiB as the default progressive load interval by karyogamy
TeamNewPipe/NewPipe#7919
52. Support for opening YouTube Live URLs
TeamNewPipe/NewPipe#9725

Co-Authored-By: Tobi <17365767+tobigr@users.noreply.github.com>
Co-Authored-By: Stypox <stypox@pm.me>
Co-Authored-By: Audric V. <74829229+audricv@users.noreply.github.com>
Co-Authored-By: bopol <58657617+b0pol@users.noreply.github.com>
Co-Authored-By: Isira Seneviratne <31027858+isira-seneviratne@users.noreply.github.com>
Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
Co-Authored-By: fynngodau <fynngodau@mailbox.org>
Co-Authored-By: David Kramer <6166095+dkramer95@users.noreply.github.com>
Co-Authored-By: Ethan Budd <budde25@protonmail.com>
Co-Authored-By: triallax <triallax@tutanota.com>
Co-Authored-By: Kavin <20838718+firemasterk@users.noreply.github.com>
Co-Authored-By: Eric Xu <xeric.2002@gmail.com>
Co-Authored-By: Vincent Mazoyer <17800856+vmazoyer@users.noreply.github.com>
Co-Authored-By: Erol Gorancic <erol@gorancic.no>
Co-Authored-By: Alexander-- <1107390+alexander--@users.noreply.github.com>
Co-Authored-By: Saurav Rao <56369484+sauravrao637@users.noreply.github.com>
Co-Authored-By: Nickoriginal <85299944+nickoriginal@users.noreply.github.com>
Co-Authored-By: Ziyan Zhang <71145592+seanzzy@users.noreply.github.com>
Co-Authored-By: litetex <40789489+litetex@users.noreply.github.com>
Co-Authored-By: XiangRongLin <41164160+xiangronglin@users.noreply.github.com>
Co-Authored-By: wb9688 <46277131+wb9688@users.noreply.github.com>
Co-Authored-By: Okan25 <92695587+okan25@users.noreply.github.com>
Co-Authored-By: Michael Van Delft <1610265+hybridau@users.noreply.github.com>
Co-Authored-By: Taco <32376686+tacothedank@users.noreply.github.com>
Co-Authored-By: ThetaDev <thetadev@magenta.de>
Co-Authored-By: Aditya-Srivastav <54016427+4d17y4@users.noreply.github.com>
Co-Authored-By: John Zhen Mo <zhenmogukl@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve "What's New" refresh experience: auto refresh, pull to refresh
7 participants