Giter VIP home page Giter VIP logo

ios's Introduction

Tinodios: Tinode Messaging Client for iOS

iOS client for Tinode in Swift.

Status: beta. Usable and mostly stable but bugs may happen.

Installing and running

Tinodios is NOT a standalone app. It's a frontend, a client. It requires a backend. See installation instructions.

Important! Due to Microsoft's (GitHub owner) policy of requiring developers of open source projects to pay for for hosting large files on GitHub, this repository cannot include prebuilt binaries for MobileVLCKit and WebRTC-lib. As a consequence, we do not include Pod files into repository. You need to install them manually:

pod install

or on Apple Silicon (M1):

arch -x86_64 pod install

Helping out

  • If you appreciate our work, please help spread the word! Sharing on Reddit, HN, and other communities helps more than you think.
  • Consider buying paid support: https://tinode.co/support.html
  • If you are a software developer, send us your pull requests with bug fixes and new features.
  • Become a beta-tester: try new features first and help us discover and fix problems. Send us a message Add me to TestFlight at testflight @ tinode . co and we will add you to TestFlight.
  • If you use the app and discover bugs or missing features, let us know by filing bug reports and feature requests. Vote for existing feature requests you find most valuable.
  • If you speak a language other than English, translate the apps into your language. You may also review and improve existing translations.
  • If you are a UI/UX expert, help us polish the app UI.
  • Use it: install it for your colleagues or friends at work or at home.

Getting support

Features

Completed

  • One-on-one conversations and group chats.
  • Video or audio calling.
  • Channels with unlimited number of read-only subscribers.
  • Unread message counters.
  • Push notifications and in-app presence notifications.
  • Message status notifications: message delivery to server; received and read notifications.
  • Markdown-style formatting of text, e.g. *style* → style.
  • Replying and forwarding messages.
  • Trusted account badges: verified account, staff, etc.
  • Form messages suitable for chatbots.
  • Attachments and inline images, voice/audio messages.
  • Muting/un-muting conversations and other granular permission management.
  • Integration with iOS's stock Contacts.
  • Invite contacts to the app by SMS or email.
  • Transport Level Security - https/wss.
  • Offline mode.

Not Done Yet

  • Previews not generated for videos, links or docs.
  • No video messages.
  • No typing indicators.
  • No support for switching between multiple backends.
  • No mentions, hashtags.
  • End-to-End encryption is not implemented.

Dependencies

Push notifications

If you want to use the app with your own server and want push notification to work you have to set them up:

  • Register at https://firebase.google.com/, set up the project if you have not done so already.
  • Download your own config file GoogleService-Info.plist and place it in the Tinodios/ folder of your copy of the project. The config file contains keys specific to your Firebase/FCM registration.
  • Copy Google-provided server key to tinode.conf, see details here.

Translations

The app is currently available in the following languages:

  • English (default)
  • Chinese (simplified)
  • Chinese (traditional)
  • Russian
  • Spanish
  • Ukrainian

More translations are welcome. See instructions.

Other

Screenshots

App screenshot - chat list App screenshot - conversation App screenshot - account settings App screenshot - find people App screenshot - forward message App screenshot - video call

ios's People

Contributors

5idereal avatar aforge avatar charlestang avatar kyoshio avatar or-else avatar siuklee avatar ykuvonchbek avatar ztimc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ios's Issues

Toast message hidden behind the tab bar

When displaying a toast in the New Chat tab controller, the toast body is blocked and hidden behind the tab bar at the bottom of the screen.
Make sure to display the toast above the tab bar.

Invalid phone numbers sent to the server

It looks like the contacts sync does not produce E.164-compliant phone numbers. The country code is missing:

query = tel:+5555648583,tel:+4155553695,tel:+5554787672,tel:+4085555270

App freezes in launchscreen

Sometimes the app freezes and hangs in the launchscreen after sending a {hi} request to the server and not receiving a response (when we have an auth token saved on the device).
Implement future timeouts to prevent such problems from happening.

IOS Push Notification Badge only. No Banner

