diff --git a/app/src/main/kotlin/com/tutpro/baresip/ConfigActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ConfigActivity.kt index 81229007..14ab0f98 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ConfigActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ConfigActivity.kt @@ -2,11 +2,14 @@ package com.tutpro.baresip import android.Manifest import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Context import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import android.content.pm.PackageManager import android.os.Build +import android.os.PowerManager import android.view.Menu import android.view.MenuItem import android.view.View @@ -31,6 +34,7 @@ class ConfigActivity : AppCompatActivity() { private lateinit var binding: ActivityConfigBinding private lateinit var layout: ScrollView private lateinit var autoStart: CheckBox + private lateinit var batteryOptimizations: CheckBox private lateinit var listenAddr: EditText private lateinit var dnsServers: EditText private lateinit var certificateFile: CheckBox @@ -70,6 +74,21 @@ class ConfigActivity : AppCompatActivity() { oldAutoStart = if (asCv.size == 0) "no" else asCv[0] autoStart.isChecked = oldAutoStart == "yes" + if (Build.VERSION.SDK_INT >= 23) { + val pm = getSystemService(Context.POWER_SERVICE) as PowerManager + batteryOptimizations = binding.BatteryOptimizations + batteryOptimizations.isChecked = pm.isIgnoringBatteryOptimizations(packageName) == false + batteryOptimizations.setOnCheckedChangeListener { _, _ -> + try { + startActivity(Intent("android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS")) + } catch (e: ActivityNotFoundException) { + Log.e(TAG, "ActivityNotFound exception: $e") + } + } + } else { + binding.Battery.visibility = View.GONE + } + listenAddr = binding.ListenAddress val laCv = Config.variable("sip_listen") oldListenAddr = if (laCv.size == 0) "" else laCv[0] @@ -495,6 +514,10 @@ class ConfigActivity : AppCompatActivity() { Utils.alertView(this, getString(R.string.start_automatically), getString(R.string.start_automatically_help)) } + binding.BatteryOptimizationsTitle.setOnClickListener { + Utils.alertView(this, getString(R.string.battery_optimizations), + getString(R.string.battery_optimizations_help)) + } binding.ListenAddressTitle.setOnClickListener { Utils.alertView(this, getString(R.string.listen_address), getString(R.string.listen_address_help)) diff --git a/app/src/main/res/layout/activity_config.xml b/app/src/main/res/layout/activity_config.xml index afe7044c..ba44f455 100644 --- a/app/src/main/res/layout/activity_config.xml +++ b/app/src/main/res/layout/activity_config.xml @@ -41,6 +41,33 @@ + + + + + + + Versio %1$s

Käyttövihjeitä