check buffering events #952
No reviewers
Labels
No labels
android: closed alpha
android: open beta
app-parity
area: devops
area: discovery
area: docs
area: livestream
area: proposal
consider soon
creator
Epic
good first issue
hacktoberfest
help wanted
icebox
Invalid
level: 1
level: 2
level: 3
level: 4
needs: exploration
needs: grooming
needs: priority
needs: repro
needs: tech design
on hold
priority: blocker
priority: high
priority: low
priority: medium
product review
resilience
Tom's Wishlist
type: bug
type: discussion
type: improvement
type: new feature
type: refactor
type: task
type: testing
unplanned
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: LBRYCommunity/lbry-android#952
Loading…
Reference in a new issue
No description provided.
Delete branch "buffer-events"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This looks like code for tracking activity performed by users, although for improving performance. I will check it with FDroid documentation and see if it could make the app still available but with a flag indicating it tracks certain activity.
In case it is non-acceptable for them, I will have to remove it from the FDroid port.
Could you add a setting on Preferences so users could opt-in to send this reports? You could set it "on" as default for the Play Store release version.
If It is set "off" as default only for the FDroid port, then no AntiFeature would be applied, according to https://f-droid.org/en/docs/Anti-Features/#Tracking
Adding a setting for data sharing is a good idea, though we should probably model it after what we do on LBRY desktop.
@kekkyojin maybe this is a feature you could explore adding directly? 😁
From reading the commit I get that if player is buffering and has already began to play, then it will launch a new AsyncTask. That task will be sending some data to a host.
a) couldn't that sending of data consume bandwidth that could be making the user experience worsen? I suggest to stack a few of those buffering state bits of data and send them together. A timer could also be used in case no more buffering events had happened and only 1 is what needs to be sent.
b) AsyncTask is already deprecated. BufferEventTask doesn't return anything and dorsn't need to communicate with the UI thread. What about a thread, instead?
Another idea is to create a background service which is started first time a buffering event happens. That background service would be stacking the bits of data and sending them in a batch after certain time elapses -from the reception of the last bit of data- or the service is stopped.
The data being sent is very little, probably less than 200 bytes, so I don't expect the user experience to worsen.
AsyncTask helps keep things organised, in order to maintain the existing structure with the previous tasks already built. In the future, we can look into migrating away from AsyncTask if it no longer works for newer versions of Android, but it's still functional at the moment.