Giter Site home page Giter Site logo

staltz / manyverse Goto Github PK

View Code? Open in Web Editor NEW
924.0 53.0 81.0 52.63 MB

A social network off the grid (real repo at https://gitlab.com/staltz/manyverse)

Home Page: https://manyver.se

JavaScript 9.41% Java 0.91% Objective-C 0.34% TypeScript 87.79% Shell 0.85% Ruby 0.15% Starlark 0.04% HTML 0.14% Dockerfile 0.17% NSIS 0.08% PowerShell 0.11%
manyverse ssb scuttlebutt peer-to-peer p2p ssbc cyclejs

manyverse's Introduction

Manyverse

A social network off the grid

(On Android, iOS, Windows, macOS, Linux)

Read more on our Homepage

Documentation

License

See file AUTHORS for copyright holders.

MPL 2.0. Most source code files for this project are licensed under the Mozilla Public License 2.0 (see file LICENSE), while some scripts and test files are dedicated to the Public Domain (see file CC0-1.0). Each file specifies its own license.

Backers

Thanks to our many backers, this project has some financial support. Become a backer too, with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on GitLab with a link to your site. [Become a sponsor]

Thanks

Browserstack provides us access to their great mobile app testing tools such as App Live and App Automate. These services are vital for testing Manyverse on dozens of different devices and OS versions.

Sentry provides us a free organization account to receive (opt-in) crash reports from all platforms (Android, iOS, MacOS, Windows, Linux). This is vital to help us to quickly debug and fix crashes, improving user experience.

Crowdin provides us a free organization account on their translation platform, where many volunteers have written translations of the textual elements in the Manyverse app.

manyverse's People

Contributors

achou11 avatar arj03 avatar atomrc avatar beatrupp avatar davegomez avatar dependabot[bot] avatar epragalakis avatar happy0 avatar inoas avatar licaon-kter avatar luandro avatar mjwwit avatar mrmorals avatar nicopace avatar nuttwork avatar powersource avatar reconbot avatar retog avatar revolter avatar romuloalves avatar rplevy avatar staltz avatar utunga avatar wattroll 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  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

manyverse's Issues

Threads

  • ssb-threads
  • Public Feed shows only thread previews
  • ExpandThread component
  • Thread screen based on [email protected]
  • Thread screen supports Like
  • Thread screen supports going to profile
  • #36
  • ux: Thread screen with reply input section
    • Reply field and button
    • Actually publish a Msg to SSB when button is pressed
    • Clear field and hide keyboard, when submit button pressed
    • Show placeholder
    • When publishHook$.filter(isReply) emits, pull latest thread, then hide the placeholder
    • Scroll to bottom when published
  • dx: Put common avatar dimensions in Dimensions
  • ux: Comment button on MessageFooter
  • dx: e2e tests for the above
  • ux: Fix vertical margins around placeholder
  • Merge branch and release new alpha

PostMessage failing to handle non-array `content.mentions`

Steps to reproduce the bug:

Start up the app. [having previously established friendship, so major sync happens]

Expected behavior:

Syncs, stays up

Actual behavior:

Syncs for a while, then app dies

Technical details

  • MMMMM app version: 0.0.8-alpha
  • Device/phone model: OnePlus 5
  • Android OS version: 7.1.1

Here is the output from adb logcat when the app crashes

11-29 12:45:21.938 29199  2612 W unknown:ReactNative: Calling JS function after bridge has been destroyed: RCTDeviceEventEmitter.emit(["data",{"data":"M3Jttr5iO2NhLr3GDdIn/7G4GQwW15RK4zkMDO2EiMAzgj2/VitqKBoL6kIiCZVsMD03/XzRltqicAjsfe0SBX5uqtyoZ86gRBgQ9FvnETPv2N3L1N6uo1RmIYPomZpFiZmZlvmUqxK0mK98IMfXKWFFI2LeLceIoT6eoekPSuQPtKvIwJK72LHnAbHjQ8+CGVzs/bOdXNwA8kU4jToSgbGoHwqS5xWuczwmgVnKNzN+70wVAQ0ONlNgcBHLTeFVXIGcIcy1mx+pYbmh6WwUWH9IDl/hateU0VnQBQfdksy6urO00vBdi7F6vnoH0XqRgweke2NvDWFh6jjKdyGiPuPrN3FgaJQZKVFolF+Aq7X+c2xtO7f/UeoIDn3LtsiOcNnEzGm1+xFkJIe4yyfVc69xsYXPjxb1+R5ncudI+19wHr9J1RR15Y2vxVzt1/LHWO6hq02Uf07zXn94pvcKwDMhwLi6j0sQxziTp37IqPF+6eK38rcgkWtWvmVp/1RdhNDJIRS6mKN21W9CgHxuFBFXwYS+ZRZirUWjzMmPj7atiVBlTS1NK7EqrkyygDlaQ4agAUuHsc8Fvqe6jed7srMKYL9qoFJ/89e04u1d4CYU5uomtc483EVOlLkZ9YPl6SjdtIpBu2dpkZ9DqFEDVHuybjvP9MSN1CfgZqdquP7zOo9YjL3t1HA0K1y440xw3fO7OmpGXsP6acZETvFwngCRNDQQRVKkXk1S+x5gNX9vEGL8dJ2+9XrY4431ozm+n218nc8a0hY0LEom6S8=","id":3}])
11-29 12:45:21.944 29199  2612 W unknown:ReactNative: Calling JS function after bridge has been destroyed: RCTDeviceEventEmitter.emit(["data",{"data":"LExsf280PDzHHV3yt93uz9TR0xl24VyyZrYG8JM/fYUCMe08S8udtcSueZBzT5WE+X0LXfYRsPn8EId7jqHIu2yOCVRoK/PWEgFo1QdXt82yJrdzz51rlnMOxG+nq9M5WMxjCZl2I7GTbWbsI35PW1vnCt5nWol6c06OvLtGNOfCnt4VVmPr7VpIpQkLtplR5+CoMbEEHKGUaLk3IFkOJVrK2d4/H7bSl6ff8A7Pt3c75JI5kkJ0/cVU0fAOlmkQ9EuyAO9joohAAKythgGPtZ5OoDuAsMf7I8TbyIgdESuOPC9pa9fkb7Pdk1DeDmBU1NlZLHJWeFNEstUtHPcOE9GzAdsWB8NuGfbWEUdQRXSUHm7a60f8bzX4MFOqy2LD8zdvO2NMGnxJP/QlIMEdDU2vtrsGznbJWvcIiemjEhR9jvC5nxo7bTmNlLEKc8/nQ+TFbwJ5gA2/oiuYHob1SjE+FSh4K8xyboaTE43pqT5wcTraXmxfZp3qBaiNPcasg69RJIx9q2YotWk1zNxzC64M/IjXqD42h9EmeT42UBkUQzwvBdNFPQym3krdlya2+EuuxjxzfsvCpXlEJONHw3641GFKHtca0QnPkWo00WCVHBX3YqUjq50LzXKh8A9FGTvQx7fR+pGzDfLtKbdCfU6btil+xL3X3XYchip0mNzivimR3HaKnjeYmq5+2lz2tratT0pugTfvXG1mkQcp9MWVX3zNAvRba0zRSnCEjqFoLc6ypY22LD4yNCD5AwNJ32AjyX11twavDqwHAYGY6PGolPFVn1+CVxiZg/RYhKwcVLAp2y/YFMT95mWDEuSC0rJxiy2XZrWbJLOOjhPYt5PYBnbDy9WF+vnvZgrX6zf4GKR/QVmH/sEsM8UPXcgInitjE6lDarK9BkS0Zdquc+KR+zjXq2SUtLzUo19o2dvOx4k5XyHT4q89H51DsltwH6ipMfGz+cjBRLt12gJG3SDF/RGee4YQGm2s9fmSRxoj3KSCsb2HlXE9IWOV3uJnoKDxVaj6BXcPVofTKazFmDuachlzqwId8X0BMKpIbGkUiQOGPHYw8xcbysbxdWRcaWkFCouy94zuIvnrq9uwOqW4yotugDO2QAYLGdp+7mw+GcasrjRI32UBR1aMkgvJmYshXgG28xj9l/uL1x5qh9p6Zl74dT/ZqFcnUpJeVT1CwpuWRdkYoLcHeOoaCaTun93Qn9RQniqaGFPdj5oesJczeEqqFut235CQX0xqkwjbt9z4764XUE1DOxtCfMCE4gjiog8tLFV/9ucV/AX7qf23+hU1kdClwKiR+DhniM7mYZ/u/Z32Vdr6ipaD5+SbLiMbmcGDT2XGTmMubc2Vns3k8cE04VKLEsQz66YNZQNfvqcmGQunr9wwUW94LH933iGuH5uskyPko24ToizQ8EfG7ysfUKKmKcOkUS8gGumfo2ViaxIpqgYvhJeSNM0D2ljOlVjLZjWr0AE7sJJe0iNPjI0VfAvflm7mkn17rAA+WYwY+WtvL8crdzAkjIUha080TrPlmm6N48/AxCtJhizZh+JmZegOs2vCEuo3srmr3y6Mylxj/ffHRwTY+7pDfbfCmf59KpipnvFP4zA2gPVy/FMlbusUd7bsUEkP4etA5Nw7DhTgNxWEqp/3Y2t0dOUKqc53Q4MC92MbOouaATrE5njfVA8d7PhGnX/RNfelAw1K6HWcz+ExwtpmBh5cfJ1VlRXNxBpvc27+1gLygsL8/GyfT4t/tLXF2zhZg2Tl9oJqM4ZDjMRVRCyv4DCE/7gYL9/ppU+nslB+cFV4NDJp4BkfMRD6VqGUt/L5OZwyKwrwB1rlrTrkEVLuxLIq/tlNhx9KR+TLTGaWdLkSLncJH3bqT9ac74wAP3ifqO1oxF1jZ9HVLAKTiMq1K1Tk2XG+01Jh4RbzUeR+CrGUfRxGOEh4AylVJJcIZKkYNnTO5oZT0XCSoXm3uTuI+heOvRaBWQ50T4QX4Vbxm+ZGvo+Mal/VEY9fH0fDJZiDT5dLMCOIMeaO5hUKorAD5R2sMjOvbDsJ1mu4cgT0/bSVUtZBqIaptMK554Q+2NDhXEgQNs2hsJsrcRuJqRiNbI6qJ0mG+G4fj8sfGHRndw7hRy0hsqRMuCgs5iQbhHhWp1NoxdcsAaGi+VorS4cqGharRHfdwR/z4uCrJgc53QJ8VZrXE8aSuGdx1QmeBkXl9Rngja24F+xdKriRi19EGo/80gGGML15tjDJb398U7vOPaeEYiPUo6FoluDMn2r1ZtKuy/BReZF8jdc7+a19RIuQesO+EETN8DyxzB2u0+USFt5lTJ0cbBEYk1nX8o48OIRpssIgoA3h7umr7B9MyD1R4IwgSDI6K2ZtqpgiuFyhNzlAklZC36HK08laL6BMctn89Id/vgOwTh4TlGX3gHDP0PuAJcCptCwv/0TuGJ1oRNThkO9RNcSVePNb51aj0/ow+O9V5unkuWSJnhxmuIu2HmcWfbSwJxClADx9NJuFQOcGRcs3Rj05B5rvFKYey4TpxTcWoZhdQmRXJO90f28S6uAIUE5pZOm5R2RRQ/kZdPfr21iLphEO+smxD7rKIdCycLJ54+O0lLWE+762+8BVnPVCTPs0kpNK4qHXm9N+QaGwrXnsXSkl9rwakusIJvlNRxrgAtmdAfhSyX8ZcOCO9DviWVjVZAUrWDjJ0r91jE4M0faNe8iFrFBHS+LeVRN5OZdHCo8890tX8STHVUpyG/0MXifBRe0v38Krbr+q/jRMM+itsSDNkQ8Uh58Cl3IPtTDGFMIDsXOzIb/z98P4UyJRmyyhwBeMkz7FjExfF1gh2z70ycLTpgm0LC9Z3/PixUw8yXNCHfADdaplyt+2Fw2HMOie4riu3zYQwFEa8UdHAmh2AW1FISIpIWV/LFrIv7wodL5F1kgNDR871ALIJA+C0aYXipc/yjfcCcrCKSk96ffwj+RgqejWVmYdI8YtOPRkuJf1rK8qZK+e6CTNHjSsBX2Qdq9qAgETLgfXbDuw1XFnR36rTgLNfSXS/TyL47vKdnkk92WGhcOo8aEd0d+OAX7DJldGSaFPIN9G1obosJxjGVP9AuC5HtjcC53ZVGtG7JXvhtDDck1Sv1y3Fj2H3w9uqhgggUcSG15KuWUVc2qfh+KhBE8/OMou8V2FqeIkzUbJOGncHcWbKaj+ZUI+HQhyU01NTqvMHrZjvnmeg7Wv5zmwxEB7u0gA2PJt5fYTnmIXAf0UfTV2wzyNt7WLiXS5IugIOn3qZSGHKdcjk+b9afN8c9cyk1Y+s/8pcJpJLF2ySw9rDdTCly1ZSL6jRe1Zwz6I0FXMfG27Vjvck4Kj+kY5ggW8OFjJu7hyzqfFwAlwU8KTM3xfmNmCLRjBywheoU1UaB8g5eysYDdb61ndWChXsokN3qA8X7JFhoUUxQzIGcff8tmnbYgvJ4YnMD3+H0TAofzbPgclPaa+0L1BoV66k/1a13mrpGPMSfcrf4gryYUBo1oAAzkXXuCZH7ae0Sb22q2qZ7ptnghGpvqRaRLql5dvfVr5pAx/3rtqBQRShFHzrjn+MQD74xgQu8oRVqFte49N+PNwBBgmZ7EtAiNyMhCrmZfn9Mu3onH2pvQydgxeRgZUzC3Xgbi5uUJCIE8pg1gvdM0jSoSOQ1rMvJ0txtFiQmJPJMPkgNdpMGPF0TPZEp3Foh0Cjm/Uj0jr3F/ATS+HszmfBMUeE7j0h0TjhKpkfk35rxccaRq52p3ZaP9vpk0eQtJQPSi+u9QMEhRbK+tMRkhukiDYMSN0k+sUk0kw5vThbFmJNH6HRZK4uOQ8ezBG0Q1mCdquy/LERrWZgM8zNZnf9vTWwyvDVqYvpkeX4I1f/baiP9zoDpKGZ1roo+uNe6OQ65SEjSPzB1Jt7Wl1Iyr+/uuPWfc7XJvu66ncHuGZvdb6R
11-29 12:45:21.950 13461 13461 I WCNSS_FILTER: ibs_recv_ibs_cmd: Received IBS_SLEEP_IND: 0xFE
11-29 12:45:21.951 13461 13461 I WCNSS_FILTER: ibs_serial_clk_voteoff_timeout: uart serival Rx vote off
11-29 12:45:21.951 13461 13461 I WCNSS_FILTER: ibs_msm_serial_clock_vote: vote UART CLK OFF using UART driver's ioctl()
11-29 12:45:21.951 13461 13461 D WCNSS_FILTER: wcnss_release_wakelock

It is truncated, there is more like that. but all have the same first part, just different data.

Unresponsive components (in the JS thread)

Steps to reproduce the bug:

install v0.0.9 alpha over an existing v0.0.9 alpha install

Expected behavior:

UI responds: can like, post message, select profile

Actual behavior:

The only UI events that seem to be handled are scrolling up and down the feed, and swiping left/right to see the other columns.

Pressing for a long time in the new post area eventually shows a "paste" option, which does paste the clipboard. But it is impossible to edit the paste. Not even a keyboard shows up.

Technical details

  • MMMMM app version: v0.0.9-alpha
  • Device/phone model: OnePlus5
  • Android OS version: 7.1.1, OxygenOs 4.5.14

Profile screen's header should have shrinkable height

Steps to reproduce the bug:

  • Open a profile screen for some account that has a long description

Expected behavior:

  • Header shows a preview of the long description
    • But can read the entire description without UI noise, by pressing some "read more" button that opens another screen
    • Or truncates the long description
  • Header shrinks when user scrolls through the feed
    • Allows account messages with comfortable amount of UI space

Actual behavior:

  • Header height is fixed (does not change when scrolling)
  • Header height grows to accomodate long description (consider a very long description and how it kills the Feed space)

Blank screen when reopening after a long while

Steps to reproduce the bug:

  • Open app
  • See the central screen as expected
  • Don't close app, but go to other apps
  • Spend some many minutes away
  • Reopen app

Expected behavior:

See the central screen as expected.

Actual behavior:

Blank screen, except for the indigo Android status bar.

Technical details

  • MMMMM app version: code in workers branch 2018-02-06
  • Device/phone model: Samsung Galaxy S7
  • Android OS version: 7.0

Mentions tab

Also known as "notifications".

  • UI design
  • Implementation

Add blobs

  • Update Compose screen to have an upload image button
  • Support only images, for now
  • Allows posting the blob/image in a new message
  • Allow updating the profile picture

Crash upon toggling WiFi

Steps to reproduce the bug:

  • Have WiFi enabled
  • Open the app
  • Leave the app running in the background
  • Disable WiFi

Expected behavior:

App continues working as if nothing had happened.

Actual behavior:

Crash. (Simple Android popup)

Technical details

  • MMMMM app version: code in workers branch 2018-02-06
  • Device/phone model: Samsung Galaxy S7
  • Android OS version: 7.0

Getting error while running 'yarn'

$ yarn
yarn install v0.24.6
[1/4] ๐Ÿ”  Resolving packages...
[2/4] ๐Ÿšš  Fetching packages...
[3/4] ๐Ÿ”—  Linking dependencies...
[4/4] ๐Ÿ“ƒ  Building fresh packages...
[7/9] โข€ utf-8-validate
[8/9] โข€ react-native-ssb-client
[3/9] โข€ fsevents
[4/9] โข€ leveldown: prebuild-install info unpacking @ /Users/preetam/.npm/_prebuilds/https-github.com-level-leveldown-relea
warning Error running install script for optional dependency: "/Users/preetam/practice/mmmmm-mobile/node_modules/thread-sleep: Command failed.\nExit code: 7\nCommand: sh\nArguments: -c node-pre-gyp install --fallback-to-build\nDirectory: /Users/preetam/practice/mmmmm-mobile/node_modules/thread-sleep\nOutput:\nnode-pre-gyp info it worked if it ends with ok\nnode-pre-gyp info using [email protected]\nnode-pre-gyp info using [email protected] | darwin | x64\nnode-pre-gyp info check checked for \"/Users/preetam/practice/mmmmm-mobile/node_modules/thread-sleep/lib/binding/Release/node-v57-darwin-x64/thread_sleep.node\" (not found)\nnode-pre-gyp http GET https://node-pre-gyp-forbeslindesay.s3.amazonaws.com/thread_sleep/v1.0.4/Release/thread_sleep-v1.0.4-node-v57-darwin-x64.tar.gz\nnode-pre-gyp ERR! UNCAUGHT EXCEPTION \nnode-pre-gyp ERR! stack Error: Cannot find module 'internal/fs'\nnode-pre-gyp ERR! stack     at Function.Module._resolveFilename (module.js:485:15)\nnode-pre-gyp ERR! stack     at Function.Module._load (module.js:437:25)\nnode-pre-gyp ERR! stack     at Module.require (module.js:513:17)\nnode-pre-gyp ERR! stack     at require (internal/module.js:11:18)\nnode-pre-gyp ERR! stack     at evalmachine.<anonymous>:40:20\nnode-pre-gyp ERR! stack     at Object.<anonymous> (/Users/preetam/practice/mmmmm-mobile/node_modules/thread-sleep/node_modules/node-pre-gyp/node_modules/tar/node_modules/fstream/node_modules/graceful-fs/fs.js:11:1)\nnode-pre-gyp ERR! stack     at Module._compile (module.js:569:30)\nnode-pre-gyp ERR! stack     at Object.Module._extensions..js (module.js:580:10)\nnode-pre-gyp ERR! stack     at Module.load (module.js:503:32)\nnode-pre-gyp ERR! stack     at tryModuleLoad (module.js:466:12)\nnode-pre-gyp ERR! System Darwin 16.6.0\nnode-pre-gyp ERR! command \"/usr/local/Cellar/node/8.0.0_1/bin/node\" \"/Users/preetam/practice/mmmmm-mobile/node_modules/thread-sleep/node_modules/.bin/node-pre-gyp\" \"install\" \"--fallback-to-bu[-/9] โ „ waiting...
[8/9] โ „ react-native-ssb-client
[-/9] โ „ waiting...
[-/9] โ „ waiting...
error /Users/preetam/practice/mmmmm-mobile/node_modules/react-native-scuttlebot: Command failed.
Exit code: 1
Command: sh
Arguments: -c node patch-scuttlebot.js && node insert-bundle.js && cd ../../ && react-native link react-native-node
Directory: /Users/preetam/practice/mmmmm-mobile/node_modules/react-native-scuttlebot
Output:
/Users/preetam/practice/mmmmm-mobile/node_modules/noderify/bin.js:4163
                if (pkg.main) {
                       ^

TypeError: Cannot read property 'main' of undefined
    at /Users/preetam/practice/mmmmm-mobile/node_modules/noderify/bin.js:4163:24
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:490:3)
child_process.js:611
    throw err;
    ^

Error: Command failed: /Users/preetam/practice/mmmmm-mobile/node_modules/react-native-scuttlebot/node_modules/.bin/noderify --replace.chloride=sodium-browserify-tweetnacl --replace.sodium-chloride=sodium-browserify-tweetnacl --replace.node-extend=xtend --replace.leveldown=memdown /Users/preetam/practice/mmmmm-mobile/node_modules/react-native-scuttlebot/ssb-peer.js > /Users/preetam/practice/mmmmm-mobile/node_modules/react-native-scuttlebot/bundle.js
/Users/preetam/practice/mmmmm-mobile/node_modules/noderify/bin.js:4163
                if (pkg.main) {
                       ^

TypeError: Cannot read property 'main' of undefined
    at /Users/preetam/practice/mmmmm-mobile/node_modules/noderify/bin.js:4163:24
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:490:3)

    at checkExecSyncError (child_process.js:568:13)
    at execSync (child_process.js:608:13)
    at Object.<anonymous> (/Users/preetam/practice/mmmmm-mobile/node_modules/react-native-scuttlebot/insert-bundle.js:25:1)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Function.Module.runMain (module.js:605:10)
    at startup (bootstrap_node.js:158:16)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Show self avatar image in "compose" fields

Everywhere where we have a "write message" field with an avatar placeholder, we should check if there is an existing blob for the current user's avatar, and display that instead of a placeholder.

Screen: Compose message

A screen dedicated to authoring a new message. First version of this screen is meant for a new thread, but this screen should be repurposed for authoring replies to other messages too.

  • ux: ComposeScreen works for publishing new thread root
  • dx: Refactor navigator args for each screen
  • ux: Refresh public tab feed when publishing
  • ux: Force navigation to go back when keyboard hides
  • ux: Fix placeholder not being replaced by post
  • e2e test all the above
  • dx: Use tsconfig noUnusedLocals

Fix markdown formatting of list item with special formatting

Steps to reproduce the bug:

Markdown:

- this will render because it's plain text in a list item
- *this will not because it's italic*

Expected behavior:

  • this will render because it's plain text in a list item
  • this will not because it's italic

Actual behavior:

  • this will render because it's plain text in a list item

Technical details

  • MMMMM app version: v0.0.13
  • Device/phone model: any
  • Android OS version: any

Unable to resolve module

I have an error on the emulator saying:

Body:
{"from":":/Users/projectr/R/mmmmm-mobile/index.android.je", "to":"./lib/main", "message": "Unable to resolve module '.lib/main' from /Users/projectr/R/mmmmm-mobile/index.android.js': could not resolve '/Users/projectr/R/mmmmm-mobile/lib/main as file nor as a folder....

Indeed there is no folder lib ... What am I doing wrong ? Is the folder lib installed via something else ?

Are private messages testable?

Installed alpha 0.0.10 apk on LineageOS v14 on a samsung note3. Runs stable.
Have managed a public post OK.
Channel added OK on public post, but doesn't render as a channel on mmmmm UI.
Channel renders successfully on patchwork.
Are private messages supported? I am trying to "befriend" my other device, but not sure if A) it is supported and B) what the UI steps are to do that.
Managed to change my username and bio OK.

Build Failure: Could not determine java version from '9.0.4'.

~/code/mmmmm-mobile$ react-native run-android
Scanning folders for symlinks in /home/ssb/code/mmmmm-mobile/node_modules (12ms)
Starting JS server...
Building and installing the app on the device (cd android && ./gradlew installDebug)...

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '9.0.4'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html

Hi

I'm not a cat

How to add people?

I know it's alpha, but I sense that a lot of the features rely on connecting to other people. Is "Peers around you" the only way to connect right now?

Same account on desktop and mobile?

I own a server. I want to be able to host my .ssb folder on it so I can share one account between my computer and (relevant here and why I posted here first) mobile phone. I'd like to be able to host me and a friend and maybe more on my server...

Should I move this to the mainline ssb discussion? And where should I go to do that? I am not good with computer.

๐Ÿ˜†๐Ÿ˜๐Ÿ˜œ๐Ÿ˜‚๐Ÿคฃ๐Ÿ˜

Pull-to-refresh, and new updates badge

  • Pull to refresh on central feed
  • New updates badge or dot in central tabs
    • Use sbot.createFeedStream (live) to increment a counter
    • Reset the counter when the feed refreshes
    • Render the dot
    • implement ssb-threads updates
      • reimplement ssb-threads using flumeview-level
      • implement sbot.threads.publicUpdates based on the index, lightweight
      • test in mmmmm. maybe not use pull-more? (because of the cache)
      • reimplement also for profile threads
      • downgrade react to 16.0.0 (update also pull-flat-list + react-propify-methods)
      • test in mmmmm
      • clean up unused code in ssb-threads, document usage
      • release new ssb-threads
      • merge dev branch
  • Press on public tab (when scroll is already at top) => refresh

Problem with react-native-simple-markdown handling some youtube or video content

From @alanz in issue #9

Steps to reproduce the bug:

Start up the app. [having previously established friendship, so major sync happens]

Expected behavior:

Syncs, stays up

Actual behavior:

Syncs for a while, then app dies

Technical details

  • MMMMM app version: 0.0.8-alpha
  • Device/phone model: OnePlus 5
  • Android OS version: 7.1.1

And I guess it is content related. After syncing a bit more, it crashes with

1-29 14:50:08.726 17051 17093 V nodejs  :   error: 'Error: challenge not accepted\n    at abort (/data/data/com.mmmmm/rnnodeapp/index.js:68584:45)\n    at Object.cb (/data/data/com.mmmmm/rnnodeapp/index.js:68590:24)\n    at drain (/data/data/com.mmmmm/rnnodeapp/index.js:48904:23)\n    at /data/data/com.mmmmm/rnnodeapp/index.js:48921:18\n    at /data/data/com.mmmmm/rnnodeapp/index.js:48882:7\n    at /data/data/com.mmmmm/rnnodeapp/index.js:67055:9\n    at drain (/data/data/com.mmmmm/rnnodeapp/index.js:68878:18)\n    at Socket.<anonymous> (/data/data/com.mmmmm/rnnodeapp/index.js:68899:5)\n    at emitOne (events.js:101:20)\n    at Socket.emit (events.js:188:7)',
11-29 14:50:08.726 17051 17093 V nodejs  :   state: undefined }
11-29 14:50:09.321 17051 17080 E ReactNativeJS: TypeError: undefined is not an object (evaluating 't.target.match')
11-29 14:50:09.321 17051 17080 E ReactNativeJS: 
11-29 14:50:09.321 17051 17080 E ReactNativeJS: This error is located at:
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in r
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTScrollView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in ScrollView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in AndroidViewPager
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in n
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in p
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in n
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in RCTView
11-29 14:50:09.321 17051 17080 E ReactNativeJS:     in t
11-29 14:50:09.332 17051 17080 E ReactNativeJS: TypeError: undefined is not an object (evaluating 't.target.match')

And this is alpha code. But nice to see it shaping up.

React Native crash related to YogaNodes

Cannot add a child that doesn't have a YogaNode to a parent without a measure function

logcat:

11-09 00:24:00.304  4182  4182 I Timeline: Timeline: Activity_launch_request id:com.mmmmm time:27115905
11-09 00:24:00.304  1252  4244 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.mmmmm/.MainActivity bnds=[32,197][196,387]} from uid 10111 on display 0
11-09 00:24:00.348  1252  3638 V BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@b565e60
11-09 00:24:00.348  1252  3638 I ActivityManager: Start proc 18805:com.mmmmm/u0a274 for activity com.mmmmm/.MainActivity
11-09 00:24:00.428 18805 18805 W art     : Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
11-09 00:24:00.466 18805 18805 D ReactNative: ReactInstanceManager.ctor()
11-09 00:24:00.469 18805 18805 V fb-UnpackingSoSource: locked dso store /data/user/0/com.mmmmm/lib-main
11-09 00:24:00.471 18805 18805 I fb-UnpackingSoSource: dso store is up-to-date: /data/user/0/com.mmmmm/lib-main
11-09 00:24:00.471 18805 18805 V fb-UnpackingSoSource: releasing dso store lock for /data/user/0/com.mmmmm/lib-main
11-09 00:24:00.483 18805 18805 D ReactNative: ReactInstanceManager.createReactContextInBackground()
11-09 00:24:00.483 18805 18805 D ReactNative: ReactInstanceManager.recreateReactContextInBackgroundInner()
11-09 00:24:00.484 18805 18805 D ReactNative: ReactInstanceManager.recreateReactContextInBackgroundFromBundleLoader()
11-09 00:24:00.484 18805 18805 D ReactNative: ReactInstanceManager.recreateReactContextInBackground()
11-09 00:24:00.484 18805 18805 D ReactNative: ReactInstanceManager.runCreateReactContextOnNewThread()
11-09 00:24:00.540 18805 18825 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
11-09 00:24:00.547 18805 18824 I art     : Thread[9,tid=18824,Native,Thread*=0xabc78400,peer=0x12dd9ca0,"Thread-2334"] recursive attempt to load library "/data/app/com.mmmmm-1/lib/arm/libfb.so"
11-09 00:24:00.550 18805 18824 D ReactNative: ReactInstanceManager.createReactContext()
11-09 00:24:00.571 18805 18825 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I741a3d36ca)
11-09 00:24:00.571 18805 18825 I Adreno-EGL: OpenGL ES Shader Compiler Version: E031.29.00.00
11-09 00:24:00.571 18805 18825 I Adreno-EGL: Build Date: 04/04/16 Mon
11-09 00:24:00.571 18805 18825 I Adreno-EGL: Local Branch: mybranch19053788
11-09 00:24:00.571 18805 18825 I Adreno-EGL: Remote Branch: quic/LA.BF.1.1.3_rb1.12
11-09 00:24:00.571 18805 18825 I Adreno-EGL: Local Patches: NONE
11-09 00:24:00.571 18805 18825 I Adreno-EGL: Reconstruct Branch: NOTHING
11-09 00:24:00.591 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTGroupViewManager
11-09 00:24:00.593 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTGroupShadowNode
11-09 00:24:00.601 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTShapeViewManager
11-09 00:24:00.601 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTShapeShadowNode
11-09 00:24:00.605 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTTextViewManager
11-09 00:24:00.606 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTTextShadowNode
11-09 00:24:00.608 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.checkbox.ReactCheckBoxManager
11-09 00:24:00.610 18805 18825 I OpenGLRenderer: Initialized EGL, version 1.4
11-09 00:24:00.617 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.uimanager.LayoutShadowNode
11-09 00:24:00.628 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.picker.ReactDialogPickerManager
11-09 00:24:00.631 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.drawer.ReactDrawerLayoutManager
11-09 00:24:00.635 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.picker.ReactDropdownPickerManager
11-09 00:24:00.636 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.scroll.ReactHorizontalScrollViewManager
11-09 00:24:00.642 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.progressbar.ReactProgressBarViewManager
11-09 00:24:00.644 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.progressbar.ProgressBarShadowNode
11-09 00:24:00.646 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.scroll.ReactScrollViewManager
11-09 00:24:00.650 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.slider.ReactSliderManager
11-09 00:24:00.653 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.slider.ReactSliderManager$ReactSliderShadowNode
11-09 00:24:00.653 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.switchview.ReactSwitchManager
11-09 00:24:00.655 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.switchview.ReactSwitchManager$ReactSwitchShadowNode
11-09 00:24:00.656 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.toolbar.ReactToolbarManager
11-09 00:24:00.660 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.webview.ReactWebViewManager
11-09 00:24:00.664 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager
11-09 00:24:00.668 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTSurfaceViewManager
11-09 00:24:00.668 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.art.ARTSurfaceViewShadowNode
11-09 00:24:00.670 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager
11-09 00:24:00.670 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageShadowNode
11-09 00:24:00.673 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.image.ReactImageManager
11-09 00:24:00.677 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.modal.ReactModalHostManager
11-09 00:24:00.679 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.modal.ModalHostShadowNode
11-09 00:24:00.680 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactRawTextManager
11-09 00:24:00.684 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactTextShadowNode
11-09 00:24:00.687 18805 18805 I Timeline: Timeline: Activity_idle id: android.os.BinderProxy@4e562d1 time:27116288
11-09 00:24:00.693 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.textinput.ReactTextInputManager
11-09 00:24:00.701 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.textinput.ReactTextInputShadowNode
11-09 00:24:00.702 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactTextViewManager
11-09 00:24:00.702 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.view.ReactViewManager
11-09 00:24:00.706 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.viewpager.ReactViewPagerManager
11-09 00:24:00.709 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactVirtualTextViewManager
11-09 00:24:00.709 18805 18824 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.reactnativenavigation.views.managers.SharedElementTransitionManager
11-09 00:24:00.712  1252  1300 I ActivityManager: Displayed com.mmmmm/.MainActivity: +375ms
11-09 00:24:00.712  1252  1300 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{a6526cf u0 com.mmmmm/.MainActivity t10297} time:27116314
11-09 00:24:00.739 18805 18824 D ReactNative: Initializing React Xplat Bridge.
11-09 00:24:00.743 18805 18824 D ReactNative: Initializing React Xplat Bridge before initializeBridge
11-09 00:24:00.763 18805 18824 D ReactNative: Initializing React Xplat Bridge after initializeBridge
11-09 00:24:00.764 18805 18824 D ReactNative: CatalystInstanceImpl.runJSBundle()
11-09 00:24:00.789 18805 18831 D ReactNative: ReactInstanceManager.setupReactContext()
11-09 00:24:00.790 18805 18831 D ReactNative: CatalystInstanceImpl.initialize()
11-09 00:24:01.679  1252  1279 I UsageStatsService: User[0] Flushing usage stats to disk
11-09 00:24:01.919 18805 18830 I ReactNativeJS: { public: { v4: undefined, v6: 'fd00:68b6:fcff:d792:f427:6e41:5ee8:1d14' },
11-09 00:24:01.919 18805 18830 I ReactNativeJS:   private: { v4: '192.168.0.115', v6: 'fe80::44d4:e0ff:fe5c:905' } }
11-09 00:24:01.930 18805 18830 I ReactNativeJS: {
11-09 00:24:01.930 18805 18830 I ReactNativeJS:   "_": [
11-09 00:24:01.930 18805 18830 I ReactNativeJS:     "your-app"
11-09 00:24:01.930 18805 18830 I ReactNativeJS:   ]
11-09 00:24:01.930 18805 18830 I ReactNativeJS: }
11-09 00:24:02.000 18805 18831 I Timeline: Timeline: Activity_launch_request id:com.mmmmm time:27117602
11-09 00:24:02.004  1252  1270 I ActivityManager: START u0 {act=android.intent.action.VIEW flg=0x10008000 cmp=com.mmmmm/com.reactnativenavigation.controllers.NavigationActivity (has extras)} from uid 10274 on display 0
11-09 00:24:02.092 18805 18831 D RNNode  : Launching an intent for RNNodeService...
11-09 00:24:02.119 18805 18805 D ReactNative: ReactInstanceManager.attachRootViewToInstance()
11-09 00:24:02.145 18805 18805 V RNNodeService: Create and prepare
11-09 00:24:02.145 18805 18805 I RNNodeService: Untaring /data/user/0/com.mmmmm/rnnodeapp.tgz to dir /data/user/0/com.mmmmm/rnnodeapp
11-09 00:24:02.176 18805 18805 V RNNodeService: Will start RNNodeThread now...
11-09 00:24:02.177 18805 18805 V RNNodeService: RNNodeThread started.
11-09 00:24:02.180 18805 18830 I ReactNativeJS: Running application "mmmmm.Central" with appParams: {"initialProps":{"screenInstanceID":"screenInstanceID2","navigatorID":"navigatorID1_nav","navigatorEventID":"screenInstanceID2_events"},"rootTag":1}. __DEV__ === false, development-level warning are OFF, performance optimizations are ON
11-09 00:24:02.217 18805 18846 I RNNodeThread: Node.js process is running...
11-09 00:24:02.254 18805 18831 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactVirtualTextShadowNode
11-09 00:24:02.271  1252  1300 I ActivityManager: Displayed com.mmmmm/com.reactnativenavigation.controllers.NavigationActivity: +239ms
11-09 00:24:02.271  1252  1300 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{9b1e88d u0 com.mmmmm/com.reactnativenavigation.controllers.NavigationActivity t10297} time:27117873
11-09 00:24:02.288 18805 18805 I Timeline: Timeline: Activity_idle id: android.os.BinderProxy@68c3ac0 time:27117889
11-09 00:24:05.212 18805 18846 V nodejs  : Log level: notice
11-09 00:24:05.252 18805 18846 V nodejs  : RELOAD INDEX: undefined
11-09 00:24:07.335  1252  3335 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 133]
11-09 00:24:07.448 18805 18846 V nodejs  : CONNECT { host: '192.168.0.11',
11-09 00:24:07.448 18805 18846 V nodejs  :   port: 8008,
11-09 00:24:07.448 18805 18846 V nodejs  :   key: '@YXkE3TikkY4GFMX3lzXUllRkNTbj5E+604AkaO1xbz8=.ed25519',
11-09 00:24:07.448 18805 18846 V nodejs  :   source: 'local',
11-09 00:24:07.448 18805 18846 V nodejs  :   announcers: 1,
11-09 00:24:07.448 18805 18846 V nodejs  :   duration: null }
11-09 00:24:08.487 18805 18846 V nodejs  : Connected h.keks.cryptoscope.co:8008:@YXkE3TikkY4GFMX3lzXUllRkNTbj5E+604AkaO1xbz8=.ed25519
11-09 00:24:10.343  1252  3335 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 133]
11-09 00:24:13.096 18805 18846 V nodejs  : Connected h.keks.cryptoscope.co:8008:@YXkE3TikkY4GFMX3lzXUllRkNTbj5E+604AkaO1xbz8=.ed25519
11-09 00:24:49.954 18805 18831 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
11-09 00:24:49.954 18805 18831 E AndroidRuntime: Process: com.mmmmm, PID: 18805
11-09 00:24:49.954 18805 18831 E AndroidRuntime: java.lang.RuntimeException: Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'ReactVirtualTextShadowNode' to a 'LayoutShadowNode')
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.uimanager.ReactShadowNode.addChildAt(ReactShadowNode.java:181)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.uimanager.UIImplementation.setChildren(UIImplementation.java:398)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.uimanager.UIManagerModule.setChildren(UIManagerModule.java:310)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:363)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:162)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:739)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:95)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:234)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
11-09 00:24:49.954 18805 18831 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:818)
11-09 00:24:49.956  1252  3667 D ActivityManager: New dropbox entry: com.mmmmm, data_app_crash, 124f1f73-e53b-4d7a-af02-6076f005b7b3
11-09 00:24:49.957  1252  3667 W ActivityManager:   Force finishing activity com.mmmmm/com.reactnativenavigation.controllers.NavigationActivity
11-09 00:24:50.029 17698 19021 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1271 android.content.ContextWrapper.bindService:604 com.sonyericsson.crashmonitor.MiscTaAdapter.open:90 com.sonyericsson.crashmonitor.service.CrashMonitorService.onInit:127 com.sonyericsson.crashmonitor.service.CrashMonitorService.onHandleIntent:192 
11-09 00:24:50.066  1252 17601 I OpenGLRenderer: Initialized EGL, version 1.4
11-09 00:24:50.066  1252  1269 W InputMethodManagerService: Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@4022901 (uid=10111 pid=4182)
11-09 00:24:50.138  1252  1262 I art     : Background partial concurrent mark sweep GC freed 137655(9MB) AllocSpace objects, 39(1256KB) LOS objects, 33% free, 32MB/48MB, paused 2.768ms total 165.312ms
11-09 00:24:50.146  4182  4182 I Timeline: Timeline: Activity_idle id: android.os.BinderProxy@da55837 time:27165748
11-09 00:24:50.234  1252  1300 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{baa7baa u0 com.sonyericsson.home/com.sonymobile.home.HomeActivity t10248} time:27165835
11-09 00:24:50.242 18805 18805 D ReactNative: ReactInstanceManager.detachViewFromInstance()
11-09 00:24:50.248 18805 18805 D ReactNative: CatalystInstanceImpl.destroy() start
11-09 00:24:53.514 18805 18831 I Process : Sending signal. PID: 18805 SIG: 9
11-09 00:24:53.581  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.581  1252  3604 D GraphicsStats: Buffer count: 11
11-09 00:24:53.588  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.593  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.599  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.604  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.610  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.615  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.620  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.626  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.631  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.634  1252  1300 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0
11-09 00:24:53.636  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.641  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.647  1252  1269 I libprocessgroup: Killing pid 18851 in uid 10274 as part of process group 18805
11-09 00:24:53.678  1252  1269 I ActivityManager: Process com.mmmmm (pid 18805) has died
11-09 00:24:53.678  1252  1269 W ActivityManager: Scheduling restart of crashed service com.mmmmm/com.staltz.reactnativenode.RNNodeService in 1000ms

