Skip to content

Commit

Permalink
refactor: unified getUser repository call for convention
Browse files Browse the repository at this point in the history
  • Loading branch information
andrekir committed Oct 25, 2024
1 parent e05c35a commit 5cf9741
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
14 changes: 11 additions & 3 deletions app/src/main/java/com/geeksville/mesh/model/NodeDB.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package com.geeksville.mesh.model

import androidx.lifecycle.Lifecycle
import androidx.lifecycle.coroutineScope
import com.geeksville.mesh.DataPacket
import com.geeksville.mesh.MeshProtos
import com.geeksville.mesh.database.dao.NodeInfoDao
import com.geeksville.mesh.database.entity.MyNodeEntity
import com.geeksville.mesh.database.entity.NodeEntity
Expand Down Expand Up @@ -35,9 +37,15 @@ class NodeDB @Inject constructor(
private val _nodeDBbyNum = MutableStateFlow<Map<Int, NodeEntity>>(mapOf())
val nodeDBbyNum: StateFlow<Map<Int, NodeEntity>> get() = _nodeDBbyNum

fun getUser(userId: String?) = userId?.let { id ->
nodeDBbyNum.value.values.find { it.user.id == id }?.user
}
fun getUser(nodeNum: Int): MeshProtos.User = getUser(DataPacket.nodeNumToDefaultId(nodeNum))

fun getUser(userId: String): MeshProtos.User =
nodeDBbyNum.value.values.find { it.user.id == userId }?.user
?: MeshProtos.User.newBuilder()
.setLongName("Meshtastic ${userId.takeLast(n = 4)}")
.setShortName(userId.takeLast(n = 4))
.setHwModel(MeshProtos.HardwareModel.UNSET)
.build()

init {
nodeInfoDao.getMyNodeInfo().onEach { _myNodeInfo.value = it }
Expand Down
7 changes: 1 addition & 6 deletions app/src/main/java/com/geeksville/mesh/model/UIState.kt
Original file line number Diff line number Diff line change
Expand Up @@ -251,12 +251,7 @@ class UIViewModel @Inject constructor(
fun updateMapCenterAndZoom(center: GeoPoint, zoom: Double) =
_mapState.update { it.copy(center = center, zoom = zoom) }

fun getUser(userId: String?) = nodeDB.getUser(userId) ?: user {
id = userId.orEmpty()
longName = app.getString(R.string.unknown_username)
shortName = app.getString(R.string.unknown_node_short_name)
hwModel = MeshProtos.HardwareModel.UNSET
}
fun getUser(userId: String?) = nodeDB.getUser(userId ?: DataPacket.ID_BROADCAST)

private val _snackbarText = MutableLiveData<Any?>(null)
val snackbarText: LiveData<Any?> get() = _snackbarText
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ class RadioConfigRepository @Inject constructor(
*/
val nodeDBbyNum: StateFlow<Map<Int, NodeEntity>> get() = nodeDB.nodeDBbyNum

fun getUser(nodeNum: Int) = nodeDB.getUser(nodeNum)

suspend fun upsert(node: NodeEntity) = nodeDB.upsert(node)
suspend fun installNodeDB(mi: MyNodeEntity, nodes: List<NodeEntity>) {
nodeDB.installNodeDB(mi, nodes)
Expand Down
8 changes: 2 additions & 6 deletions app/src/main/java/com/geeksville/mesh/service/MeshService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -440,12 +440,8 @@ class MeshService : Service(), Logging {
}
}

private fun getUserName(num: Int): String {
val user = nodeDBbyNodeNum[num]?.user
val longName = user?.longName ?: getString(R.string.unknown_username)
val shortName = user?.shortName ?: DataPacket.nodeNumToDefaultId(num)
return "$longName ($shortName)"
}
private fun getUserName(num: Int): String =
with(radioConfigRepository.getUser(num)) { "$longName ($shortName)" }

private val numNodes get() = nodeDBbyNodeNum.size

Expand Down

0 comments on commit 5cf9741

Please sign in to comment.