Describe the bug
We are currently testing the push notification feature of IOS. Android works fine. But IOS only received BADGE update.
Tried the manual push notif from Firebase console, both IOS and Android works fine though. Only through tinode that is not working properly.

To Reproduce
Steps to reproduce the behavior:

  1. Trigger push notif (new message/create new msg)
  2. Receives Badge update ONLY... NO BANNER

Expected behavior
Receive both banner notification "new msg" and "badge update"

Screenshots
Badge Only
IMG_96179D95241F-1

Manual Push Trigger via Firebase Console
IMG_69EB3766A68A-1

Log
didReceiveRemoteNotification { aps = { badge = 1; "content-available" = 1; "interruption-level" = "time-sensitive"; "mutable-content" = 1; sound = default; "thread-id" = usrsSX4cmr4VTE; }; content = "Tinode Notif Trigger LOG"; "gcm.message_id" = 1700637725393264; "google.c.fid" = "dK6niob_-ky-pr9nUSTWoV"; "google.c.sender.id" = 224125586230; rc = "{\"txt\":\"Tinode Notif Trigger LOG\"}"; seq = 217; topic = usrsSX4cmr4VTE; ts = "2023-11-22T07:22:05.171Z"; what = msg; xfrom = usrsSX4cmr4VTE; }

Tinodios (please complete the following information):

  • Version 1.2.0 (1727)
  • Device iPhoneX and iPhone13
  • iOS version 15 and 17Beta

TinodiosNSExtension not working and notice not shown

When we do these:
1.run TinodiosNSExtension with Tinode.app
2.log in with bob account.
3.send the app to the background.
4.set a breakpoint on didReceive() function in TinodiosNSExtension/NotificationService.swift.
5.send a message from frank to bob using another device or browser.

result:
badge increased on Tinode.app but breakpoint not issued and notification not shown in notification center.

consider:
I checked this by sending push notification manually in firebase (mutable-content:1, alert:{title,body}) , this work and breakpoint issued but because it didn't have enough payload, in line 44, exited.

any suggestion?

typeOfMetaPacket

I have the setTypeOfMetaPacket method on Android, but why not on iOS?

Do you offer iOS in any other way?

Farsi / Persian translation

Hi, nice work on this project.
I have a Mac w/ the latest Xcode and I'd be willing to work on the Farsi language translation for iOS.
After completing it I am happy to move on to the other clients as well.
Thanks,
Keyvan

Crashlytics report: crash in 1.0.1

Crash in MessageViewController. Previous view TopicInfoViewController.

Crashed: com.apple.main-thread
0  Tinodios                       0x1048aeb64 MessageViewController.collectionView(_:fillAttributes:) + 4345064292 (<compiler-generated>:4345064292)
1  Tinodios                       0x104889754 MessageViewLayout.prepare() + 60 (MessageViewLayout.swift:60)
2  Tinodios                       0x104889a24 @objc MessageViewLayout.prepare() + 4344912420 (<compiler-generated>:4344912420)
3  UIKitCore                      0x1b57957bc -[UICollectionViewData _prepareToLoadData] + 228
4  UIKitCore                      0x1b5796050 -[UICollectionViewData validateLayoutInRect:] + 104
5  UIKitCore                      0x1b5798f04 -[UICollectionViewData _layoutAttributesForElementsInRect:] + 228
6  UIKitCore                      0x1b5798e04 -[UICollectionViewData layoutAttributesForElementsInRect:] + 132
7  UIKitCore                      0x1b5761d38 -[UICollectionView _updateVisibleCellsNow:] + 624
8  UIKitCore                      0x1b5773760 -[UICollectionView _setupCellAnimations] + 32
9  UIKitCore                      0x1b5772be4 -[UICollectionView _updateSections:updateAction:] + 136
10 UIKitCore                      0x1b5772ea8 -[UICollectionView reloadSections:] + 64
11 Tinodios                       0x1048a9368 MessageViewController.displayChatMessages(messages:) + 489 (MessageViewController.swift:489)
12 Tinodios                       0x104889134 partial apply for closure #1 in MessagePresenter.presentMessages(messages:) + 4344910132 (<compiler-generated>:4344910132)
13 Tinodios                       0x10488ca30 thunk for @escaping @callee_guaranteed () -> () + 4344924720 (<compiler-generated>:4344924720)
14 libdispatch.dylib              0x1b1b52610 _dispatch_call_block_and_release + 24
15 libdispatch.dylib              0x1b1b53184 _dispatch_client_callout + 16
16 libdispatch.dylib              0x1b1b05190 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1044
17 CoreFoundation                 0x1b1e045e4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
18 CoreFoundation                 0x1b1dff5d8 __CFRunLoopRun + 2004
19 CoreFoundation                 0x1b1dfeadc CFRunLoopRunSpecific + 464
20 GraphicsServices               0x1bbd84328 GSEventRunModal + 104
21 UIKitCore                      0x1b5ef9ae0 UIApplicationMain + 1936
22 Tinodios                       0x1048103c0 main + 15 (AttributedStringFormatter.swift:15)
23 libdyld.dylib                  0x1b1c88360 start + 4

