Add setting for users to determine frequency of backup creation
First time contributor checklist
- [X] I have read how to contribute to this project
- [X] I have signed the Contributor License Agreement
Contributor checklist
- [X] I am following the Code Style Guidelines
- [X] I have tested my contribution on these devices:
- Sony Xperia 5iii, Android 13
- Virtual device Pixel 3, Android 13
- [X] My contribution is fully baked and ready to be merged as is
- [X] I ensure that all the open issues my contribution fixes are mentioned in the commit message of my first commit using the
Fixes #1234syntax
Description
This pull request allows users change the frequency that backups are made to a selected interval (weekly, monthly, quarterly, every 6 months, annually).
Currently, when backups are enabled, Signal will create a fresh backup every 24-hours. This causes unnecessary write cycles on the device's internal storage or SD card.
- Making backups is a power-intensive process which drains battery and uses CPU cycles which can put a strain on daily usage when users are out and about, and slow down other apps on the device while the backups are being created.
- Different users have different needs from backups. Some users message on Signal all day long, and others message on Signal infrequently. A 24-hour backup schedule is useful for the first group, but is of dubious value for the second group. It will write an identical file over and over.
- Low-end devices are wearing out prematurely. Many low-end Android phones have low-durability eMMC chips. A 24-hour backup schedule makes their already-short lifespan even shorter. eMMC chips will fail catastrophically when they reach end-of-life. The device bricks, and the user must replace the whole thing. This disproportionately hurts Signal's poor users and produces environmental pollution.
A setting to control the backup frequency would also give people more control over their data, which is an important value to cultivate in today's society.
Verified that this behaviour works by setting backup frequency to 30 days and then waiting that long to see if a backup got created (I restarted the device several times during that time period to verify that it persists).
https://github.com/signalapp/Signal-Android/assets/108375980/13f7643f-0d26-4ecb-b4a3-0b428c40ac07
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Fixed the localisation issue. I have only added a string for English but at least there are resources now.
Is there anything I can do to make this PR better?
Added a video recording demonstrating the feature. (link)
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
@farewelltospring one suggestions, could you please add the option to put the number of days as an int (with sensible limits) as having to choose from a list feels arbitrary and might not cover all use cases, but I can totally understand if you keep it as is
- i really like that feature
Just caught wind of this commit - https://github.com/signalapp/Signal-Android/commit/49ba83dda8ec7e9457dc620c960693f91590161e - is this PR able to be resolved?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.