Some work on sim card detection
This commit is contained in:
@@ -2270,17 +2270,10 @@ class BaresipService: Service() {
|
|||||||
account.regint = 0
|
account.regint = 0
|
||||||
account.telProvider = ""
|
account.telProvider = ""
|
||||||
val mobileUa = UserAgent(0L, account)
|
val mobileUa = UserAgent(0L, account)
|
||||||
val isAirplaneModeOn = Settings.Global.getInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0) != 0
|
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
||||||
val sm = getSystemService(TELEPHONY_SUBSCRIPTION_SERVICE) as android.telephony.SubscriptionManager
|
val hasSimCard = hasSimCard()
|
||||||
val hasActiveSubscription = if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE) ==
|
mobileUa.status = if (isAirplaneModeOn || !hasSimCard)
|
||||||
PackageManager.PERMISSION_GRANTED)
|
|
||||||
!sm.activeSubscriptionInfoList.isNullOrEmpty()
|
|
||||||
else
|
|
||||||
false
|
|
||||||
mobileUa.status = if (isAirplaneModeOn)
|
|
||||||
R.drawable.circle_white
|
R.drawable.circle_white
|
||||||
else if (hasActiveSubscription)
|
|
||||||
circleGreen.getValue(colorblind)
|
|
||||||
else
|
else
|
||||||
circleRed.getValue(colorblind)
|
circleRed.getValue(colorblind)
|
||||||
updateMobileStatus(mobileUa.status)
|
updateMobileStatus(mobileUa.status)
|
||||||
@@ -2305,7 +2298,8 @@ class BaresipService: Service() {
|
|||||||
private fun updateMobileStatus(newStatus: Int? = null) {
|
private fun updateMobileStatus(newStatus: Int? = null) {
|
||||||
uas.value.find { it.account.isMobile }?.let { ua ->
|
uas.value.find { it.account.isMobile }?.let { ua ->
|
||||||
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
||||||
val status = newStatus ?: if (isAirplaneModeOn) {
|
val hasSimCard = hasSimCard()
|
||||||
|
val status = newStatus ?: if (isAirplaneModeOn || !hasSimCard) {
|
||||||
if (ua.status == circleGreen.getValue(colorblind))
|
if (ua.status == circleGreen.getValue(colorblind))
|
||||||
ua.status
|
ua.status
|
||||||
else
|
else
|
||||||
@@ -2330,9 +2324,10 @@ class BaresipService: Service() {
|
|||||||
if (state == previousMobileServiceState) return
|
if (state == previousMobileServiceState) return
|
||||||
previousMobileServiceState = state
|
previousMobileServiceState = state
|
||||||
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
||||||
|
val hasSimCard = hasSimCard()
|
||||||
val status = if (state == ServiceState.STATE_IN_SERVICE)
|
val status = if (state == ServiceState.STATE_IN_SERVICE)
|
||||||
circleGreen.getValue(colorblind)
|
circleGreen.getValue(colorblind)
|
||||||
else if (isAirplaneModeOn)
|
else if (isAirplaneModeOn || !hasSimCard)
|
||||||
R.drawable.circle_white
|
R.drawable.circle_white
|
||||||
else
|
else
|
||||||
circleRed.getValue(colorblind)
|
circleRed.getValue(colorblind)
|
||||||
@@ -3022,6 +3017,13 @@ class BaresipService: Service() {
|
|||||||
|
|
||||||
external fun baresipStop(force: Boolean)
|
external fun baresipStop(force: Boolean)
|
||||||
|
|
||||||
|
private fun hasSimCard(): Boolean {
|
||||||
|
if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED)
|
||||||
|
return false
|
||||||
|
val sm = getSystemService(TELEPHONY_SUBSCRIPTION_SERVICE) as android.telephony.SubscriptionManager
|
||||||
|
return sm.activeSubscriptionInfoList?.isNotEmpty() ?: false
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("MutableCollectionMutableState")
|
@SuppressLint("MutableCollectionMutableState")
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user