Device
Model: iPhone 7
Orientation: Unknown
RAM free: 18.28 MB
Disk free: 3.44 GB

Operating System
Version: 13.3.0 (17C54)
Orientation: Portrait
Jailbroken: No

Crash
Date: Jan 24, 2020, 12:43:00 PM
App version: 1.0.1 (1032)

Changing media representation to "View" instead of in text

I think, for each message type should has a specific message cell like AttachmentMessageCell, ImageMessageCell, VideoMessageCell, AudioMessageCell , QuoteMessageCell and etc. And also inline images should serve only for thumbnail of photo messages and video messages.

UITableView more compatible rather than UICollectionView for message list.

Network event processing is inherently serial

It looks like due to the WebSocket library currently in use (tidwall/SwiftWebSocket),
the NW event processing cannot be made concurrent.

Event handlers are called synchronously on the event queue:
https://github.com/tidwall/SwiftWebSocket/blob/master/Source/WebSocket.swift#L910
Events internally are processed synchronously
https://github.com/tidwall/SwiftWebSocket/blob/master/Source/WebSocket.swift#L1571
https://github.com/tidwall/SwiftWebSocket/blob/master/Source/WebSocket.swift#L1580

The best bet to enable concurrency in the app is switching to
https://github.com/daltoniam/Starscream
All event handlers are called asynchronously
https://github.com/daltoniam/Starscream/blob/master/Sources/Starscream/WebSocket.swift#L352
which enables concurrency.

State of iOS app?

I like tinode and a friend would like to use an iPhone app.
Is there a app ready for Install / testing or is it WIP?

LFS failed

This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access

Picture directly from camera does not upload

Describe the bug
Press the add button -> choose image -> take photo ->empty image caption -> use photo -> image will not upload

To Reproduce
Steps to reproduce the behavior:

  1. Go to chat with someone
  2. Press the add button
  3. choose image
  4. take photo
  5. empty image caption
  6. use photo
  7. image will not upload

Expected behavior

  1. Image should upload, but nothing happens
  2. if you choose "Camera roll" will work as expected

Tinodios (please complete the following information):

  • Version 1.7.1
  • Device iPhone 11 Pro max
  • iOS version 14.7.1

Server

  • Type :own setup
  • Server type : unmodified
  • Server version 0.17.9

Additional context
2021-08-25 01:48:22.484798+0800 Tinodios[1297:270885] Keyboard cannot present view controllers (attempted to present <UIAlertController: 0x106864800>)
2021-08-25 01:48:29.176672+0800 Tinodios[1297:270885] [Camera] Failed to read exposureBiasesByMode dictionary: Error Domain=NSCocoaErrorDomain Code=4864 "*** -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: data is NULL" UserInfo={NSDebugDescription=*** -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: data is NULL}
Elvvvis %b false
image size: 282620, max inband size: 195584

iOS App Crashed when signing up

If you are not reporting a bug, please post to https://groups.google.com/d/forum/tinode instead.

Describe the bug
App crashes when signing up

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'SignUp'
  2. Click on 'SignUp'
  3. Crashes

Expected behavior
No Crash

