Giter Site home page Giter Site logo

farooqkz / chooj Goto Github PK

View Code? Open in Web Editor NEW
73.0 9.0 12.0 28.24 MB

Matrix chat app for KaiOS feature phones supporting voice calls

JavaScript 15.60% HTML 0.34% CSS 2.63% TypeScript 81.43%
kaios kaios-app webrtc matrix matrix-org matrix-client inferno infernojs js javascript

chooj's People

Contributors

affenull2345 avatar farooqkz avatar pinusc avatar plan5 avatar rotmoded avatar simon-laux 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chooj's Issues

Crashes on launch with no available rooms

If you have no rooms or DMs available, and you log in, Chooj gets stuck on the "Please Wait" screen.

This can easily be reproduced on a freshly created account somewhere.

The core of it seems to be the Unhandled promise rejection TypeError: n.rooms[e] is undefined error. If I create rooms in some other client, then this doesn't appear and the interface loads normally.

Fetching new TURN credentials 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Getting saved sync token... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Getting push rules... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Got saved sync token 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Getting saved sync... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Got reply from saved sync, exists? false 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Got push rules 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Checking lazy load status... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Checking server lazy load support... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Enabling lazy load on sync filter... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Checking whether lazy loading has changed in store... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Storing client options... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Stored client options 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Getting filter... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Sending first sync request... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
Waiting for saved sync before starting sync processing... 
    at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)  
2.a9b495e7.chunk.js:1:23151
[ListView] Constructor was called: cursor=0 
    at t (app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:25368)  
main.9a45c4fd.chunk.js:1:25368
Unhandled promise rejection TypeError: n.rooms[e] is undefined
Stack trace:
[762]/t/n.cursorChangeCb@app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:32826
t@app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:25658
De/a<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12162
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12134
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12106
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12568
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12106
Ue@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13474
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11895
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11470
Ue@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13474
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11895
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11470
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12568
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12106
je/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13737
je@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13605
Ne/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:18357
Ne@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:18252
je/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:15486
je@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:15241
Be@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:18874
He@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:20195
Ve@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:19813
Ye.prototype.setState@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:20646
[762]/t/me<@app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:44738
d/i<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:41419
s.prototype.emit@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:43431
R<.value@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:902139
e/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:891059
S@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:734104
k/o._invoke@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:733894
x/</e[t]@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:734280
r@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23555
s@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23769
te/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:655694
n@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:442165
 
    at e.exports (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:442833)
    at re (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:656074)
    at ne/</t< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:656233)
    at e.exports (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:138966)
    at ne/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:656185)
    at <anonymous> (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:305276)
    at S (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:305032)
    at E (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:305091)  
2.a9b495e7.chunk.js:1:442833

Add CSS animations to different part of Chooj

This issue is only for animations regarding add/remove of Component or Elements.
Tasks:

  • Animation when changing tabs
  • Animation when changing items in ListView
  • Animation when opening a menu
  • Animation when Waiting screen disappears

If you've got any other idea, just comment on this issue and I'll add them to the list.

Items in Settings tab

  • Auto accept invite or not
  • The ability to change display name and avatar
  • The ability to completely disable push notifications or not(perhaps temporary)
  • The ability to import settings in a JSON format
  • The ability to export settings in a JSON format
  • Ring tone for incoming calls(may be None)
  • Media loading(always or on request on wifi and mobile data)
  • Logout button
  • List of servers for public room discovery

Paginate between events

Currently only the latest 8 events are shown. The ability to paginate between events is essential.

Better images viewer

Would be quite useful if you added the option to open an image in fullscreen and be able to zoom in/out, download it, rotate it and etc.

getting errors logging into matrix.org account

Caught /sync error decryptCriticalEvents@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:65628:14
_callee9$@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:75157:29
tryCatch@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:1522:14
invoke@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:1741:22
["./node_modules/babel-preset-inferno-app/node_modules/regenerator-runtime/runtime.js"]/defineIteratorMethods/</prototype[method]@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:1575:16
asyncGeneratorStep@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:604:16
_next@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:626:9

Unable to login on latest build

