diff --git a/src/main/java/com/zoffcc/applications/trifa/HelperRelay.java b/src/main/java/com/zoffcc/applications/trifa/HelperRelay.java index 1449f3bf..048784c2 100644 --- a/src/main/java/com/zoffcc/applications/trifa/HelperRelay.java +++ b/src/main/java/com/zoffcc/applications/trifa/HelperRelay.java @@ -96,7 +96,7 @@ public static String get_relay_for_friend(String friend_pubkey) } } - static String get_pushurl_for_friend(String friend_pubkey) + public static String get_pushurl_for_friend(String friend_pubkey) { String ret = null; diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt index 1149889e..442281cf 100644 --- a/src/main/kotlin/Main.kt +++ b/src/main/kotlin/Main.kt @@ -213,6 +213,7 @@ val GROUP_PEER_HEIGHT = 33.dp val SETTINGS_HEADER_SIZE = 56.dp val CONTACT_COLUMN_WIDTH = 230.dp const val CONTACT_COLUMN_CONTACTNAME_LEN_THRESHOLD = 13 +const val PUSHURL_SHOW_LEN_THRESHOLD = 60 val GROUPS_COLUMN_WIDTH = 190.dp const val GROUPS_COLUMN_GROUPNAME_LEN_THRESHOLD = 13 val GROUP_PEER_COLUMN_WIDTH = 165.dp diff --git a/src/main/kotlin/com/zoffcc/applications/trifa/MainActivity.kt b/src/main/kotlin/com/zoffcc/applications/trifa/MainActivity.kt index 5bef2073..027394e1 100644 --- a/src/main/kotlin/com/zoffcc/applications/trifa/MainActivity.kt +++ b/src/main/kotlin/com/zoffcc/applications/trifa/MainActivity.kt @@ -66,6 +66,7 @@ import com.zoffcc.applications.trifa.HelperMessage.update_message_in_db_read_rcv import com.zoffcc.applications.trifa.HelperMessage.update_single_message_from_ftid import com.zoffcc.applications.trifa.HelperMessage.update_single_message_from_messge_id import com.zoffcc.applications.trifa.HelperRelay.get_own_relay_pubkey +import com.zoffcc.applications.trifa.HelperRelay.get_pushurl_for_friend import com.zoffcc.applications.trifa.HelperRelay.have_own_relay import com.zoffcc.applications.trifa.HelperRelay.invite_to_all_groups_own_relay import com.zoffcc.applications.trifa.HelperRelay.is_any_relay @@ -1465,9 +1466,11 @@ class MainActivity val friend_pubkey = tox_friend_get_public_key(friend_number)!! val is_relay = is_any_relay(friend_pubkey) val ip_addr_str = get_friend_ip_str(friend_number) + val push_url = get_pushurl_for_friend(friend_pubkey) contactstore.update(item = ContactItem(name = friend_name!!, isConnected = tox_friend_get_connection_status(friend_number), pubkey = friend_pubkey, ip_addr = ip_addr_str, + push_url = push_url, is_relay = is_relay)) } catch (_: Exception) { @@ -1488,10 +1491,12 @@ class MainActivity val friend_pubkey = tox_friend_get_public_key(friend_number)!! val is_relay = is_any_relay(friend_pubkey) val ip_addr_str = get_friend_ip_str(friend_number) + val push_url = get_pushurl_for_friend(friend_pubkey) contactstore.update(item = ContactItem(name = fname, isConnected = tox_friend_get_connection_status(friend_number), pubkey = friend_pubkey, ip_addr = ip_addr_str, + push_url = push_url, is_relay = is_relay)) } catch (_: Exception) { @@ -1533,6 +1538,7 @@ class MainActivity contactstore.add(item = ContactItem(name = "Relay #" + relay_pubkey.uppercase().take(6), isConnected = 0, pubkey = relay_pubkey.uppercase(), + push_url = "", is_relay = true)) } catch (_: Exception) { @@ -1587,10 +1593,12 @@ class MainActivity val friend_pubkey = tox_friend_get_public_key(friend_number)!! val is_relay = is_any_relay(friend_pubkey) val ip_addr_str = get_friend_ip_str(friend_number) + val push_url = get_pushurl_for_friend(friend_pubkey) contactstore.update(item = ContactItem(name = fname, isConnected = tox_friend_get_connection_status(friend_number), pubkey = friend_pubkey, ip_addr = ip_addr_str, + push_url = push_url, is_relay = is_relay)) } catch (_: Exception) { @@ -1774,6 +1782,7 @@ class MainActivity contactstore.add(item = ContactItem(name = "new Friend #" + new_friendnumber, isConnected = 0, pubkey = friend_public_key!!, + push_url = "", is_relay = false)) } catch (_: Exception) { diff --git a/src/main/kotlin/com/zoffcc/applications/trifa/TrifaToxService.kt b/src/main/kotlin/com/zoffcc/applications/trifa/TrifaToxService.kt index 1e8d8415..f65d33c4 100644 --- a/src/main/kotlin/com/zoffcc/applications/trifa/TrifaToxService.kt +++ b/src/main/kotlin/com/zoffcc/applications/trifa/TrifaToxService.kt @@ -1422,6 +1422,7 @@ class TrifaToxService contactstore.add(item = ContactItem(name = fname, isConnected = 0, pubkey = tox_friend_get_public_key(it)!!, + push_url = f.push_url, is_relay = f.is_relay)) } catch (_: Exception) { diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt index 10becb0a..2a70151f 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt @@ -22,6 +22,7 @@ data class ContactItem( val name: String, val isConnected: Int, val pubkey: String, + val push_url: String? = "", val is_relay: Boolean, var ip_addr: String = "" ) { diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItemView.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItemView.kt index 10f0fca5..4d1da015 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItemView.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItemView.kt @@ -19,6 +19,7 @@ package org.briarproject.briar.desktop.contact import CONTACT_COLUMN_CONTACTNAME_LEN_THRESHOLD +import PUSHURL_SHOW_LEN_THRESHOLD import androidx.compose.desktop.ui.tooling.preview.Preview import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background @@ -112,6 +113,8 @@ private fun ContactItemViewInfo(contactItem: ContactItem) = Column( var name_style = if (show_name.length > CONTACT_COLUMN_CONTACTNAME_LEN_THRESHOLD) MaterialTheme.typography.body1.copy(fontSize = 13.sp, lineHeight = TextUnit.Unspecified) else MaterialTheme.typography.body1.copy(lineHeight = TextUnit.Unspecified) val friend_relay = get_relay_for_friend(contactItem.pubkey.toUpperCase()) + var pushurl_str = if (contactItem.push_url.isNullOrEmpty()) "" else ("\n" + "Push URL: " + contactItem.push_url) + pushurl_str = if (pushurl_str.length > PUSHURL_SHOW_LEN_THRESHOLD) (pushurl_str.take(PUSHURL_SHOW_LEN_THRESHOLD) + "...") else pushurl_str val relay_str = if (friend_relay.isNullOrEmpty()) "" else ("\n" + "Relay (ToxProxy): " + friend_relay) val ip_addr_str = contactItem.ip_addr // Log.i(TAG, "ContactItemViewInfo: ip_addr_str=" + ip_addr_str + " name=" + show_name) @@ -123,7 +126,7 @@ private fun ContactItemViewInfo(contactItem: ContactItem) = Column( MaterialTheme.typography.body1.copy(fontSize = 12.sp, lineHeight = TextUnit.Unspecified) else MaterialTheme.typography.body1.copy(lineHeight = TextUnit.Unspecified) } Tooltip(text = "Name: " + tooltip_name + "\n" + - "Pubkey: " + contactItem.pubkey + relay_str + "\n" + + "Pubkey: " + contactItem.pubkey + relay_str + pushurl_str + "\n" + "IP: " + ip_addr_str) { Column() { Text( diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt index cd038db7..201a0a48 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt @@ -94,6 +94,7 @@ fun ContactList( contactstore.remove(item = ContactItem(name = "", isConnected = 0, is_relay = false, + push_url = "", pubkey = item.pubkey)) GlobalScope.launch(Dispatchers.IO) { if (is_any_relay(item.pubkey)) diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/AddFriend.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/AddFriend.kt index b76fbc2d..255cb47f 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/ui/AddFriend.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/AddFriend.kt @@ -85,6 +85,7 @@ fun AddFriend() = Box { contactstore.add(item = ContactItem(name = "new Friend #" + friendnum, isConnected = 0, pubkey = friend_pubkey!!, + push_url = "", is_relay = false)) } catch (_: Exception) {