0.0.8 app crashes

I reinstalled the app, and cleared its data via the settings/apps

It connected via my local wifi to my machine, I followed and followed back to make friends.

It then started the normal sync process. This runs for a while, and then the app just stops.

After a restart, it continues syncing, only to crash again a bit later.

The storage being used is increasing, and it looks like the content is changing over time, so I am continuing to restart it to see if it every catches up, and then stabilises.

Scrolling through feed stops working after scrolling a lot

Steps to reproduce the bug:

  • Scroll down the public feed a lot
  • Even more

Expected behavior:

  • Messages keep pouring easily and the entire database is being shown

Actual behavior:

  • We see the spinner at the bottom, stuck for at 10+ seconds

Technical details

  • MMMMM app version: 0.0.11
  • Device/phone model: Samsung Galaxy S7
  • Android OS version: 7.0

0.0.4 installed fine on cyanogenmod 13.0-20160820

A few questions

  1. The menu button doesn't do anything. Should it?
  2. How do I set up an identity, avatar, etc?
  3. Is there a way of importing a private key from another device to have a consistent identity across devices? I have patchwork on windows working already.

Add DHT peer

Sync screen should have a button to "Connect with a friend" through the internet, that uses DHT. multiserver-dht, secret-stack#dht, ssb-ref#dht, scuttlebot#dht.

  • Redesign sync tab to be "connections" tab, bright themed with avatars
  • Avatars can be clicked and goes to Profile screen
  • 2 sections: internet connections and local network connections
  • Internet connections screen
    • Add invite code button
    • Show my invite code button
  • Local network connections screen
  • ...