Screenshots
If applicable, add screenshots to help explain your problem.
截屏2023-06-05 23 19 38

Tinodios (please complete the following information):

  • Version [e.g. 0.22]
  • Device [e.g. Simulator iPhone 14 Pro]
  • iOS version, 16.4

Server

  • Server type web.tinode.co
  • Server version 0.22.8

Additional context
No Token

What does the sdk do?

I have been going over this project to try and create my own custom messaging application and I am not exactly sure what the tinode sdk does can someone explain it to me?

Crash in ContactsSynchronizer

This is a fresh installation which has never logged in. It seems to assume that the database has been created.

#5	0x000000010d4a6558 in SubscriberDb.createTable() at /tinode/ios/Tinodios/db/SubscriberDb.swift:68
#6	0x000000010d3f31f5 in BaseDb.initDb() at /tinode/ios/Tinodios/db/BaseDb.swift:82
#7	0x000000010d3f3e8f in static BaseDb.getInstance() at /tinode/ios/Tinodios/db/BaseDb.swift:100
#8	0x000000010d3ee233 in ContactsManager.init() at /tinode/ios/Tinodios/account/ContactsManager.swift:32
#9	0x000000010d3ede30 in ContactsManager.__allocating_init() ()
#10	0x000000010d3edddc in globalinit_33_4AE933758BA578E6197EF98E870A28F2_func0 /tinode/ios/Tinodios/account/ContactsManager.swift:27
#11	0x0000000111b7ddb5 in _dispatch_client_callout ()
#12	0x0000000111b7f83c in _dispatch_once_callout ()
#13	0x00000001111f6579 in swift_once ()
#14	0x000000010d3edeb4 in ContactsManager.default.unsafeMutableAddressor at /tinode/ios/Tinodios/account/ContactsManager.swift:27
#15	0x000000010d3a28f6 in ContactsSynchronizer.synchronizeInternal() at /tinode/ios/Tinodios/account/ContactsSynchronizer.swift:125
#16	0x000000010d39f7ab in closure #1 in ContactsSynchronizer.authStatus.didset at /tinode/ios/Tinodios/account/ContactsSynchronizer.swift:45

When loading older messages, keep MessageVC at the top of the message list

When the user opens a chat, Tinodios loads the latest 24 messages by default.
In order to load older messages in a chat (in the MessageVC), the user scrolls the message list
to the top (by swiping down the message list) and upon reaching the top swipes it down once again - which triggers the loading logic.
However, upon loading a batch of older messages (from either local storage or, if not available locally, from the server) the MessageVC always scrolls down the message list all the way to bottom.
It is annoying because in order to get to the newly loaded messages the user must scroll all the way up through the message list again.

Describe the solution you'd like
Upon loading older messages, keep the MessageVC at the top of the message list.

Additional context
See logic in https://github.com/tinode/ios/blob/devel/Tinodios/MessageViewController.swift, https://github.com/tinode/ios/blob/devel/Tinodios/MessageInteractor.swift and https://github.com/tinode/ios/blob/devel/Tinodios/MessagePresenter.swift

Issues in a PR

Changes here look problematic to me: ad24ca9

I've added comments to the PR.

I've created this issue because I was not sure you would get a notification for comments on an already merged PR. If you did get a notification this issue can be closed.

File uploading and taking photo

Files don't upload (out of band). Tested on iOS 12.4.3. MessageCell for file is once display and disappear.
In topic, click "+" attachment button -> "Image" -> "Take Photo" and app closed

Connection to server lost

Describe the bug
On iOS 15.2, I installed Tinode after a previous version was showing me this message: Connection to server lost. I removed Tinode, and reinstalled it via the AppStore. I logged in successfully but after that it showed me the same message. Even after rebooting my iPhone the message is the same.

To Reproduce
Steps to reproduce the behavior:

  1. Open TinodeIos
  2. Login in if not already logged in
  3. Wait up to 5 seconds
  4. A message should appear in the form of a snack-bar saying: Connection to server lost

Expected behavior
I should be able to chat and call normally, which I can't do with that message

Screenshots
If applicable, add screenshots to help explain your problem.

