QuasselDroid-ng issueshttps://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues2019-04-16T07:38:47Zhttps://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/194Add special UI for networks of type bouncer2019-04-16T07:38:47ZJanne Mareike KoschinskiAdd special UI for networks of type bouncerhttps://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/193Allow opening multiple windows/sessions at the same time (for multiwindow)2019-04-16T07:38:06ZJanne Mareike KoschinskiAllow opening multiple windows/sessions at the same time (for multiwindow)https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/187Add UI hint to improve discovery of draggable editor input2022-01-10T05:15:03ZJanne Mareike KoschinskiAdd UI hint to improve discovery of draggable editor inputhttps://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/176Past notifications persist on disconnect then connect to different core2022-01-10T05:15:03ZShane SynanPast notifications persist on disconnect then connect to different core## Test case
### Steps
1. Connect to a Quassel core
2. Receive a notification
3. Disconnect from Quassel core
4. Connect to a different Quassel core that doesn't have the same buffers
### Expected
Notifications that don't exist on ...## Test case
### Steps
1. Connect to a Quassel core
2. Receive a notification
3. Disconnect from Quassel core
4. Connect to a different Quassel core that doesn't have the same buffers
### Expected
Notifications that don't exist on the second Quassel core disappear.
### Actual
Notifications remain while connected to the second Quassel core.
## Additional
Alternatively, this could be fixed by removing notifications when manually disconnecting (not timeout/etc) from a Quassel core. Currently, notifications must be swiped away to clear up the system tray.
This will likely change once the goal of push notifications that arrive regardless of being actually "connected" exists in Quassel.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/175Warn in Core Settings and (phone-only) sidebar when connection lost/reconnecting2022-01-10T05:15:04ZShane SynanWarn in Core Settings and (phone-only) sidebar when connection lost/reconnecting## Test case
### Steps
1. Connect to a Quassel core
2. Open the buffer list
3. Disable Internet connection (e.g. `WiFi`/`Airplane mode` toggle)
4. Observe the buffer list
5. Re-enable Internet connection
6. Open `…` menu, `Core Se...## Test case
### Steps
1. Connect to a Quassel core
2. Open the buffer list
3. Disable Internet connection (e.g. `WiFi`/`Airplane mode` toggle)
4. Observe the buffer list
5. Re-enable Internet connection
6. Open `…` menu, `Core Settings`
7. Disable Internet connection
### Expected
On phone layouts (sidebar hides chat view), there's a notice of being disconnected/reconnection status, hinting as to why the list is empty.
On tablet layouts (sidebar doesn't obscure chat view), as the chat view's always visible, no redundant information is put into the buffer list sidebar.
For both, when in `Core Settings`, a warning is shown about being disconnected/reconnection status, hinting as to why nothing's loaded.
### Actual
Nothing is shown.
## Additional
If displaying reconnection status incurs performance drops, it could be limited to just a disconnected warning.
*Edited from original issue now that feature warning is addressed.*https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/169Warn on multi line paste2018-12-26T01:18:31ZmavhcWarn on multi line pasteIf a user accidentally copies text that contains multiple lines, and pastes them into QuasselDroid, it should warn the user, to avoid spamming others. Maybe offer to remove the newline characters.
More than 3 lines is probably enough to...If a user accidentally copies text that contains multiple lines, and pastes them into QuasselDroid, it should warn the user, to avoid spamming others. Maybe offer to remove the newline characters.
More than 3 lines is probably enough to trigger the warning.
Warning text could be something like: Warning, you are about to send (x) lines of text, continue? OK/Cancelhttps://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/168Chat View switching is not working2022-01-10T05:15:00ZZauberfischChat View switching is not workingThis seems like a new bug in the recent beta
Right after reconnecting it works fine.
After some time/minimizing the app it just stops working.This seems like a new bug in the recent beta
Right after reconnecting it works fine.
After some time/minimizing the app it just stops working.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/163Simplify/clarify avatar settings2022-01-10T05:15:04ZShane SynanSimplify/clarify avatar settings## Idea
The `Show Avatars` handling isn't very clear on what actually happens and can leave someone confused about what affects what.
Avatar handling should probably be moved into it's own section, perhaps under an `Appearance` pane [a...## Idea
The `Show Avatars` handling isn't very clear on what actually happens and can leave someone confused about what affects what.
Avatar handling should probably be moved into it's own section, perhaps under an `Appearance` pane [as part of reorganizing the client settings](https://git.kuschku.de/justJanne/QuasselDroid-ng/issues/114 ).
`Show Avatars` controls `Show Avatars in Messages` *and* IRCv3 avatar fetching functionality. Avatars elsewhere are always shown, but could use settings to manage that.
Perhaps a `Avatar fetching` section and a `Display` section for where they're actually shown, with the notion that if all display options are disabled (if possible), nothing's fetched, either.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/159Empty/invalid values should be rejected in several fields2022-01-10T05:15:00ZShane SynanEmpty/invalid values should be rejected in several fields# Test case
## Steps
1. Connect to core
2. Go to overflow menu → `Core Settings`
### `Network` (servers)
1. Add a new network
2. Set `Network Name`
3. Don't add any servers
4. Press `Save`
*This one may be more difficult to imp...# Test case
## Steps
1. Connect to core
2. Go to overflow menu → `Core Settings`
### `Network` (servers)
1. Add a new network
2. Set `Network Name`
3. Don't add any servers
4. Press `Save`
*This one may be more difficult to implement and can be set aside to a new issue if desired.*
Quassel desktop actually even catches this if you delete all servers from a network after adding it:
> ### Invalid Network Settings
> **The following problems need to be corrected before your changes can be applied:**
>
> * All networks need at least one server defined
### `Network` (name)
1. Add a new network
2. Don't set `Network Name`
3. Add a dummy server
4. Press `Save`
### Network → `Server`
1. Add a new server to an existing network
2. Don't fill in `Host`
3. Press `Save`
### `Identity`
1. Add a new identity
2. Don't fill in `Identity name`
3. Press `Save`
### `Chatlists`
1. Add a new chat list
2. Don't fill in `Name`
3. Press `Save`
*Technically, this one is accepted by the Quassel core, but the desktop GUI requires specifying a name.*
### Ignore List → `Ignore Rule` (ignore rule)
1. Add a new ignore rule
2. Don't fill in `Ignore Rule`
3. Press `Save`
*Technically, this one is accepted by the Quassel core, but the desktop GUI requires specifying an ignore rule.*
### Ignore List → `Ignore Rule` (scope)
**This one needs fixed in upstream Quassel, too. It can be ignored for now, or fixed.**
1. Add a new ignore rule
2. Fill in `Ignore Rule`
2. Set Scope to `Network Scope`
2. Don't fill in `Scope Rule`
3. Press `Save`
*Technically, this one is accepted by the Quassel core, and the desktop GUI does not require specifying an ignore rule scope, but it probably should.*
### `Aliases` → `Alias` (name)
1. Add a new alias
2. Don't fill in `Name`
3. Press `Save`
Bonus: this logs a crash report in Quasseldroid due to a non-null value set to null. See [the crash issue for the specifics](https://git.kuschku.de/justJanne/QuasselDroid-ng/issues/161 ).
### `Aliases` → `Alias` (expansion)
1. Add a new alias
2. Don't fill in `Expansion`
3. Press `Save`
Bonus: this logs a crash report in Quasseldroid due to a non-null value set to null. See [the crash issue for the specifics](https://git.kuschku.de/justJanne/QuasselDroid-ng/issues/161 ).
## Expected
Quasseldroid rejects the empty fields in the above cases.
## Actual
Quasseldroid accepts the empty fields in the above cases, highlighting with red/whatever method Android uses to indicate a field is required.
# Additional
The Android approaches appears to be using `setHint` and [`setError`](https://developer.android.com/reference/android/widget/TextView#setError(java.lang.CharSequence) ).https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/155Unsaved changes dialogs should use "Discard"/"Cancel" buttons2022-01-10T05:15:00ZShane SynanUnsaved changes dialogs should use "Discard"/"Cancel" buttons## Idea
The `You have unsaved changes` dialog should use `Discard` and `Cancel` for the confirmation buttons. This [follows the Material design guidelines](https://material.io/design/communication/confirmation-acknowledgement.html#conf...## Idea
The `You have unsaved changes` dialog should use `Discard` and `Cancel` for the confirmation buttons. This [follows the Material design guidelines](https://material.io/design/communication/confirmation-acknowledgement.html#confirmation ) and makes it more clear at a glance what will happen.
It could also be simplified to `Discard changes?` or such.
> **`Discard changes?`**
>
> `You have unsaved changes that will be lost.`
>
> **`Cancel`** **|** **`Discard`**
## Additional
### Example dialogs ["Communication → Confirmation & Acknowledgement" design guidelines](https://material.io/design/communication/confirmation-acknowledgement.html#confirmation )
![Screenshot of an Android confirmation dialog, showing "Reset filters?" with the subtext of "Your filters will reset your search history and remove all saved filters from your device.", and two buttons, "Cancel" and "Reset".](https://storage.googleapis.com/spec-host-backup/mio-design%2Fassets%2F15xpoCSgcskWZg69oK6PVIOPwXpoRAV9I%2Fcommunication-confirmation2.png )
### Example dialogs [from the Alert Dialog design guidelines](https://material.io/design/components/dialogs.html#alert-dialog )
**Do**
![Screenshot of an alert dialog showing "Discard draft?" with "Cancel" and "Discard" buttons.](https://storage.googleapis.com/spec-host-backup/mio-design%2Fassets%2F1g8052ZKUjp4a9STlAHL9FJ7MtLTOHJnK%2Fdialogs-alertdialog-do-1.png )
**Don't**
![Screenshot of an alert dialog showing "Discard draft?" with "No" and "Yes" buttons.](https://storage.googleapis.com/spec-host-backup/mio-design%2Fassets%2F1Q6QdoQcU7IJK9jjH0TSqWf8PZNtE8Lbu%2Fdialogs-alertdialog-dont-1.png )https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/146Separate notification channels for "Highlights" and "Private Messages"2022-01-10T05:15:04ZShane SynanSeparate notification channels for "Highlights" and "Private Messages"Similar to the desktop Quassel client (at least with KNotification support), it'd be nice to configure `Highlights` and `Private Messages` separately. One use case is setting different sounds for each.
Given the matter of `Old Highligh...Similar to the desktop Quassel client (at least with KNotification support), it'd be nice to configure `Highlights` and `Private Messages` separately. One use case is setting different sounds for each.
Given the matter of `Old Highlights`, this might double the notification-related notification channels from 2 to 4, having `Old Highlights` and `Old Private Messages`. I'm not sure of a good way to handle this (other than push notifications so it's not needed in the first place).
**Example screenshot of desktop Quassel's `Configure Notifications…`**
![Quassel desktop showing "Configure Notifications..." for KNotification's dialog, revealing separate Highlight and Private Message settings](https://zorro.casa/sync/Hosting/Utilities/Quassel/QuasselDroid/Development/issues/pm-notification-channels/Quassel%20desktop%20KNotifications%20settings.png )
*Aside, `NotifyMerged` is a simple C# app that monitors a directory for changes and emits notifications compatible with Canonical's `x-canonical-append` flag to enable [message merging with their NotifyOSD framework](https://wiki.ubuntu.com/NotifyOSD#merging ).*https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/142Delete selected messages from log2022-01-10T05:15:04ZHannah von RethDelete selected messages from logWith the recent spam wave it would be interesting to be able to delete selected messages from the log.With the recent spam wave it would be interesting to be able to delete selected messages from the log.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/141Support automatic Light/Dark mode, e.g. via Theme.AppCompat.DayNight2022-01-10T05:15:04ZShane SynanSupport automatic Light/Dark mode, e.g. via Theme.AppCompat.DayNight### Idea
* Automatically switch between Light and Dark theme variants
* Time of day
* Using `Theme.AppCompat.DayNight` to follow system-wide theme, e.g. as per [the Android 10 developer documentation](https://developer.android.com/gu...### Idea
* Automatically switch between Light and Dark theme variants
* Time of day
* Using `Theme.AppCompat.DayNight` to follow system-wide theme, e.g. as per [the Android 10 developer documentation](https://developer.android.com/guide/topics/ui/look-and-feel/darktheme ) and [LineageOS' Styles API](https://wiki.lineageos.org/sdk/api/styles.html )
### Rationale
Dark theme can easier on the eyes at night, but the light theme is better for reading in daylight/sunlight. Manually switching works, but can be a slight hassle.
Time-based is sufficient, though integrating with the system-wide choice on devices that support it makes for a smoother experience by having everything follow a single setting.
### Additional
This is [now available in Android 10](https://developer.android.com/guide/topics/ui/look-and-feel/darktheme ), hurrah!
The LineageOS' Styles API also has the option for setting an accent color without needing the Lineage SDK. Might be neat to integrate this somehow.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/139Request: Increase "Real Name" display length2022-01-10T05:15:04ZChris KrauseRequest: Increase "Real Name" display lengthI was just wondering if it was possible to increase the length of the displayed user "Real Name" that is shown next to their nickname. Its usually more then enough, but I sometimes see issues with bot users like relay programs that tie t...I was just wondering if it was possible to increase the length of the displayed user "Real Name" that is shown next to their nickname. Its usually more then enough, but I sometimes see issues with bot users like relay programs that tie the IRC channel to other chat services that have the full program name and revision number as their "Real Name". Those users often see it cut by 1-2 characters. And in the case of a relay program, you will see it all the time.
Super low priority, but it would really be nice if it could be extended by maybe 5 characters.
Thank you!https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/136Optionally use visibility-optimized mIRC colors2022-01-10T05:15:03ZShane SynanOptionally use visibility-optimized mIRC colorsOffer a setting to choose between accurate mIRC colors, and colors optimized for visibility.
E.g. color blue (2 or 4) with `Material Dark` theme.
*Thanks to `rubenwardy` from Freenode/`#quasseldroid` for the idea!*Offer a setting to choose between accurate mIRC colors, and colors optimized for visibility.
E.g. color blue (2 or 4) with `Material Dark` theme.
*Thanks to `rubenwardy` from Freenode/`#quasseldroid` for the idea!*https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/127Option to mark all channels as read, per network basis2022-01-10T05:15:01ZPeGaSuSOption to mark all channels as read, per network basis* [ ] Normally every user is in several channels on a network, and some are more important than others. Would be nice to have an option to mark as channels as read, per network basis, after we take a look into the most important ones.* [ ] Normally every user is in several channels on a network, and some are more important than others. Would be nice to have an option to mark as channels as read, per network basis, after we take a look into the most important ones.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/125Batch deletion for PM and parted channels buffers2022-01-10T05:15:01ZPeGaSuSBatch deletion for PM and parted channels buffers* [ ] On PM and parted channels buffers we have the option to delete them, but we must do it one by one.
Having an option to batch delete would be nice.
* [ ] On channels that we're still in, probably also add the option to delete i...* [ ] On PM and parted channels buffers we have the option to delete them, but we must do it one by one.
Having an option to batch delete would be nice.
* [ ] On channels that we're still in, probably also add the option to delete it, which would make the user part the channel and then delete it (would spare the work of parting first and delete after).https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/124Option for last message instead of channel topic2022-01-10T05:15:03ZVolkorOption for last message instead of channel topicWhere the green part is on the image below, have an option to show the latest message sent from that channel, would be better for keeping track of activity.
Also, having the icons on the left change colour depending on activity would be...Where the green part is on the image below, have an option to show the latest message sent from that channel, would be better for keeping track of activity.
Also, having the icons on the left change colour depending on activity would be a nice thing to have too.
![image](https://thecum.zone/e7d90c4b67.png)https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/119Dismissing notification marks entire buffer as read, not just highlights2022-01-10T05:15:03ZShane SynanDismissing notification marks entire buffer as read, not just highlights### Steps
1. Connect to core
2. Receive highlight in channel
3. Receive non-highlights in that same channel
4. Swipe away notification for highlight from that channel
### Expected
The highlight status is removed from the channel, bu...### Steps
1. Connect to core
2. Receive highlight in channel
3. Receive non-highlights in that same channel
4. Swipe away notification for highlight from that channel
### Expected
The highlight status is removed from the channel, but the other messages are not marked as read.
### Actual
The entire channel is marked as read, making it harder to see what messages may be missed.
### Additional
This depends on protocol changes to the core, and may need the core-side notification system (not just core-side highlights) in order to mark notifications as dismissed without clearing a channel's activity.
Alternatively, Quasseldroid can mark everything up to the swiped-away notification as read, but this may risk confusion among users instead of the "swipe notification == marks all as read" behavior.
This could possibly involve messing with the last read markerline to re-set that to right after the highlight.. but that still risks confusion.https://git.kuschku.de/justJanne/QuasselDroid-ng/-/issues/114Reorganize client settings to avoid 'wall of toggles'2022-01-10T05:15:03ZShane SynanReorganize client settings to avoid 'wall of toggles'### Idea
Structure the `Client Settings` to further group settings according to type or functionality.
One *possible* example...
* `Appearance`
* `General` (*implicit subcategory, maybe no header*): show lag, keep screen active, etc
...### Idea
Structure the `Client Settings` to further group settings according to type or functionality.
One *possible* example...
* `Appearance`
* `General` (*implicit subcategory, maybe no header*): show lag, keep screen active, etc
* `Language and input`: language, enter key on keyboard, current `Autocomplete` category
* `Messages`: current messages category, with subcategory for `Avatars` (*disabled when separate nicknames is disabled*)
* `Theming`: theme (*eventually will have theme preview gallery and custom colors*)
* `Notifications`: current `Notifications` category
* `Connection`
* `General` (*implicit subcategory, maybe no header*): show notification
* `Backlog`: current `Backlog` category
* `Certificates`: access to current certificate manager
* *Any additional client-side connection parameters, e.g. session timeout if needed*
Or something else?
This will include [simplifying/clarifying the `Show Avatars` settings](https://git.kuschku.de/justJanne/QuasselDroid-ng/issues/163 ).
### Additional
I'm not entirely sure how this would go, with activity fragments, with different header levels, or whatever... It just seems.. not ideal to put a wall of options in front of someone trying to find a specific setting, or to someone new to the client.
`Messages`, if possible and only when there's room, could also show a possibly-scrollable preview of the new message layout, like Discord does. To better suit space-constrained phones, it could be a `Preview` option to show a test conversation, allowing testing realnames, avatars, etc without backing out and hunting for a conversation that has everything you need.
**Example screenshot of Discord's Appearance settings page**
![Discord's Appearance settings page, viewable at https://discordapp.com/ after making a guest account and accessing settings. It shows a preview of the message layout above.](https://zorro.casa/sync/Hosting/Utilities/Quassel/QuasselDroid/Development/issues/organize-client-settings/Discord%20appearance%20settings.png )