mirror of
				https://github.com/SimpleMobileTools/Simple-Contacts.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	handle accepting call
This commit is contained in:
		| @@ -10,9 +10,7 @@ import android.os.Bundle | ||||
| import android.telecom.Call | ||||
| import android.widget.RemoteViews | ||||
| import androidx.core.app.NotificationCompat | ||||
| import com.simplemobiletools.commons.extensions.notificationManager | ||||
| import com.simplemobiletools.commons.extensions.setText | ||||
| import com.simplemobiletools.commons.extensions.updateTextColors | ||||
| import com.simplemobiletools.commons.extensions.* | ||||
| import com.simplemobiletools.commons.helpers.isOreoPlus | ||||
| import com.simplemobiletools.contacts.pro.R | ||||
| import com.simplemobiletools.contacts.pro.helpers.ACCEPT_CALL | ||||
| @@ -49,7 +47,9 @@ class CallActivity : SimpleActivity() { | ||||
|             endCall() | ||||
|         } | ||||
|  | ||||
|         call_accept.setOnClickListener { } | ||||
|         call_accept.setOnClickListener { | ||||
|             acceptCall() | ||||
|         } | ||||
|  | ||||
|         call_toggle_microphone.setOnClickListener { | ||||
|             toggleMicrophone() | ||||
| @@ -60,7 +60,9 @@ class CallActivity : SimpleActivity() { | ||||
|         } | ||||
|  | ||||
|         call_dialpad.setOnClickListener { } | ||||
|         call_end.setOnClickListener { } | ||||
|         call_end.setOnClickListener { | ||||
|             endCall() | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun toggleSpeaker() { | ||||
| @@ -77,10 +79,20 @@ class CallActivity : SimpleActivity() { | ||||
|  | ||||
|     private fun updateCallState(state: Int) { | ||||
|         when (state) { | ||||
|             Call.STATE_ACTIVE -> callStarted() | ||||
|             Call.STATE_DISCONNECTED -> endCall() | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun acceptCall() { | ||||
|         CallManager.accept() | ||||
|     } | ||||
|  | ||||
|     private fun callStarted() { | ||||
|         incoming_call_holder.beGone() | ||||
|         ongoing_call_holder.beVisible() | ||||
|     } | ||||
|  | ||||
|     private fun endCall() { | ||||
|         CallManager.reject() | ||||
|         finish() | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package com.simplemobiletools.contacts.pro.helpers | ||||
|  | ||||
| import android.annotation.SuppressLint | ||||
| import android.telecom.Call | ||||
| import android.telecom.VideoProfile | ||||
|  | ||||
| // inspired by https://github.com/Chooloo/call_manage | ||||
| @SuppressLint("NewApi") | ||||
| @@ -9,6 +10,10 @@ class CallManager { | ||||
|     companion object { | ||||
|         var call: Call? = null | ||||
|  | ||||
|         fun accept() { | ||||
|             call?.answer(VideoProfile.STATE_AUDIO_ONLY) | ||||
|         } | ||||
|  | ||||
|         fun reject() { | ||||
|             if (call != null) { | ||||
|                 if (call!!.state == Call.STATE_RINGING) { | ||||
|   | ||||
| @@ -3,12 +3,14 @@ package com.simplemobiletools.contacts.pro.receivers | ||||
| import android.content.BroadcastReceiver | ||||
| import android.content.Context | ||||
| import android.content.Intent | ||||
| import com.simplemobiletools.contacts.pro.helpers.ACCEPT_CALL | ||||
| import com.simplemobiletools.contacts.pro.helpers.CallManager | ||||
| import com.simplemobiletools.contacts.pro.helpers.DECLINE_CALL | ||||
|  | ||||
| class CallActionReceiver : BroadcastReceiver() { | ||||
|     override fun onReceive(context: Context, intent: Intent) { | ||||
|         when (intent.action) { | ||||
|             ACCEPT_CALL -> CallManager.accept() | ||||
|             DECLINE_CALL -> CallManager.reject() | ||||
|         } | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user