Tinodios (please complete the following information):

  • Version [latest version on the AppStore]
  • Device [iPhone 7]
  • iOS version, 15.2

Server

  • Type [api.tinode.co]
  • Server type [unmodified]
  • Server version [Official]

Additional context
I don't have access to any logs

tinode.conf

Describe the bug
First, thanks for the great work of providing this project source!
I'm not able to locate the file called tinode.conf anywhere in the project as described in the README.md. And the link for detail of this file is broken.

Issues while building Tinodios

  1. Header 'TinodeSDk-Swift.h' not found on module.modulemap. line: 9
  2. Could not build Objective-C module 'TinodeSDK' on BaseDb.swift. line: 10
  3. Missing return in a function expected to return '[TinodeEventListener]' on Tinode.swift. line: 212
    XCode version: 10.3

Crash on login failure

@aforge

The app crashes on try! in https://github.com/tinode/ios/blob/master/Tinodios/Supporting%20Files/AppDelegate.swift#L34
when loginToken call fails

2019-05-07 17:30:03.604089+0300 Tinodios[60196:14284458] [default] onMessage error: (
        (
                (
            "illegalStateError(\"Promise already resolved/rejected\")"
        )
    )
)
Fatal error: 'try!' expression unexpectedly raised an error: authentication failed (401): file /Users/gene/ventures/tinode/ios/Tinodios/Supporting Files/AppDelegate.swift, line 34
2019-05-07 17:30:03.616957+0300 Tinodios[60196:14284333] Fatal error: 'try!' expression unexpectedly raised an error: authentication failed (401): file /Users/gene/ventures/tinode/ios/Tinodios/Supporting Files/AppDelegate.swift, line 34

It should not crash, it should just go to the login screen.

Custom server address

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

I'm self hosting a Tinode server, but can't connect to it from iOS client. Android and Web works fine

Describe the solution you'd like
A clear and concise description of what you want to happen.

Configure server setting, same options as the android client.

Messages won't show up in the message view

Non-deterministic.
Observed this behavior in the MessageVC right after group chat creation.
Neither outgoing nor incoming messages show up in the message view.
Examined the "messages" table in the sqlite database in such cases: the table was empty.

Track down the bug, identify the root cause and fix.

unsupported version qKpY7029b1Q

Describe the bug
iOS client will stuck in log in screen after click on login button
Server will show unsupported version

To Reproduce
Steps to reproduce the behavior:

  1. Go to IOS client
  2. input id and password
  3. click sign in button
  4. See error

Expected behavior
Log in to the app and show chat list

Screenshots
Screenshot 2023-03-26 at 20 25 33

Tinodios (please complete the following information):

  • Version v1.12.0 and 47022ae
  • Device Simulator and iPhone 11 prox max
  • iOS version, 16.3.1

Server

  • Type: my own setup
  • Server type: unmodified
  • Server version: v0.22.4

Additional context
Server Console:
I2023/03/26 20:18:06 ws: session started qKpY7029b1Q 36.231.179.204:53435 1
I2023/03/26 20:18:06 in: '{"hi":{"ua":"Tinodios/1698 (iOS 16.4; en); tinode-swift/1.12.0-rc1","id":"67881","lang":"en","ver":"0.18"}}' sid='qKpY7029b1Q' uid=''
W2023/03/26 20:18:06 s.hello: unsupported version qKpY7029b1Q
I2023/03/26 20:23:32 ws: session started bxDkbFpzt74 36.231.179.204:53805 1
I2023/03/26 20:23:33 in: '{"hi":{"ua":"Tinodios/1706 (iOS 16.4; en); tinode-swift/1.11.3","id":"89668","lang":"en","ver":"0.18"}}' sid='bxDkbFpzt74' uid=''
W2023/03/26 20:23:33 s.hello: unsupported version bxDkbFpzt74

Something wrong with auto-reconnect

Something is off with auto-reconnect. The client repeatedly creates connections to the server, sends {hi} but no {login}:

