Skip to content

Commit 850025e

Browse files
authored
Merge pull request #11 from ssbc/apk_new-progress
android: display additional replication progress
2 parents 59c6698 + f6f62a8 commit 850025e

11 files changed

Lines changed: 119 additions & 12 deletions

File tree

Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading

android/tinySSB/app/src/main/assets/web/tremola.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,14 @@ input:checked + .slider:before {
446446
background: #7fd9eb;
447447
}
448448

449+
#connection-overlay-progressbar-goset::-webkit-progress-value {
450+
background: #2ecc71;
451+
}
452+
453+
#connection-overlay-progressbar-chnk::-webkit-progress-value {
454+
background: #f2a641;
455+
}
456+
449457
.connection-overlay-progressbar-label {
450458
position: absolute;
451459
top: 50%;

android/tinySSB/app/src/main/assets/web/tremola.html

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -252,16 +252,32 @@
252252

253253
<div id='connection-overlay' class='qr-overlay'>
254254
<div style='font-size:18px; padding-bottom: 10px;'><b>Replication Status</b></div>
255-
<div style="position: relative; margin-bottom: 10px;">
256-
<img src='img/fountain.png' alt="Icon" class="progress-icon">
257-
<progress id='connection-overlay-progressbar-gift' class='connection-overlay-progressbar' value="0" max="100"></progress>
258-
<div id='connection-overlay-progressbar-label-gift' class="connection-overlay-progressbar-label"></div>
255+
<div id='progress-container'>
256+
<div style="position: relative; margin-bottom: 10px;">
257+
<img src='img/fountain.png' alt="Icon" class="progress-icon">
258+
<progress id='connection-overlay-progressbar-gift' class='connection-overlay-progressbar' value="0" max="100"></progress>
259+
<div id='connection-overlay-progressbar-label-gift' class="connection-overlay-progressbar-label"></div>
260+
</div>
261+
<div style="position: relative; margin-bottom: 10px;">
262+
<img src='img/receive.png' alt="Icon" class="progress-icon">
263+
<progress id='connection-overlay-progressbar-want' class='connection-overlay-progressbar' value="0" max="100"></progress>
264+
<div id='connection-overlay-progressbar-label-want' class="connection-overlay-progressbar-label"></div>
265+
</div>
266+
<div style="position: relative; margin-bottom: 10px;">
267+
<img src='img/chnk-icon.svg' alt="Icon" class="progress-icon">
268+
<progress id='connection-overlay-progressbar-chnk' class='connection-overlay-progressbar' value="0" max="100"></progress>
269+
<div id='connection-overlay-progressbar-label-chnk' class="connection-overlay-progressbar-label"></div>
270+
</div>
259271
</div>
260-
<div style="position: relative; margin-bottom: 10px;">
261-
<img src='img/receive.png' alt="Icon" class="progress-icon">
262-
<progress id='connection-overlay-progressbar-want' class='connection-overlay-progressbar' value="0" max="100"></progress>
263-
<div id='connection-overlay-progressbar-label-want' class="connection-overlay-progressbar-label"></div>
272+
273+
<div id='goset-progress-container' style="display: none;">
274+
<div style="position: relative; margin-bottom: 10px;">
275+
<img src='img/goset-icon.svg' alt="Icon" class="progress-icon">
276+
<progress id='connection-overlay-progressbar-goset' class='connection-overlay-progressbar' value="0" max="100"></progress>
277+
<div id='connection-overlay-progressbar-label-goset' class="connection-overlay-progressbar-label"></div>
278+
</div>
264279
</div>
280+
265281
<div id='connection-overlay-hdr' style='font-size:18px; padding-bottom: 10px;'><b>Connected Devices</b></div>
266282
<div id='connection-overlay-content'></div>
267283
</div>

android/tinySSB/app/src/main/assets/web/tremola.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,8 @@ function save_content_alias() {
567567
var val = document.getElementById('old_contact_alias').value;
568568
var deleteAlias = false
569569

570+
val.trim()
571+
570572
if (val == '') {
571573
deleteAlias = true
572574
if (c.iam != "" && new_contact_id != myId) {

android/tinySSB/app/src/main/assets/web/tremola_ui.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,48 @@ function refresh_connection_entry(id) {
477477

478478
}
479479

480+
function refresh_goset_progressbar(curr, max) {
481+
482+
console.log("refresh_goset_progressbar", curr, max)
483+
484+
var delta = max - curr
485+
486+
document.getElementById('connection-overlay-progressbar-goset').value = (curr / max) * 100
487+
document.getElementById('connection-overlay-progressbar-label-goset').textContent = "GoSet - " + delta + " key" + (delta > 1 ? "s" : "") + " left"
488+
if (delta > 0) {
489+
console.log("display progress")
490+
document.getElementById('goset-progress-container').style.display = "initial"
491+
document.getElementById('progress-container').style.display = "none"
492+
} else {
493+
document.getElementById('goset-progress-container').style.display = "none"
494+
document.getElementById('progress-container').style.display = "initial"
495+
}
496+
497+
}
498+
499+
var max_chnks = 0
500+
function refresh_chunk_progressbar(remaining) {
501+
502+
if(remaining != 0) {
503+
max_chnks = Math.max(max_chnks, remaining)
504+
} else {
505+
max_chnks = 0 // reset
506+
}
507+
508+
console.log("refresh_chunk_progressbar", remaining, max_chnks)
509+
510+
511+
if(remaining > 0) {
512+
var percentage = (1 - ((remaining - 0) / (max_chnks - 0))) * 100
513+
document.getElementById('connection-overlay-progressbar-chnk').value = percentage
514+
document.getElementById('connection-overlay-progressbar-label-chnk').textContent = remaining + " Chunks left"
515+
} else {
516+
document.getElementById('connection-overlay-progressbar-chnk').value = 100
517+
document.getElementById('connection-overlay-progressbar-label-chnk').textContent = "Chunks — Synchronized"
518+
}
519+
520+
}
521+
480522
function refresh_connection_progressbar(min_entries, old_min_entries, old_want_entries, curr_want_entries, max_entries) {
481523

482524
console.log("min:", min_entries)

android/tinySSB/app/src/main/java/nz/scuttlebutt/tremolavossbol/WebAppInterface.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class WebAppInterface(val act: MainActivity, val webView: WebView) {
4545
"ready" -> {
4646
eval("b2f_initialize(\"${act.idStore.identity.toRef()}\")")
4747
frontend_ready = true
48+
act.tinyRepo.addNumberOfPendingChunks(0) // initialize chunk progress bar
4849
act.tinyNode.beacon()
4950
}
5051
"reset" -> { // UI reset

android/tinySSB/app/src/main/java/nz/scuttlebutt/tremolavossbol/tssb/GOset.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,11 @@ class GOset(val context: MainActivity) {
9191
if (buf.size != CLAIM_LEN || buf[0] != 'c'.toByte())
9292
return;
9393
val cl = mkClaim(buf)
94+
9495
if (cl.sz > largest_claim_span)
9596
largest_claim_span = cl.sz
97+
if (context.tinyRepo.isLoaded())
98+
context.wai.eval("refresh_goset_progressbar(${keys.size}, ${largest_claim_span})") // notify frontend
9699
// Log.d("rx", "state = ${state.toHex()}, cl.sz=${cl.sz}, k.sz=${keys.size}")
97100
if (cl.sz == keys.size && byteArrayCmp(state, cl.xo) == 0) {
98101
Log.d("goset", "seems we are synced (with at least someone), |GOset|=${keys.size}")
@@ -138,7 +141,7 @@ class GOset(val context: MainActivity) {
138141
}
139142
*/
140143
// Log.d("GOset", "beacon")
141-
if (keys.size == 0) return
144+
if (keys.size == 0 || !context.tinyRepo.isLoaded()) return
142145
while (novelty_credit-- > 0 && pending_novelty.size > 0)
143146
context.tinyIO.enqueue(pending_novelty.removeFirst().wire, goset_dmx, null)
144147
novelty_credit = NOVELTY_PER_ROUND

android/tinySSB/app/src/main/java/nz/scuttlebutt/tremolavossbol/tssb/Node.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ class Node(val context: MainActivity) {
175175
var old_min: List<Int>? = null
176176
var old_min_from: String? = null
177177

178+
179+
178180
// calculates current replication progress and sends update to frontend
179181
fun update_progress(want_vector: List<Int>, from: String) {
180182

android/tinySSB/app/src/main/java/nz/scuttlebutt/tremolavossbol/tssb/Replica.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ class Replica(val context: MainActivity, val datapath: File, val fid: ByteArray)
168168
if (chunk_cnt > 0) {
169169
val ptr = pkt.sliceArray(36 until 56)
170170
state.pend_sc[seq] = Pending(0, chunk_cnt, ptr, state.max_pos + TINYSSB_PKT_LEN)
171+
context.tinyRepo.addNumberOfPendingChunks(chunk_cnt)
171172
val chunk_fct = { chunk: ByteArray, fid: ByteArray?, seq: Int -> context.tinyNode.incoming_chunk(chunk,fid,seq) }
172173
context.tinyDemux.arm_blb(ptr, chunk_fct, fid, seq, 0)
173174
} else { // no sidechain, entry is complete
@@ -230,6 +231,7 @@ class Replica(val context: MainActivity, val datapath: File, val fid: ByteArray)
230231
val chunk_fct = { chunk: ByteArray, fid: ByteArray?, seq: Int -> context.tinyNode.incoming_chunk(chunk,fid,seq) }
231232
context.tinyDemux.arm_blb(pend.hptr, chunk_fct, fid, seq, pend.cnr)
232233
}
234+
context.tinyRepo.addNumberOfPendingChunks(-1)
233235
val f = fnt.startWrite()
234236
f.write(state.toWire())
235237
fnt.finishWrite(f)

0 commit comments

Comments
 (0)