ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.67k stars 2.24k forks source link

Restore the night mode switcher in the sidebar #14204

Closed Kelamir closed 1 year ago

Kelamir commented 1 year ago

Before https://github.com/ankidroid/Anki-Android/pull/10520 it used to be possible to switch between light theme and black theme with just two clicks by opening the sidebar while reviewing and switching with the toggle. This was a functionality I have used daily. Now one has to go through Anki settings or Android settings to figure out where the switcher might be.

I propose to bring back the night mode toggle for easy change between current theme. @oakkitten would like this to see this implemented as well.

In the context of the #10520, it's great that the PR has provided an option to follow system dark mode, but it introduced the change: Remove navigation drawer night mode toggle, and I think there might not be the need to remove this quality of life feature.

Looking forward to hearing thoughts about this, and if that's alright I could do restore it as my first contribution.

welcome[bot] commented 1 year ago

Hello! đź‘‹ Thanks for logging this issue. Please remember we are all volunteers here, so some patience may be required before we can get to the issue. Also remember that the fastest way to get resolution on an issue is to propose a change directly, https://github.com/ankidroid/Anki-Android/wiki/Contributing

Kelamir commented 1 year ago

image Referring to the following night mode toggle.

BrayanDSO commented 1 year ago

I'm against it.

  1. Having a setting at two places can be confusing
  2. The switch itself would be confusing if the user had Follow system enabled
  3. Having all settings in just one place is more easy to understand
  4. Changing themes by going to settings isn't that much trouble, and apparently a once in a day event in the shown use case. There are things that are more frequently used but don't need to have a shortcut in the navigation drawer
  5. With follow system, changing device's night mode is a swipe from the status bar and a tap to toggle it, which is a equivalent amount of trouble of tapping the navigation drawer then toggling night mode
  6. Also with follow system, if your device have a automatic schedule for dark mode, changing themes isn't even necessary
  7. Everyone may have some settings they change frequently and would like to change it more easily, e.g. cards interval or showing learning cards after reviews. Obviously we can't put all of the settings of everyone's use case in a place more easily accessible in order to please everybody, and I don't think that themes or any other setting should be a special case.
  8. Most apps don't do that
  9. IMO, this is mostly a matter of getting used to it. People got used to having the toggle, and resisting to getting used to something new is expected.
lukstbit commented 1 year ago

Also against it. Besides what Brayan mentioned, I recall talks about a UI revamp and removing the drawer menu completely.

oakkitten commented 1 year ago

For it, as mentioned.

Having a setting at two places can be confusing
The switch itself would be confusing if the user had Follow system enabled
Having all settings in just one place is more easy to understand

How I do it in Weechat-Android: have settings like this:

How Telegram does it: theme switch always available, if tapped, switches the theme setting from System default to whatever is different to the current one

Both of these approaches solve the above issues

Changing themes by going to settings isn't that much trouble

I think it is too much trouble

There are things that are more frequently used but don't need to have a shortcut in the navigation drawer

If you think a shortcut is too much, why not have it optional like I do with Weechat-Android?

With follow system, changing device's night mode is a swipe from the status bar and a tap to toggle it, which is a equivalent amount of trouble of tapping the navigation drawer then toggling night mode

While OP is talking about going to Android settings I would sometimes love to be able to have AnkiDroid in a different light mode than the system. This is the app that is often used for long periods of time—unlike many other apps—and the user might have a different preference for it.

Everyone may have some settings they change frequently and would like to change it more easily, e.g. cards interval or showing learning cards after reviews. Obviously we can't put all of the settings of everyone's use case in a place more easily accessible in order to please everybody, and I don't think that themes or any other setting should be a special case.

If someone is changing card intervals often (really??) it's IMO absolutely a reason to offer them a way to do it more easily. We have options to edit toolbar buttons, why not have quick options for often used options?

Most apps don't do that

Some major apps do that, e.g. Telegram, and they put a lot of work into that feature (love the animation).

IMO, this is mostly a matter of getting used to it. People got used to having the toggle, and resisting to getting used to something new is expected.

I mean if you remove the ability to edit cards people will still use AnkiDroid

Besides what Brayan mentioned, I recall talks about a UI revamp and removing the drawer menu completely.

We can still have a toggle without the drawer, like you can have a checkbox in a menu.


The bottom line is, there's no bottom side to this proposal. It should be easy to implement, and easy to make it entirely optional. And this great for accessibility

david-allison commented 1 year ago

Also against it. Times have changed and night-mode is now a standard feature of the OS.

I can change to night mode via my Android notification bar in a swipe and a tap. This has the desired effect of a quick switch without losing context in the reviewer.


Would any of the following be acceptable alternatives:

Kelamir commented 1 year ago

Thanks everyone for replies, I appreciate you taking the time to consider this issue. As things stand, it is no longer necessary to restore the night mode toggle back to the sidebar, however we might want to provide an easy to use alternative.

Currently the app does not provide an easy way to toggle night mode on and off. That creates issues that might not have been considered when the feature was removed: depending on the cards being used, and the user's set up, there might be a need to frequently switch between themes in order to alter the card design, and there is no easy way to do that. I'm using Android 10 and there is no option to change the theme in the navigation drawer as mentioned earlier.

One might change current theme frequently for a number of reasons; for example, cards that were modified with Syntax Highligher only work properly in light mode. I have a number of notetypes like that which just don't sit well with a single theme for a prolonged period of time for a single session. In an ideal world they would be well-optimized for both themes, but that's not the case, and I suspect it's not going to be the case for everyone else either. Other users might have their own reasons for changing the theme frequently as well, and I think it's important to provide an easy way to do that.

This feature might have relatively high demand among users for reasons provided earlier and beyond, therefore among the alternatives provided by David, we might want to implement the option that has the most discoverability: that would be an app bar button for the reviewer. Existing users who were relying on the app's built-in night mode toggle should be able to find it easily, therefore we would want to set it by default as "Menu only". Any other implementation that lacks sufficient visibility would invalidate the purpose of restoring the feature.

david-allison commented 1 year ago

I want to focus on configurability for power users over discoverability here. I don't feel it's a common operation, and it's not a discoverable option in Anki Desktop. Adding more options which are visible by default adds to cognitive load, and adds to the already overwhelming experience which we present to new users.

Due to this, I would not want this as a default option in the Reviewer menu. This would be available, but 'disabled' by default.

My thinking: "Card Info" isn't shown by default, and "Night Mode" would see less use than "Card Info".


A gesture/bindable command is my initial preference. I'd be happy with an "App bar button" (disabled by default) in addition to this, as long as a suitable vector icon is available within Material Icons (it almost certainly is).

BrayanDSO commented 1 year ago

Themes can be changed in two seconds in the settings, not much trouble at all. The fade animation entering settings can be changed to the default activity transition, so it is even faster.

Use cases like the "Syntax hightlighter" one should be fixed by putting the notetype always in light/dark mode.

I still stand all of my other points, so I won't support it, even if is in the format of gestures or app bar buttons.

BrayanDSO commented 1 year ago

Overall opinion is no for the switch. Ping if you want this reopened

FlightlessTuatara commented 6 months ago

Since part of the reasoning hinges on the "follow system" functionality, it's worth mentioning that certain (most?) Samsung Galaxy Themes take control of the system dark/light setting and prevent users from changing it. I don't know if this is the case with other brands, but at least some users won't be able to take advantage of the Follow System option.

david-allison commented 6 months ago

It's on the main menu bar on my Samsung Galaxy S21:

image