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

Implement Background File Transfer Support for Uninterrupted Transfers When App is Minimized #8

Open
SaiDheerajPeketi opened this issue Oct 6, 2024 · 0 comments
Labels
bonus bug Something isn't working enhancement New feature or request hard level SaiDheerajPeketi mentor

Comments

@SaiDheerajPeketi
Copy link

SaiDheerajPeketi commented Oct 6, 2024

🚀Feature Request

Description

The requested feature is to implement support for background file transfers, allowing files to be sent and received without interruptions, even when the app is minimized or running in the background. This would enhance the app’s usability by enabling seamless file transfers, regardless of the app’s foreground status.

Expected behavior

  • File transfers should continue without being interrupted when the user minimizes the app or navigates away from it.
  • The app should display notifications showing the transfer progress and completion status.
  • If the transfer fails due to network issues or other interruptions, the app should attempt to retry or notify the user of the failure.

Current behavior

Currently, file transfers are paused or interrupted when the app is minimized or moved to the background. This forces users to keep the app open in the foreground for the entire duration of the file transfer, which is inconvenient for large files or slow networks.

Steps to reproduce

  1. Initiate a file transfer via Bluetooth, Wi-Fi Direct, or any other supported method.
  2. Minimize the app or switch to another app.
  3. Observe that the file transfer may be paused, interrupted, or fail to complete.

Possible Solution

  1. Service-based Background Transfer:
    Implement a background service (e.g., ForegroundService) that handles file transfers in the background. This service should manage the ongoing file transfers, independent of the app’s UI state.

  2. Notification Integration:
    Show persistent notifications while files are being transferred. Notifications should display the current progress and update in real-time. Once the transfer is complete, show a success or failure message.

  3. Handle Network or Connectivity Issues:
    Ensure the background service can handle changes in network connectivity or disconnections gracefully. Provide a retry mechanism if a transfer fails due to these issues, with user notification and the ability to resume transfers when network conditions improve.

Why is this feature important to you?

This feature is essential for users transferring large files or using slow networks. The ability to continue transfers in the background without requiring the app to remain open enhances usability and convenience. It allows users to multitask and reduces frustration caused by interrupted transfers due to app switching or accidental minimization.

Additional context

  • Implement timeouts and retries to ensure transfers do not hang indefinitely if there are persistent network issues.
  • Consider including a user setting to control background transfers, such as enabling/disabling them and specifying conditions under which they are allowed (e.g., Wi-Fi only).
  • Future improvements could involve pausing and resuming transfers based on user preferences or connectivity changes, further enhancing the reliability of background transfers.

This feature will allow smoother, uninterrupted file transfers, improving user satisfaction and making the app more robust for everyday use.

@SaiDheerajPeketi SaiDheerajPeketi added bug Something isn't working enhancement New feature or request SaiDheerajPeketi mentor hard level bonus labels Oct 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bonus bug Something isn't working enhancement New feature or request hard level SaiDheerajPeketi mentor
Projects
None yet
Development

No branches or pull requests

1 participant