2019/06/05 12:10:40 in: '{"hi":{"ua":"Tinodios\/1 (iOS 12.2; en); tinode-swift\/1.0","id":"151","dev":"CCE21C82-C877-4773-95BC-A903D2435274","lang":"en","ver":"0.15"}}' ip='127.0.0.1:50844' sid='dhf3tnguijE' uid=''
2019/06/05 12:10:40 in: '{"sub":{"id":"129008","topic":"usr6gesh4vSn_Q","get":{"data":{"limit":24},"sub":{"ims":"2019-06-05T01:36:29.578Z"},"desc":{"ims":"2019-06-05T01:36:29.578Z"},"what":"data sub desc"}}}' ip='[::1]:50857' sid='bV_S6PJUNG4' uid='wjKtwAryZPg'
2019/06/05 12:10:41 ws: session started nR_2zlGdunY 16
2019/06/05 12:10:41 in: '{"hi":{"ua":"Tinodios\/1 (iOS 12.2; en); tinode-swift\/1.0","id":"152","dev":"CCE21C82-C877-4773-95BC-A903D2435274","lang":"en","ver":"0.15"}}' ip='127.0.0.1:50844' sid='dhf3tnguijE' uid=''
2019/06/05 12:10:42 ws: session started 4b6b_1LlHoQ 17
2019/06/05 12:10:42 in: '{"hi":{"ua":"Tinodios\/1 (iOS 12.2; en); tinode-swift\/1.0","id":"153","dev":"CCE21C82-C877-4773-95BC-A903D2435274","lang":"en","ver":"0.15"}}' ip='127.0.0.1:50844' sid='dhf3tnguijE' uid=''
2019/06/05 12:10:43 ws: session started 3VNGbEQ74EI 18
2019/06/05 12:10:43 in: '{"hi":{"ua":"Tinodios\/1 (iOS 12.2; en); tinode-swift\/1.0","id":"154","dev":"CCE21C82-C877-4773-95BC-A903D2435274","lang":"en","ver":"0.15"}}' ip='127.0.0.1:50844' sid='dhf3tnguijE' uid=''
2019/06/05 12:10:44 ws: session started _LWpTGOz58I 19
2019/06/05 12:10:44 in: '{"hi":{"ua":"Tinodios\/1 (iOS 12.2; en); tinode-swift\/1.0","id":"155","dev":"CCE21C82-C877-4773-95BC-A903D2435274","lang":"en","ver":"0.15"}}' ip='127.0.0.1:50844' sid='dhf3tnguijE' uid=''

To reproduce start the server, connect the client. Shut down then restart the server. You may have to wait a few minutes before restarting.

CFBundleVersion

hi
when I want to run on simulator I get this error :
I test it on iPhone 11, iPhone 8

Details
Failed to install the requested application
Domain: NSPOSIXErrorDomain
Code: 22
Failure Reason: The application's Info.plist does not contain CFBundleVersion.
Recovery Suggestion: Ensure your bundle contains a CFBundleVersion.
User Info: {
bundleURL = "file:///Users/appleland/Library/Developer/Xcode/DerivedData/Tinodios-aavztrdhtdgnsabebxzzvjqghlqp/Build/Products/Debug-iphonesimulator/Tinodios.app/";
}
--

Xcode version : Version 11.1 (11A1027)

Separate the SDK code (Create a package for the SDK)

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Account deletion not working

When the user attempts to delete an account from the Tinodios, the application returns "Action failed: malformed (400)".

Steps to reproduce the behavior:
0. The problem can be easily reproduced in the local setup (e.g. bring up a single-instance Tinode server locally per https://github.com/tinode/chat/tree/master/docker/docker-compose#full-stack). Tinode server will be available locally at port 6060.

  1. Start a Tinodios client and log in as alice with password alice123.
  2. Go to 'Profile -> Account & Security'.
  3. Click on 'Delete account' and confirm the action.
  4. See error

Expected behavior
The account should be deleted cleanly from both the server and the client.

Additional context

  1. Tindroid demonstrates the correct behavior of the account deletion feature and can be used as a reference.
  2. Tinodios is missing the implementation of the Storage.deleteAccount() which is supposed to purge the account data from the client's local storage.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.