Unhandled promise rejection TypeError: Object(...)(...) is null
Stack trace:
componentDidUpdate@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/bundle.js:1532:7
["./node_modules/inferno/dist/index.dev.esm.js"]/createDidUpdate/<@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:34081:5
callAll@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:31801:5
applyState@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:34739:5
rerender@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:34723:7

at ["./node_modules/core-js/internals/host-report-errors.js"]/module.exports (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:9767:49)
at dispatchEvent (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:18197:121)
at ["./node_modules/core-js/modules/es.promise.js"]/onUnhandled/</result< (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:18211:16)
at ["./node_modules/core-js/internals/perform.js"]/module.exports (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:12014:14)
at ["./node_modules/core-js/modules/es.promise.js"]/onUnhandled/< (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:18208:16)
at <anonymous> (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:13168:8)
at run (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:13136:5)
at listener (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:13147:3)

chat: do not always show the input field

It is not necessary to display the input field if you do not want to write. it would suffice to show a bottom bar, where you could start writing with softLeft and softRigth to display options for a message.

  //bottom bar
  let bottom_bar = function (left, center, right) {
    document.querySelector("div#bottom-bar div#button-left").textContent = left;
    document.querySelector("div#bottom-bar div#button-center").textContent =
      center;
    document.querySelector("div#bottom-bar div#button-right").textContent =
      right;

    if (left == "" && center == "" && right == "") {
      document.querySelector("div#bottom-bar").style.display = "none";
    } else {
      document.querySelector("div#bottom-bar").style.display = "block";
    }
  };

Login does not work with split Matrix Domain/Homeserver Domain configurations

I'm able to log into my matrix.org account, but I can't log into my personal domain account - it seems the issue is that the login flow assumes that the homeserver URL is the same as the matrix ID URL.

https://github.com/farooqkz/chooj/blob/master/src/Login.js#L34

If your IDs are example.com domains (@user:example.com), but the actual server is matrix.example.org, this does not work.

An extra field to set these separately (defaulting to using the same) would enable logging into this supported configuration.

Thanks for all the work on this - excited to see KaiOS get a proper Matrix client!

Chooj should remember the state of tabs and DM or Rooms View

The current behavior:

  • You are in "Rooms" tab focusing on the 3rd room
  • You open a room or DM
  • You go back to main screen by pressing Backspace
  • Chooj is in "People" tab and on the first room

Expected behavior:

  • Chooj must be in "Rooms" tab focusing on the 3rd room

Mooj

I cannot install mooj app in my kaios phone please help me

more explanations are needed for matrix newbies

in the kaios discord server, the question often arises how the login works, i would find it useful if you could explain that in the readme file.

  • where to create a matrix account
  • explain the parameters of the login form
  • how to make qr code for login

PASS [homeserver] [homerserver url] [username] [password]

Blank screen with GerdaOS

With the build of the bananahacker store and GerdaOS I only get a blank screen starting the app. I am happy to provide more data. (non-programmer)

Idea: Update checking via Matrix

Chooj should have a guest-accessible Matrix room (it could be #chooj-git-updates) that has a log with the latest nightly builds. The app would check if its Git revision matches the latest version in that room and show a notification to the user if there is an update available.

Stuck on "Please wait" after login

Not sure if I'm doing something wrong here, but I can't get past the "Please wait" screen after successful login. The only thing I can do is close the app.

This is on a Nokia 8110 4G

matrix test account

a matrix test account would be helpful during the development phase. In the login area the input fields would already be pre-filled.

Presence status

Would be VERY useful if you could see when people are online or offline.

Better chat interface

Right now the chat looks like IRC so I think it would be better if it got improved. Here's a crappy concept I made
(the "+" is for attaching files and sending emojis/gifs and the options menu can have specific settings for the chat. also please pretend the profile pictures in this concept are circular)
chooj concept design
:

End to End Encryption

First of all, thank you for all your work. Login works perfectly room list loads completely.

Device: Nokia 6300 4G
KaiOS Version: 2.5.4

Is there support for encrypted messages? All my rooms have a "m.bad.encrypted" message and I am unable to send a messages. When new messages appear to be updating but I'm unable to enter my encryption key I usually type in when I login to a matrix client. Is there a way to push the key into the application?

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.