Added Battery Optimizations setting

This commit is contained in:
Juha Heinanen
2021-11-14 18:10:05 +02:00
parent a9b83c4632
commit 4a770b54d7
4 changed files with 64 additions and 12 deletions

View File

@ -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))

View File

@ -41,6 +41,33 @@
</CheckBox>
</RelativeLayout>
<RelativeLayout
android:id="@+id/Battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/BatteryOptimizationsTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_toStartOf="@id/BatteryOptimizations"
android:textSize="18sp"
android:text="@string/battery_optimizations" >
</TextView>
<CheckBox
android:id="@+id/BatteryOptimizations"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_gravity="end"
android:checked="false" >
</CheckBox>
</RelativeLayout>
<TextView
android:id="@+id/ListenAddressTitle"
android:layout_width="wrap_content"

View File

@ -10,9 +10,8 @@
<p>Versio %1$s</p>
<h2>Käyttövihjeitä</h2>
<ul>
<li>Android-asetusten \'Sovellukset ja ilmoitukset\' osiossa salli baresip-sovelluksen
ilmoitukset ja ota akun optimointi pois päältä (jos haluat vähentää todennäköisyyttä,
että Android rajoittaa baresip-sovelluksen toimintaa ja pääsyä verkkoon).</li>
<li>Android-asetusten \'Sovellukset ja ilmoitukset\' osiossa valitse baresip-sovellus ja
salli Ilmoitukset.</li>
<li>Tarkista, että baresip-sovelluksen Asetukset vastaavat tarpeitasi. Kunkin otsikon
kosketus tarjoaa apua.</li>
<li>Sen jälkeen luo yksi tai useampi tili. Jälleen kunkin otsikon kosketus tarjoaa apua.</li>
@ -63,9 +62,8 @@
<p>Versio %1$s</p>
<h2>Käyttövihjeitä</h2>
<ul>
<li>Android-asetusten \'Sovellukset ja ilmoitukset\' osiossa salli baresip+-sovelluksen
ilmoitukset ja ota akun optimointi pois päältä (jos haluat vähentää todennäköisyyttä,
että Android rajoittaa baresip+-sovelluksen toimintaa ja pääsyä verkkoon).</li>
<li>Android-asetusten \'Sovellukset ja ilmoitukset\' osiossa valitse baresip+-sovellus ja
salli Ilmoitukset.</li>
<li>Tarkista, että baresip+-sovelluksen Asetukset vastaavat tarpeitasi. Kunkin otsikon
kosketus tarjoaa apua.</li>
<li>Sen jälkeen luo yksi tai useampi tili. Jälleen kunkin otsikon kosketus tarjoaa apua.</li>
@ -290,6 +288,10 @@
<string name="start_automatically">Käynnistä automaattisesti</string>
<string name="start_automatically_help">Jos merkitty, baresip
käynnistyy automaattisesti, kun laite käynnistyy.</string>
<string name="battery_optimizations">Akun käytön optiomointi</string>
<string name="battery_optimizations_help">Ota akun käytön optimointi pois päältä (suositeltu),
jos haluat vähentää todennäköisyyttä, että Android rajoittaa baresip-sovelluksen toimintaa
ja pääsyä verkkoon.</string>
<string name="listen_address">Kuunteluosoite</string>
<string name="listen_address_help">IP-osoite ja portti muotoa
\'osoite:portti\', missä baresip kuuntelee sisään tulevia

View File

@ -12,9 +12,7 @@
<p>Version %1$s</p>
<h2>Usage Hints</h2>
<ul>
<li>In Android\'s \`Apps & notifications\` settings, allow baresip app\'s notifications and
disable battery optimization (if you want to reduce likelihood that Android
restricts baresip\'s access to network or enters baresip to standby state).</li>
<li>In Android\'s \`Apps & notifications\` settings, select baresip app and allow Notifications.</li>
<li>Check that default values in baresip\'s Settings meet your needs
(touch item titles for help).</li>
<li>Then in Accounts, create one or more accounts (again touch item titles for help).</li>
@ -62,9 +60,7 @@
<p>Version %1$s</p>
<h2>Usage Hints</h2>
<ul>
<li>In Android\'s \`Apps & notifications\` settings, allow baresip+ app\'s notifications and
disable battery optimization (if you want to reduce likelihood that Android
restricts baresip+\'s access to network or enters baresip+ to standby state).</li>
<li>In Android\'s \`Apps & notifications\` settings, select baresip+ app and allow Notifications.</li>
<li>Check that default values in baresip+\'s Settings meet your needs
(touch item titles for help).</li>
<li>Then in Accounts, create one or more accounts (again touch item titles for help).</li>
@ -265,6 +261,10 @@
<string name="configuration">Settings</string>
<string name="start_automatically">Start Automatically</string>
<string name="start_automatically_help">If checked, baresip starts automatically after device (re)start.</string>
<string name="battery_optimizations">Battery Optimizations</string>
<string name="battery_optimizations_help">Disable battery optimizations (recommended) if you want
to reduce likelihood that Android restricts baresip\'s access to network or enters baresip
to standby state.</string>
<string name="listen_address">Listen Address</string>
<string name="listen_address_help">IP address and port of form \'address:port\' at which baresip listens
for incoming SIP requests. If IP address is an IPv6 address, it must be written inside