Sync progress indicator UI

There should be a progress bar near the public tab, or as an Android notification updating over time, like the typical Download notifications.

  • Touchable for the public tab should show a dot when there is new messages
  • When syncing a lot of data, show a progress bar
    • in an Android notification
    • OR
    • in-app somewhere

Crashing shortly after startup on

On version 0.0.2 and 0.0.3 mmmmm crashes a few seconds after startup on a Nexus 6P and Pixel XL (both ARM64 devices) running Android 7.1.2. After opening the app, the feed would start to populate for a second, showing posts scrolling past and then would crash to the home screen. After upgrading the Pixel to Android 8.0.0 the app no longer crashes. This issue did not seem to be present in version 0.0.1.

Step-through welcome screens

Take inspiration from Copay and Nordea Wallet

  • (1) Social network like usual, but not centralized
  • (2) All data on your phone ("can use in the airplane, but consumes storage space")
  • (3) Freedom and responsibility
  • (4) Beta! (not all features available, help us with bug reports)

Could not get unknown property 'MYAPP_RELEASE_STORE_PASSWORD'

on

react-native run-android 

i get

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/grop/dev/mmmmm-mobile/android/app/build.gradle' line: 123

* What went wrong:
A problem occurred evaluating project ':app'.
> Could not get unknown property 'MYAPP_RELEASE_STORE_PASSWORD'

