324 Commits

Author SHA1 Message Date
callebtc
14475fe7f1 Revert "Resolve merge conflicts:"
This reverts commit 3384cce51dc833dbf3e61e906bce378214fba088, reversing
changes made to 69d18aae3c2bf15370fc239205acbab0d0eedc8e.
2025-09-21 08:17:04 +02:00
callebtc
3384cce51d Resolve merge conflicts:
- BluetoothConnectionManager.kt: keep main version, rename sendToPeer -> sendPacketToPeer and add overload; remove conflict markers
- BluetoothMeshService.kt: keep main, ensure delegate uses sendPacketToPeer
- BinaryProtocol.kt: keep main version with v2 payload length support

Refactor: rename all sendToPeer usages to sendPacketToPeer across codebase
- PacketRelayManager + interface
- PacketProcessor + interface
- BluetoothPacketBroadcaster targeted send method remains sendPacketToPeer
- Update tests accordingly

Build fixes
2025-09-20 01:23:21 +02:00
callebtc
2b0bb5af74
fix unit tests (#442) 2025-09-20 00:05:46 +02:00
callebtc
633a506753
Media transfers (#440)
* tor voice wip

* worky BLE a bit

* can send sound

* remove tor

* ui cleanup

* recording time

* progress bar color

* nicknames for audio

* onboarding permissions no microphone

* may work

* fix destionation

* extend

* refactor voice input component

* fix keyboard collapse issue

* send images

* wip image open

* image sending works

* wip waveforms

* better

* better animation

* fix cursor for sending audio

* image sending animation

* image sending animation

* full screen image viewer

* gossip sync for fragments too

* reduce delays

* fix keyboard focus

* use v2 for file transfers

* do not sync fragments

* scrollable image viewer

* ui

* ui adjustments

* nicer animation

* seek through audio

* add spec

* add more details to documentation

* File sharing E2E:
- Add TLV BitchatFilePacket, FileSharingManager
- Implement sendFileNote in ChatViewModel
- File receive path: save to files/incoming and render [file] messages with FileMessageItem or FileSendingAnimation during transfer
- SAF FilePickerButton and dispatcher wiring; image/file choice to follow in MediaPickerOptions
- Add FileViewerDialog with system open/save, FileProvider and file_paths
- Hook transfer progress to file sending UI
- Manifest: READ_MEDIA_* and FileProvider
- Fix MessageHandler saving and prefix for non-image payloads
- Add helper utils (FileUtils)

* kinda wip

* fix buttons

* files half working

* wip file transfer

* file packet has 2-byte TLV and chunks. it wokrs but it sucks

* clean

* remove gossip sync for fragments

* fix audio and image rendering

* adjust FILE_SIZE TLV size too

* cleanup

* haptic

* private messages media

* read receipts for media

* use enum for message type not string

* delivery ack checks dont push content

* check

* animation fix

* refactor

* ui adjustments

* comments

* refactor

* fix crash on send and receive of the same file

* refactor notifications

* tests
2025-09-19 22:46:14 +02:00
callebtc
69d18aae3c test 2025-09-19 22:45:01 +02:00
callebtc
94fbadb570 add to spec 2025-09-19 22:40:38 +02:00
callebtc
b60c0da1da drop duplicate hops 2025-09-19 22:39:01 +02:00
callebtc
f2dd90e77e update spec to be explicit about intermediate hops only 2025-09-19 22:26:08 +02:00
callebtc
1178fc254a
remove the noise handshake if peer goes offline (#435) 2025-09-15 15:33:39 +02:00
callebtc
7061a96cce
bump to 1.3.1 (#432) 1.3.1 2025-09-15 12:43:58 +02:00
callebtc
4eda850110
better verbose logging (#431) 2025-09-15 01:31:32 +02:00
callebtc
c2609643da
add github tests (#233)
* add github tests

* fix github tests (#409)

---------

Co-authored-by: Tobiloba Oyelekan <miketobi73@gmail.com>
2025-09-14 17:31:19 +02:00
callebtc
277dbdf4e1
nostr: fix block feature (#427)
* fix block feature

* fix nostr nickname in sidebar
2025-09-14 17:30:47 +02:00
lollerfirst
a4ef2ef29c
fix: bookmark removal persistence (#424) 2025-09-14 16:38:39 +02:00
callebtc
9c7567e62e
lock to tor (#426)
* lock to tor

* bootstrap state
2025-09-14 16:36:02 +02:00
GitHub Action
df4aa4b25d Automated update of relay data - Sun Sep 14 06:06:21 UTC 2025 2025-09-14 06:06:21 +00:00
callebtc
382d29e03f
bump versioncode (#419) 2025-09-14 05:12:42 +02:00
callebtc
4786b1f250
default pow to 12 (#418) 1.3.0 2025-09-14 05:04:04 +02:00
callebtc
b96bf180f9
Fix pow (#417)
* fix pow

* only pow with nonse
2025-09-14 05:01:34 +02:00
callebtc
deba156711
bumo to 1.3.0 (#416) 2025-09-14 04:26:04 +02:00
callebtc
1a398b16ef
Redesign: Permissions screen, battery optimization, location sheet (#415)
* update permissions screen design

* battery optimization screen

* remove init screen

* skip init screen on load

* skip on load only

* location sheet design wip

* denser location sheet

* location sheet layout fix
2025-09-14 04:22:56 +02:00
callebtc
861eaaeaef
catch errors (#397) 2025-09-14 03:50:51 +02:00
callebtc
96d59d55ff
tor on by default (#414) 2025-09-14 03:50:22 +02:00
lollerfirst
779717217f
feat: geohash bookmarks (iOS parity) (#410)
* Geohash bookmarks (iOS parity):
- Add GeohashBookmarksStore (persist bookmarks + friendly names)
- Integrate bookmark toggle into LocationChannelsSheet (nearby + bookmarked sections)
- Add header toggle for current geohash bookmark
- Sample counts for union of nearby + bookmarks while sheet open
- Add Geohash.decodeToBounds() to support friendly name resolution
- Fix coroutine usage and Gson type inference issues

* fix UI

* clear bookmarks on triple tap

* adjust icons

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2025-09-14 03:46:37 +02:00
ruslan_yet
eba0d36015
Add App Info Bottom Sheet (#406)
* Automated update of relay data - Sun Sep  7 06:20:11 UTC 2025

* Refactor(ui): Improve AboutSheet design and layout Ios Like

This commit refactors the `AboutSheet` composable with several UI enhancements:

-   Updated the overall layout and styling for a more modern look and feel.
-   Introduced a collapsing top bar effect on scroll.
-   Replaced `FeatureCard` with individual `Row` layouts for feature descriptions.
-   Adjusted typography, spacing, and padding for better readability.
-   Updated color usage to align with `MaterialTheme.colorScheme`.
-   Made the bottom sheet skip the partially expanded state by default.
-   Added `statusBarsPadding` to the `ModalBottomSheet`.

---------

Co-authored-by: GitHub Action <action@github.com>
2025-09-14 03:37:53 +02:00
callebtc
73c91b9509
Plumtree sync (#393)
* wip plumtree

* sync works

* fix logging

* ttl to 0

* fix send packet to one peer

* spec

* wip GCS instead of bloom

* remove bloom filter remainders

* clean

* prune old announcements

* remove announcements from sync after LEAVE

* sync after 1 second

* pruning

* track own announcement and prune messages without announcements

* fix pruning

* getGcsMaxFilterBytes default value 400 bytes

* parameters
2025-09-14 03:32:10 +02:00
callebtc
3967ef8922
peerid computed from noise fingerprint (#413) 2025-09-13 16:43:06 +02:00
Yash Bhutwala
ad77fd38c5
Nostr DMs: use relay createdAt for display; keep arrival order for sorting; remove comments (#396)
Coalesces commits:
- Nostr DMs: use relay createdAt for display; keep arrival order for sorting
- remove comments as requested by calle
2025-09-11 13:20:53 +02:00
Tobiloba Oyelekan
63faf4cceb
fix truncated list in sidebar (#405) 2025-09-11 13:02:50 +02:00
Tobiloba Oyelekan
97c301f510
add playstore link to readme (#400) 2025-09-09 23:39:12 +02:00
callebtc
c1e56188d6
Revert "Mesh gossip (#381)" (#394)
This reverts commit 0969c0641eeb272462ef0d5c21f7b0b3cd6b8bea.
2025-09-08 15:15:54 +02:00
callebtc
0969c0641e
Mesh gossip (#381)
* wip mesh graph

* gossip fix

* gossip works

* source-based routing wip

* log
2025-09-08 15:15:32 +02:00
callebtc
a96e84d8da Merge branch 'main' into gossip-graph 2025-09-08 15:14:31 +02:00
callebtc
bea1bbf1a8
add missing file (#392) 1.2.3 2025-09-08 14:28:30 +02:00
callebtc
460291998e Merge branch 'main' into gossip-graph 2025-09-08 13:49:32 +02:00
callebtc
998ee606b1
Nostr refactor simplify (#390)
* fix bug

* geoDM receive works, send doesnt, and incoming message doesnt make sender appear in peer list

* fix nostr dm

* geohash dms work

* Geohash DM UI: stop mixing Nostr DM temp chats into mesh offline list; ensure geohash DM senders are added to geohash people list only. Removed nostr_* sidebar append in PeopleSection; kept 64-hex mesh offline favorites. Verified build.

* refactor

* nice

* works

* merging nostr -> mesh works

* tripple click to delete all

* fix sidebar icon

* remove hash

* dms have correct recipient

* works

* wip unread badge

* geohash dms wip

* dms work
2025-09-08 13:46:15 +02:00
callebtc
ba518269b4
fix geohash livedata wiring (#389) 2025-09-07 09:04:21 +02:00
callebtc
6b54c70d26
fix remove peer on disconnect (#388) 2025-09-07 08:31:23 +02:00
GitHub Action
c20e9defde Automated update of relay data - Sun Sep 7 06:05:54 UTC 2025 2025-09-07 06:05:54 +00:00
callebtc
9b8f98ec7c
bump version 1.2.3 (#384) 2025-09-06 14:49:00 +02:00
callebtc
b131554efe
fix some debug settings (#383) 2025-09-06 14:45:48 +02:00
lollerfirst
a804782476
feat(geohash): add in-app Geohash Picker (#363)
* feat(geohash): add in-app Geohash Picker map with quadrant drill-down and Activity integration

- New GeohashPickerActivity hosting a WebView with Leaflet-based picker
- Adds map icon next to custom geohash input in LocationChannelsSheet
- Picker allows quadrant selection and subquadrant drill-down; returns selected geohash
- Register activity in AndroidManifest

perf(picker): improve map performance and correctness
- Use LayerGroup and clearLayers() on redraw to avoid stale overlays
- Use Leaflet canvas renderer for rectangles to reduce DOM and improve perf
- Make labels non-interactive and pointer-events: none to avoid gesture overhead
- Fix initial mega-label artifact by grouping and clearing labels with cells

chore: add asset geohash_picker.html with minimal geohash helpers (bounds/encode/adjacent)

* remove accidentally committed submodule.

* fix some issues

* better geohash labels on map

* design wip

* countries green

* wip

* geohashpicker: pan + zoom; start from current geohash channel

* better ui

* ui elements

* nice

* readability

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2025-09-06 11:49:23 +02:00
callebtc
cc45f477fb
init noise handshake on queue DMs (#379)
* init noise handshake on queue DMs

* establish noise more aggressively
2025-09-06 10:58:39 +02:00
callebtc
9518d386d0
better tor management (#380)
* better tor management

* better tracking
2025-09-06 10:41:51 +02:00
callebtc
11353afd72 log 2025-09-05 23:47:19 +02:00
callebtc
a5928987fe source-based routing wip 2025-09-05 16:46:34 +02:00
callebtc
5769e70ea4 gossip works 2025-09-05 16:29:46 +02:00
callebtc
f4b33b5a09 gossip fix 2025-09-05 16:11:07 +02:00
callebtc
08ffde618a wip mesh graph 2025-09-05 16:03:24 +02:00
lollerfirst
4b81b7f97a
fix: action message routing and duplicate local echo in geohash channels (#374)
* fix: send action messages to correct chat

* fix(action): avoid double local echo for action messages in geohash channels

When sending /hug or /slap in a location (geohash) channel, CommandProcessor
was adding a local echo and then routing to NostrGeohashService, which also
adds a local echo. This resulted in duplicate action messages on the sender’s
screen.

Change: detect when the selectedLocationChannel is a Location and, in that
case, skip adding the local echo in CommandProcessor and only call the
onSendMessage transport callback (NostrGeohashService will add the echo with
proper metadata). Private and mesh (non-location) behavior is unchanged.
2025-09-05 15:41:02 +02:00