coi-dev / ox-coi Goto Github PK
View Code? Open in Web Editor NEWOX COI Messenger - a Flutter app for the COI (Chat Over IMAP) standard
Home Page: https://coi-dev.org
License: Mozilla Public License 2.0
OX COI Messenger - a Flutter app for the COI (Chat Over IMAP) standard
Home Page: https://coi-dev.org
License: Mozilla Public License 2.0
It seems like the chat list is completely reloaded if a new message (invite) or a new chat appears. This leads to flickering within the view. We need to alter that behavior.
If a user receives multiple messages from one user and accepts / blocks the chat request for one message, not all messages are removed. They stay as invites in the chat list. Accepting / blocking a user with those messages does not change the chat view at all.
I do not find any information on how the problem with push messages will be handled in android (and iOS).
Since android 8 you can only implement push messages with the usage of FCM (firebase cloud messaging) without draining the battery as far as I know.
Or did I just miss something?
Is your feature request related to a problem? Please describe.
The user should be able to see if new messages exist, directly in the chat list.
Describe the solution you'd like
A small indicator in every chat list item should show the number of new messages (1-99 or 99+). If no new message exists, no indicator should be visible. The DCC should already be able to deliver the required data.
Is your feature request related to a problem? Please describe.
The user should be able to delete chats.
Describe the solution you'd like
In the chat view an entry in the overflow menu should be added to allow the delete action. The DCC supports the delete action.
Additional context
Multi select in the chat list will be added later.
Describe the bug
If an invite for a contact exists, but the user creates a new chat for this contact manually, the invite is not removed. It's also not possible to remove the invite (block it or accept it) later via the invite view.
Expected behavior
If a chat is created all corresponding invites should be removed.
Is your feature request related to a problem? Please describe.
We should support the following cases:
Do due the removal of the https://pub.dartlang.org/packages/image_picker_ui dependency the avatar selection in the profile view isn't functional anymore. We have to reintroduce this function:
Is your feature request related to a problem? Please describe.
We need more logging.
Describe the solution you'd like
A logger should be introduced. Beside logging to the console it should also be able to create log files. https://github.com/dart-lang/logging could be helpful. We should define constant tags.
Is your feature request related to a problem? Please describe.
The user should be able to search for messages from the chat view.
Describe the solution you'd like
Describe the bug
The chat list flickers if many messages are received at once.
To Reproduce
Occurrence: [always]
Steps to reproduce the behavior:
Expected behavior
The new data is loaded and the UI doesn't flicker.
Additional context
The flickering happens due to reactions to Event.msgsChanged which is fine in general as we have to listen to this type of event, but the UI shouldn't reload completely.
Is your feature request related to a problem? Please describe.
The user should be informed as soon as a new message arrives. A notification should be created if:
Describe the solution you'd like
We should add a global listeners for messages, which creates those notifications. The listener should always be informed if the app is visible and which view is open. Doing this the listener would be able to decide if a notification should be shown.
Additional context
If is important to assure notifications aren't displayed multiple times. We have to add a Flutter plugin to access notifications.
This ticket only handles the actual loading / refreshing part. The UI is done in #87.
The current code is still based on the previous Git setup. To be able to build OX Talk it must be adjusted. Also some of the documentation needs to get adjusted (fix links and change build instructions).
Is your feature request related to a problem? Please describe.
The user should be able to copy a message from the chat view.
Describe the solution you'd like
Long pressing on a message should add the given text to the clipboard. This action is only available for text.
Additional context
Describe the bug
If the avatar, name or status message is changed, the changes aren't always applied to the profile view.
To Reproduce
Occurrence: [often]
Steps to reproduce the behavior:
Expected behavior
All changes are applied to the profile view.
Additional context
This happens due to the multiple responsibilities of the user_bloc. We need to split the displaying / loading logic and the change logic to fix this problem. A new user_change_bloc should get introduced.
Is your feature request related to a problem? Please describe.
The user should be able to filter / search for contacts in the create group chat view.
Describe the solution you'd like
Describe the bug
Chat title is not updated after contact name is changed.
To Reproduce
Occurrence: [always]
Steps to reproduce the behavior:
Expected behavior
The chat name should also change.
Create the new Chat/Invite view. The two views are seperated by a top tab switcher to have a better overview between active chats and chat invites
Hi, what is the difference to Delta Chat https://github.com/deltachat/deltachat-android/? DC seems to be further "developed" (already is on the Play Store and F-Droid) but has not such a nice icon ๐
Obviously, for the final product it might be the best to merge DC and ox-talk but this doesn't work very often ๐
We should update all our libraries to avoid AndroidX dependency problems. We should also cleanup all Lint warnings.
As the app is now able to display attachments, it should also be able to send attachments.
Is your feature request related to a problem? Please describe.
The user should be able to edit or delete a message from the chat view.
Describe the solution you'd like
Tapping on a message should open a context menu which allows the action.The actual action must be performed by the DCC.
Additional context
Is your feature request related to a problem? Please describe.
The user should be able to persist more contact information. Currently only the name and mail are saved.
Describe the solution you'd like
At least the phone number should also be supported. Avatar images from the local phone book would be an additional nice to have.
Currently errors are only visible while debugging via an IDE. We have to add user visible error responses to allow the user to react accordingly. The DCC provides numerous error cases and we should adhere to those.
Describe the bug
To Reproduce
Occurrence: [always ]
Steps to reproduce the behavior:
Expected behavior
Nothing is cut and all possible space is used.
Additional context
Currently the main layout displays elements horizontally beside each other. The name and preview on the left, the date and the message counter on the right. We should move the date and the message counter inside the structure, so they are displayed right beside the actual name / preview views and not on the root level. This should avoid the UI problems and lead to more flexibility.
Is your feature request related to a problem? Please describe.
The user should be able to see a preview of the last sent or received message directly in the chat list.
Describe the solution you'd like
Chat list item: The text below the chat name should be a snippet created from the last received or sent message. Images / Videos / Voice messages / other attachment message should be shown as the corresponding icons.
Describe the bug
If a new invite appears the corresponding contact is shown in the normal contact list.
To Reproduce
Occurrence: [always]
Steps to reproduce the behavior:
Expected behavior
Contacts not added by the user are not shown in the normal contact list.
Additional context
This happens due to our repository handling. We have to split contacts added by invites and contacts added by the user. Therefore we will use two separate repositories.
Is your feature request related to a problem? Please describe.
Sending voice or video message is not possible from within the app.
Describe the solution you'd like
Enable the currently disabled audio / video buttons in the chat view and allow the user to record voice messages or videos. The user should be able to directly send those files as messages.
Is your feature request related to a problem? Please describe.
We're showing all invites and we should only show invites created by another chat app (e.g. OX-Talk or DeltaChat)
Describe the solution you'd like
DCC already provides some logic to filter that, we should implement something similar. See https://github.com/deltachat/deltachat-android for an example.
Additional context
This ticket should also add the indicator for new invites.
Is your feature request related to a problem? Please describe.
A blocked user can't be unblocked right now.
Describe the solution you'd like
Is your feature request related to a problem? Please describe.
The user should be able to filter / search for contacts in the create chat view.
Describe the solution you'd like
If a contact is edited (e.g. the name is changed). The contact list gets broken (multiple wrong elements are added and the first one has no text and just a black image as avatar).
Is your feature request related to a problem? Please describe.
The user needs to be able to export / import there secret keys.
Describe the solution you'd like
The settings should provide an entry to export / import the automatically setup keys. This entry should be secured be e.g. a pin or the already set lock pattern.
Often, when you want to exchange contact information, people enter the contact information into their phone. Some applications and messengers, such as Line, allow the user to exchange this information by scanning a QR code from the other phone. Such a code could also contain the peer's public key so that exchanging this information can be made fairly secure. Perhaps symbolized by a green lock on the chat screen (and a gray lock if the public key has been exchanged in a less trustworthy way) :-)
Is your feature request related to a problem? Please describe.
The user should be able to forward a message from the chat view.
Describe the solution you'd like
Tapping on a message should open a context menu which allows the action.The actual forwarding is performed by the DCC. A method for that already exists in the DCC.
Additional context
If the user receives an invite the "Mailbox" chat is visible. Even after accepting or blocking the request the then empty chat remains.
Is your feature request related to a problem? Please describe.
The user should be able to verify users via QR code.
Describe the solution you'd like
The DCC already provides QR code generation and we should adapt it. Creating a chat or adding a user via QR code to a group should be possible in a secure way. The user should also have a simple way to display it's own QR code to other users. We should add a menu entry on the chat list page or / and on the create chat screen.
Is your feature request related to a problem? Please describe.
The user should be able to see invites in the chat list. The extra invite view should get removed.
Describe the solution you'd like
The already given logic should be used and the multi-view-invite (separate chat list and invite list) handling should get changed to a single-view-invite (combined chat list and invite list) handling. The given designs should get used. We have to assure that no unwanted list reloading is performed. Only one list entry should be shown for a contact, even if multiple messages were received.
Is your feature request related to a problem? Please describe.
The user should see contact avatars if one is set. In the contact list, in the chat list, in chats, on all profile / details screens. The source of the avatar can be local or remote.
Describe the solution you'd like
An avatar could be set by the user, the system contacts import or remote by another user via a COI contact message.
Additional context
Is your feature request related to a problem? Please describe.
The user isn't able to see the contact information of other chat participant(s).
Describe the solution you'd like
Additional context
More actions will be added later, an optional feature could be a copy to clipboard function when tapping the users mail. We can also think about listing all group contacts. If this is easily doable please add it in this first version of the profile screen, otherwise we will add it later.
Is your feature request related to a problem? Please describe.
The COI standard describes an extendable list of special messages. Those message should get supported.
Describe the solution you'd like
We should implement the interface which is needed to parse special COI messages. Therefore we will probably use Microformats. The DCC should forward the parsable data, while the client needs to interpret, display and handle it. This ticket is intended to provide the generally needed interface. The actual messages and the required UI will be added in separate tickets.
Additional context
The documentation should be moved to Github, so everything is gathered and accessible at one place.
The login and settings screen show the IMAP and SMTP security setting, but changing those does nothing in the core. This needs to get adjusted.
Messages currently only have a time value displayed to the user in the chat view. We need to adjust that to also display the date, if the message wasn't sent at the same day. If possible we should add a scrollable date marker.
Is your feature request related to a problem? Please describe.
The user should be able to filter / search for contacts in the contact list.
Describe the solution you'd like
Describe the bug
After changing the account settings, no reconfiguration is performed.
To Reproduce
Occurrence: [always]
Steps to reproduce the behavior:
Expected behavior
The new settings are used.
See the title ;-)
Is your feature request related to a problem? Please describe.
Mono should be enough to work with. It should probably also increase the overall quality by keeping the same file size.
Is your feature request related to a problem? Please describe.
If a new message arrives the chat list it is reloaded. This happens due to the index change, which forces Flutter to redraw and therefore reload the content.
Describe the solution you'd like
Additional context
This ticket involves the addition of paged loading in general and will lead to bigger changes.
Is your feature request related to a problem? Please describe.
The user should be able to see the state of a message (sent, read, delivered).
Describe the solution you'd like
As soon as a final decision in regards to the technical solution is provided we should implement this ticket. For now we could use the read-receipts DCC provides, but there could also be a COI alternative.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.