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 +        }      }  } | 
