diff options
Diffstat (limited to 'src/android/app/src')
-rw-r--r-- | src/android/app/src/main/java/org/citron/citron_emu/fragments/EmulationFragment.kt | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/android/app/src/main/java/org/citron/citron_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/citron/citron_emu/fragments/EmulationFragment.kt index d39d25898..93a15def9 100644 --- a/src/android/app/src/main/java/org/citron/citron_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/citron/citron_emu/fragments/EmulationFragment.kt @@ -7,6 +7,8 @@ import android.annotation.SuppressLint import android.app.AlertDialog import android.content.Context import android.content.DialogInterface +import android.content.Intent +import android.content.IntentFilter import android.content.pm.ActivityInfo import android.content.res.Configuration import android.net.Uri @@ -1094,10 +1096,15 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { } private fun getBatteryTemperature(context: Context): Float { - val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager - // Get temperature in tenths of a degree Celsius - val temperature = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_TEMPERATURE) - // Convert to degrees Celsius - return temperature / 10.0f + try { + val batteryIntent = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) + // Temperature in tenths of a degree Celsius + val temperature = batteryIntent?.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) ?: 0 + // Convert to degrees Celsius + return temperature / 10.0f + } catch (e: Exception) { + Log.error("[EmulationFragment] Failed to get battery temperature: ${e.message}") + return 0.0f + } } } |