beemdevelopment / Aegis

A free, secure and open source app for Android to manage your 2-step verification tokens.
https://getaegis.app
GNU General Public License v3.0
8.54k stars 365 forks source link

Allow users to select not to trigger an automatic backup after performing certain actions #1105

Open Trainax opened 1 year ago

Trainax commented 1 year ago

Hello everyone, I'm a fairly new Aegis user. I recently downloaded a copy of aegis-icons on my phone to add icons to entries inside the app. I then noticed that a new backup was being made each time I set an icon. In the app settings I selected to keep 5 versions of the backup, and after setting all the icons I ended up with 5 backup copies which were pretty much identical and differed only for the icons which were set. I also noticed a new backup version is created each time I assign an entry to a group.

I would like to be able to select when to create an automatic backup version and when not. For example I want to create a backup when I insert a new entry or I modify an existing entry unless the modification only regards setting an app icon or changing the group the entry is assigned to: in this case I would like not to create a backup or create a backup only after all the modifications to icons / groups have been made and I have closed the app so that not to create pretty much identical backup copies defeating the purpose of keeping more backup versions.

Thank you

alexbakker commented 1 year ago

Perhaps we should let users choose between "Back up all changes" or "Only back up important changes", and enable the latter by default. Like you said, I think most users would not want to see a series of backups with important changes get overwritten completely when they make a bunch of cosmetic changes to their entries.

Curious to hear what other people think.

Trainax commented 7 months ago

I think I have an idea on how to implement this. In the settings there could be an option to enter a "cosmetic changes mode" where users could make all the cosmetic changes they want and create a single backup after doing what they want when they exit this mode. This mode would allow only cosmetic changes (setting app icons, assigning entries to groups) and would prevent the user to make any substancial changes to entries (I will explain why at the end).

The interaction could go like this:

  1. The user opens the app, goes into settings and taps on the Enter cosmetic changes mode option
  2. A popup (which could be disabled in the settings) appears and warns the user with something like "You are about to enter cosmetic changes mode. This mode allows you to set app icons and assign entries to groups and all backup functions are disabled. Please remember to tap on the banner on top of the screen when you have finished so a single backup with all your cosmetic changes can be made"
  3. Upon user confirmation the app would return to the main screen with a banner stating "Cosmetic changes mode activated. Tap to exit" on top
  4. The user would make all the cosmetic changes they please and then tap on the banner or press the back button on the phone UI to exit this mode
  5. Upon exiting this mode a single backup version containing all cosmetic changes would be made

What happens if the app crashes or the user closes the app without tapping on the banner / pressing back on the screen? A backup version could be created when the user opens the app the next time. Since the "cosmetic changes mode" prevents users to make any significant changes to entries, only cosmetic changes would be lost in an event of app deletion / backup restoration / ecc before having opened the app another time after exiting improperly from the "cosmetic changes mode" (which I personally think it's an acceptable risk).

Let me know what you think!

Edit: typo

msquared-au commented 2 months ago

If it's easy to trigger a save action some time after a change, rather than when the change occurs, you could do this:

As an alternative to "save after some delay", perhaps "save when app is closed"?

Anyway, this would avoid lost of saves when making lots of cosmetic changes without the user having to specifically enable a special mode. Special modes can require user training, and can be confusing.

msquared-au commented 2 months ago

Let me know what you think!

As someone who likes to know what an app is doing and is OK to perform complex sequences of steps to achieve my goals, I would be OK with this approach, but I think that it might confuse the average user or they might perceive this as unnecessary friction.