DiagnosticsFragment uncommented the api parameters and we can test
This commit is contained in:
@@ -78,11 +78,11 @@ class DiagnosticsFragment : Fragment() {
|
||||
binding.btnSubmit.setOnClickListener {
|
||||
binding.btnSubmit.visibility = View.GONE
|
||||
runDeviceDiagnostics()
|
||||
val batteryLevel = "" //diagnosticsViewModel.getBatteryLevel().toString()
|
||||
val batteryCapacity = "" //context?.let { diagnosticsViewModel.getBatteryCapacity(it).toString() }
|
||||
val batteryMaxCapacity = "" //context?.let { diagnosticsViewModel.getBatteryMaxCapacity(it).toString() }
|
||||
val batteryTemperature = "" //diagnosticsViewModel.getBatteryTemperature().toString()
|
||||
val batteryVoltage = "" // context?.let { diagnosticsViewModel.getBatteryVoltage(it).toString() }
|
||||
val batteryLevel = diagnosticsViewModel.getBatteryLevel().toString()
|
||||
val batteryCapacity = context?.let { diagnosticsViewModel.getBatteryCapacity(it).toString() }
|
||||
val batteryMaxCapacity = context?.let { diagnosticsViewModel.getBatteryMaxCapacity(it).toString() }
|
||||
val batteryTemperature = diagnosticsViewModel.getBatteryTemperature().toString()
|
||||
val batteryVoltage = context?.let { diagnosticsViewModel.getBatteryVoltage(it).toString() }
|
||||
|
||||
val additionalDetails = AdditionalDetails(
|
||||
batteryLevel = batteryLevel,
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
|
||||
package com.example.hpostesting.presentation.diagnostics
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.BatteryManager
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
@@ -30,7 +34,7 @@ import javax.inject.Inject
|
||||
@HiltViewModel
|
||||
class DiagnosticsViewModel @Inject constructor(
|
||||
private val repository: Repository,
|
||||
// context: Context,
|
||||
context: Context,
|
||||
) : ViewModel() {
|
||||
var isServiceConnected = false
|
||||
val progressBar = MutableLiveData(false)
|
||||
@@ -39,10 +43,10 @@ class DiagnosticsViewModel @Inject constructor(
|
||||
val deviceData = MutableLiveData<DeviceData?>()
|
||||
val fireBaseUpload = MutableLiveData<String>()
|
||||
val deviceDiagnosticsResponse = MutableLiveData<Result<DeviceDiagnosticsResponse>>()
|
||||
// private val batteryStatus: Intent? =
|
||||
// IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter ->
|
||||
// context.registerReceiver(null, ifilter)
|
||||
// }
|
||||
private val batteryStatus: Intent? =
|
||||
IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter ->
|
||||
context.registerReceiver(null, ifilter)
|
||||
}
|
||||
fun addDiagnosticsDataToDb(data: DiagnosticsData) {
|
||||
viewModelScope.launch {
|
||||
try {
|
||||
@@ -75,71 +79,71 @@ class DiagnosticsViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
|
||||
// fun getBatteryLevel(): Float? {
|
||||
// val batteryPct: Float? = batteryStatus?.let { intent ->
|
||||
// val level: Int =
|
||||
// intent.getIntExtra(
|
||||
// BatteryManager.EXTRA_LEVEL,
|
||||
// -1
|
||||
// )
|
||||
// val scale: Int =
|
||||
// intent.getIntExtra(
|
||||
// BatteryManager.EXTRA_SCALE,
|
||||
// -1
|
||||
// )
|
||||
// level * 100 / scale.toFloat()
|
||||
// }
|
||||
//
|
||||
// return batteryPct
|
||||
// }
|
||||
//
|
||||
// fun getBatteryTemperature(): Float? {
|
||||
// val batteryTemp: Float? = batteryStatus?.let { intent ->
|
||||
// val temperature = intent.getIntExtra(
|
||||
// BatteryManager.EXTRA_TEMPERATURE,
|
||||
// 0
|
||||
// )
|
||||
// temperature.toFloat() / 10
|
||||
// }
|
||||
//
|
||||
// return batteryTemp
|
||||
// }
|
||||
//
|
||||
// fun getBatteryVoltage(context: Context): Float {
|
||||
// val batteryIntent =
|
||||
// context.registerReceiver(
|
||||
// null,
|
||||
// IntentFilter(Intent.ACTION_BATTERY_CHANGED)
|
||||
// )
|
||||
// val voltage = batteryIntent?.getIntExtra(
|
||||
// BatteryManager.EXTRA_VOLTAGE,
|
||||
// 0
|
||||
// ) ?: 0
|
||||
//
|
||||
// // milli-volts to volts
|
||||
// return voltage.toFloat() / 1000
|
||||
// }
|
||||
//
|
||||
//
|
||||
// fun getBatteryCapacity(context: Context): Int {
|
||||
// val batteryManager =
|
||||
// context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
||||
// val currentCapacity =
|
||||
// batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
|
||||
//
|
||||
// return currentCapacity
|
||||
// }
|
||||
//
|
||||
// fun getBatteryMaxCapacity(context: Context): Float {
|
||||
// val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
||||
// val designCapacity =
|
||||
// batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
|
||||
// val currentCapacity =
|
||||
// batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
|
||||
//
|
||||
// // Calculate the estimated maximum battery capacity in mAh
|
||||
// val maxCapacity = currentCapacity.toFloat() / designCapacity.toFloat() * 100
|
||||
//
|
||||
// return maxCapacity
|
||||
// }
|
||||
fun getBatteryLevel(): Float? {
|
||||
val batteryPct: Float? = batteryStatus?.let { intent ->
|
||||
val level: Int =
|
||||
intent.getIntExtra(
|
||||
BatteryManager.EXTRA_LEVEL,
|
||||
-1
|
||||
)
|
||||
val scale: Int =
|
||||
intent.getIntExtra(
|
||||
BatteryManager.EXTRA_SCALE,
|
||||
-1
|
||||
)
|
||||
level * 100 / scale.toFloat()
|
||||
}
|
||||
|
||||
return batteryPct
|
||||
}
|
||||
|
||||
fun getBatteryTemperature(): Float? {
|
||||
val batteryTemp: Float? = batteryStatus?.let { intent ->
|
||||
val temperature = intent.getIntExtra(
|
||||
BatteryManager.EXTRA_TEMPERATURE,
|
||||
0
|
||||
)
|
||||
temperature.toFloat() / 10
|
||||
}
|
||||
|
||||
return batteryTemp
|
||||
}
|
||||
|
||||
fun getBatteryVoltage(context: Context): Float {
|
||||
val batteryIntent =
|
||||
context.registerReceiver(
|
||||
null,
|
||||
IntentFilter(Intent.ACTION_BATTERY_CHANGED)
|
||||
)
|
||||
val voltage = batteryIntent?.getIntExtra(
|
||||
BatteryManager.EXTRA_VOLTAGE,
|
||||
0
|
||||
) ?: 0
|
||||
|
||||
// milli-volts to volts
|
||||
return voltage.toFloat() / 1000
|
||||
}
|
||||
|
||||
|
||||
fun getBatteryCapacity(context: Context): Int {
|
||||
val batteryManager =
|
||||
context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
||||
val currentCapacity =
|
||||
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
|
||||
|
||||
return currentCapacity
|
||||
}
|
||||
|
||||
fun getBatteryMaxCapacity(context: Context): Float {
|
||||
val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
||||
val designCapacity =
|
||||
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
|
||||
val currentCapacity =
|
||||
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
|
||||
|
||||
// Calculate the estimated maximum battery capacity in mAh
|
||||
val maxCapacity = currentCapacity.toFloat() / designCapacity.toFloat() * 100
|
||||
|
||||
return maxCapacity
|
||||
}
|
||||
}
|
||||
@@ -13,11 +13,13 @@
|
||||
|
||||
package com.example.hpostesting
|
||||
|
||||
import android.content.Context
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import androidx.lifecycle.Observer
|
||||
import com.example.hpostesting.data.model.Response
|
||||
import com.example.hpostesting.data.model.diagnostics.DiagnosticsData
|
||||
import com.example.hpostesting.data.repository.Repository
|
||||
import com.example.hpostesting.presentation.diagnostics.DiagnosticsActivity
|
||||
import com.example.hpostesting.presentation.diagnostics.DiagnosticsViewModel
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.mockk
|
||||
@@ -49,7 +51,8 @@ class DiagnosticsViewModelTest {
|
||||
|
||||
// Mock Repository
|
||||
private val mockRepository = mockk<Repository>()
|
||||
|
||||
@Mock
|
||||
private lateinit var context: Context
|
||||
// Mock Observer for LiveData
|
||||
@Mock
|
||||
private lateinit var mockObserver: Observer<String>
|
||||
@@ -63,7 +66,7 @@ class DiagnosticsViewModelTest {
|
||||
MockitoAnnotations.openMocks(this)
|
||||
|
||||
// Create the ViewModel with the mock repository and set the coroutine dispatcher
|
||||
diagnosticsViewModel = DiagnosticsViewModel(repository = mockRepository)
|
||||
diagnosticsViewModel = DiagnosticsViewModel(repository = mockRepository, context = context)
|
||||
// diagnosticsViewModel.viewModelScope = testCoroutineScope
|
||||
|
||||
// Observe the LiveData
|
||||
|
||||
Reference in New Issue
Block a user