kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
Merge pull request #102 from lgoix/battery-plugged
Display power plug icon when no battery #99pull/105/head
commit
c10beb816a
|
@ -6,6 +6,7 @@ import android.text.format.DateFormat
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.Observer
|
import androidx.lifecycle.Observer
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
@ -31,6 +32,7 @@ class UsersFragment : ScreenFragment("Users"), Logging {
|
||||||
val distance_view = itemView.distance_view
|
val distance_view = itemView.distance_view
|
||||||
val batteryPctView = itemView.batteryPercentageView
|
val batteryPctView = itemView.batteryPercentageView
|
||||||
val lastTime = itemView.lastConnectionView
|
val lastTime = itemView.lastConnectionView
|
||||||
|
val powerIcon = itemView.batteryIcon
|
||||||
}
|
}
|
||||||
|
|
||||||
private val nodesAdapter = object : RecyclerView.Adapter<ViewHolder>() {
|
private val nodesAdapter = object : RecyclerView.Adapter<ViewHolder>() {
|
||||||
|
@ -112,15 +114,7 @@ class UsersFragment : ScreenFragment("Users"), Logging {
|
||||||
holder.distance_view.visibility = View.INVISIBLE
|
holder.distance_view.visibility = View.INVISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
val battery = n.batteryPctLevel
|
renderBattery(n.batteryPctLevel, holder)
|
||||||
if (battery != null)
|
|
||||||
{
|
|
||||||
holder.batteryPctView.text = "$battery%"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
holder.batteryPctView.text = "?"
|
|
||||||
}
|
|
||||||
|
|
||||||
holder.lastTime.text = getLastTimeValue(n)
|
holder.lastTime.text = getLastTimeValue(n)
|
||||||
}
|
}
|
||||||
|
@ -134,14 +128,33 @@ class UsersFragment : ScreenFragment("Users"), Logging {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getLastTimeValue(n: NodeInfo): String {
|
private fun renderBattery(
|
||||||
var lastTimeText: String = "?"
|
battery: Int?,
|
||||||
|
holder: ViewHolder
|
||||||
|
) {
|
||||||
|
|
||||||
|
val (image, text) = when (battery) {
|
||||||
|
null -> Pair(R.drawable.ic_battery_full_24, "?")
|
||||||
|
0 -> Pair(R.drawable.ic_power_plug_24, "")
|
||||||
|
else -> Pair(R.drawable.ic_battery_full_24, "$battery%")
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.batteryPctView.text = text
|
||||||
|
holder.powerIcon.setImageDrawable(context?.let {
|
||||||
|
ContextCompat.getDrawable(
|
||||||
|
it,
|
||||||
|
image
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getLastTimeValue(n: NodeInfo): String {
|
||||||
|
var lastTimeText = "?"
|
||||||
val currentTime = (System.currentTimeMillis()/1000).toInt()
|
val currentTime = (System.currentTimeMillis()/1000).toInt()
|
||||||
val threeDaysLong = 3 * 60*60*24
|
val threeDaysLong = 3 * 60*60*24
|
||||||
|
|
||||||
//if the lastSeen is too old
|
//if the lastSeen is too old
|
||||||
if((n.lastSeen<currentTime-threeDaysLong))
|
if (n.lastSeen < (currentTime - threeDaysLong))
|
||||||
return lastTimeText
|
return lastTimeText
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:height="24dp"
|
||||||
|
android:width="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:fillAlpha=".5"
|
||||||
|
android:pathData="M16,7V3H14V7H10V3H8V7H8C7,7 6,8 6,9V14.5L9.5,18V21H14.5V18L18,14.5V9C18,8 17,7 16,7Z" />
|
||||||
|
</vector>
|
Ładowanie…
Reference in New Issue