- Use Ringtone looping capability on Android P+.
This commit is contained in:
@@ -5,8 +5,7 @@ import android.app.*
|
|||||||
import android.app.Notification.VISIBILITY_PUBLIC
|
import android.app.Notification.VISIBILITY_PUBLIC
|
||||||
import android.content.*
|
import android.content.*
|
||||||
import android.media.*
|
import android.media.*
|
||||||
import android.net.ConnectivityManager
|
import android.net.*
|
||||||
import android.net.LinkProperties
|
|
||||||
import android.net.wifi.WifiManager
|
import android.net.wifi.WifiManager
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.os.PowerManager
|
import android.os.PowerManager
|
||||||
@@ -18,8 +17,6 @@ import android.support.v4.content.LocalBroadcastManager
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.support.v4.app.NotificationCompat.VISIBILITY_PRIVATE
|
import android.support.v4.app.NotificationCompat.VISIBILITY_PRIVATE
|
||||||
import android.support.v4.content.ContextCompat
|
import android.support.v4.content.ContextCompat
|
||||||
import android.net.Network
|
|
||||||
import android.net.NetworkRequest
|
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -731,22 +728,31 @@ class BaresipService: Service() {
|
|||||||
private fun startRinging() {
|
private fun startRinging() {
|
||||||
am.mode = AudioManager.MODE_RINGTONE
|
am.mode = AudioManager.MODE_RINGTONE
|
||||||
requestAudioFocus(AudioManager.STREAM_RING)
|
requestAudioFocus(AudioManager.STREAM_RING)
|
||||||
rt.play()
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
rtTimer = Timer()
|
rt.isLooping = true
|
||||||
rtTimer!!.scheduleAtFixedRate(object : TimerTask() {
|
rt.play()
|
||||||
override fun run() {
|
} else {
|
||||||
if (!rt.isPlaying()) {
|
rt.play()
|
||||||
rt.play()
|
rtTimer = Timer()
|
||||||
|
rtTimer!!.scheduleAtFixedRate(object : TimerTask() {
|
||||||
|
override fun run() {
|
||||||
|
if (!rt.isPlaying()) {
|
||||||
|
rt.play()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}, 1000 * 1, 1000 * 1)
|
||||||
}, 1000 * 1, 1000 * 1)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun stopRinging() {
|
private fun stopRinging() {
|
||||||
if (rtTimer != null) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
rtTimer!!.cancel()
|
|
||||||
rtTimer = null
|
|
||||||
if (rt.isPlaying) rt.stop()
|
if (rt.isPlaying) rt.stop()
|
||||||
|
} else {
|
||||||
|
if (rtTimer != null) {
|
||||||
|
rtTimer!!.cancel()
|
||||||
|
rtTimer = null
|
||||||
|
if (rt.isPlaying) rt.stop()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
abandonAudioFocus()
|
abandonAudioFocus()
|
||||||
am.mode = AudioManager.MODE_IN_COMMUNICATION
|
am.mode = AudioManager.MODE_IN_COMMUNICATION
|
||||||
|
|||||||
Reference in New Issue
Block a user