i added the below lines to android/gradle.properties

MYAPP_RELEASE_STORE_FILE=""
MYAPP_RELEASE_STORE_PASSWORD=""
MYAPP_RELEASE_KEY_ALIAS=""
MYAPP_RELEASE_KEY_PASSWORD=""

as a temp fix for me.

i could use feedback if this is the direction to solve this for now.

  • MMMMM app version: 0.08

Redesign central header for beta version

For the time being, we should:

  • Hide: Search field, private tab, (?) mentions tab
  • Combine profile button with menu button
  • Make side menu
    • Show profile button
    • Show app version
    • Show link to repository
    • other?

Tap on public tab header should scroll to top

Steps to reproduce the bug:

  • Scroll down quite a bit in the public feed
  • Tap the public tab header

Expected behavior:

Should scroll to the top.

Actual behavior:

Doesn't scroll to the top

Technical details

  • MMMMM app version: 0.0.11
  • Device/phone model: any
  • Android OS version: any

Render unhandled messages without crashing

Use React's componentDidCatch in the Message component to catch when the Message is unable to understand the msg type, and instead of crashing (like the app currently does), render the raw msg metadata.

Context: %XFThZL2QlV5zCRqTu+DPk0W89KPrS1dCv7Ep8eiDPYU=.sha256

Metadata message rendering visual glitches

When a message is rendered as metadata, it may sometimes be very long (large height) and then the following warning shows in logcat:

W/OpenGLRenderer: Path too large to be rendered into a texture

I think we need to give metadata messages a max height with some collapse/expand functionality somehow.

Private feed

  • UI for autocompleting recipients of the private message (in Compose screen)
  • Decrypt messages and display them

Threads

  • ssb-threads plugin for scuttlebot
  • public feed shows only thread previews
  • thread screen with all messages
  • comment input in thread screen
  • reply button for each message (also in thread preview)

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.