Skip to content

Commit 7851ef0

Browse files
authored
Is/feature/kotlin version update (#345)
* Update build.gradle * Update Kotlin Version to 1.9.0. Migrated to Viewbinding * Update naming in MainActivity
1 parent 3e5116c commit 7851ef0

File tree

15 files changed

+337
-221
lines changed

15 files changed

+337
-221
lines changed

app/build.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
plugins {
22
id 'com.android.application'
33
id 'kotlin-android'
4-
id 'kotlin-android-extensions'
54
id 'kotlin-kapt'
6-
id 'dagger.hilt.android.plugin'
75
id 'com.google.gms.google-services'
8-
6+
id 'com.google.dagger.hilt.android'
97
}
108

119
def localProperties = new Properties()
@@ -169,7 +167,7 @@ dependencies {
169167

170168
testImplementation "org.slf4j:slf4j-nop:1.7.36"
171169

172-
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
170+
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.9.10"
173171

174172

175173
// Testing - Instrumentation

app/src/main/java/com/telnyx/webrtc/sdk/ui/CallInstanceFragment.kt

Lines changed: 70 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,17 @@ import android.media.ToneGenerator
99
import android.media.ToneGenerator.*
1010
import android.os.Bundle
1111
import android.os.SystemClock
12+
import android.view.LayoutInflater
1213
import android.view.View
14+
import android.view.ViewGroup
1315
import androidx.fragment.app.Fragment
1416
import androidx.lifecycle.ViewModelProvider
1517
import com.davidmiguel.numberkeyboard.NumberKeyboard
1618
import com.davidmiguel.numberkeyboard.NumberKeyboardListener
1719
import com.telnyx.webrtc.sdk.R
20+
import com.telnyx.webrtc.sdk.databinding.FragmentCallInstanceBinding
1821
import com.telnyx.webrtc.sdk.model.SocketMethod
1922
import com.telnyx.webrtc.sdk.verto.receive.*
20-
import kotlinx.android.synthetic.main.activity_main.*
21-
import kotlinx.android.synthetic.main.fragment_call_instance.*
2223
import java.util.*
2324

2425

@@ -32,11 +33,24 @@ lateinit var mainViewModel: MainViewModel
3233
* Use the [CallInstanceFragment.newInstance] factory method to
3334
* create an instance of this fragment.
3435
*/
35-
class CallInstanceFragment : Fragment(R.layout.fragment_call_instance), NumberKeyboardListener {
36+
class CallInstanceFragment : Fragment(), NumberKeyboardListener {
3637
private var callId: UUID? = null
38+
private var _binding: FragmentCallInstanceBinding? = null
39+
40+
private val binding get() = _binding!!
3741

3842
private val toneGenerator = ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100)
3943

44+
override fun onCreateView(
45+
inflater: LayoutInflater,
46+
container: ViewGroup?,
47+
savedInstanceState: Bundle?
48+
): View {
49+
_binding = FragmentCallInstanceBinding.inflate(inflater, container, false)
50+
val view = binding.root
51+
return view
52+
}
53+
4054
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
4155
super.onViewCreated(view, savedInstanceState)
4256
arguments?.let {
@@ -53,63 +67,75 @@ class CallInstanceFragment : Fragment(R.layout.fragment_call_instance), NumberKe
5367
private fun setUpOngoingCallButtons() {
5468

5569
//Handle call option observers
56-
mainViewModel.getCallState()?.observe(this.viewLifecycleOwner, { value ->
57-
requireActivity().call_state_text_value.text = value.name
58-
})
59-
mainViewModel.getIsMuteStatus()?.observe(this.viewLifecycleOwner, { value ->
60-
if (!value) {
61-
mute_button_id.setImageResource(R.drawable.ic_mic_off)
62-
} else {
63-
mute_button_id.setImageResource(R.drawable.ic_mic)
70+
mainViewModel.getCallState()?.observe(this.viewLifecycleOwner) { value ->
71+
(requireActivity() as MainActivity).callStateTextValue?.text = value.name
72+
}
73+
mainViewModel.getIsMuteStatus()?.observe(this.viewLifecycleOwner) { value ->
74+
binding.apply {
75+
if (!value) {
76+
muteButtonId.setImageResource(R.drawable.ic_mic_off)
77+
} else {
78+
muteButtonId.setImageResource(R.drawable.ic_mic)
79+
}
6480
}
65-
})
81+
}
6682

67-
mainViewModel.getIsOnHoldStatus()?.observe(this.viewLifecycleOwner, { value ->
68-
if (!value) {
69-
hold_button_id.setImageResource(R.drawable.ic_hold)
70-
} else {
71-
hold_button_id.setImageResource(R.drawable.ic_play)
83+
mainViewModel.getIsOnHoldStatus()?.observe(this.viewLifecycleOwner) { value ->
84+
binding.apply {
85+
if (!value) {
86+
holdButtonId.setImageResource(R.drawable.ic_hold)
87+
} else {
88+
holdButtonId.setImageResource(R.drawable.ic_play)
89+
}
7290
}
73-
})
91+
}
7492

75-
mainViewModel.getIsOnLoudSpeakerStatus()?.observe(this.viewLifecycleOwner, { value ->
76-
if (!value) {
77-
loud_speaker_button_id.setImageResource(R.drawable.ic_loud_speaker_off)
78-
} else {
79-
loud_speaker_button_id.setImageResource(R.drawable.ic_loud_speaker)
93+
mainViewModel.getIsOnLoudSpeakerStatus()?.observe(this.viewLifecycleOwner) { value ->
94+
binding.apply {
95+
if (!value) {
96+
loudSpeakerButtonId.setImageResource(R.drawable.ic_loud_speaker_off)
97+
} else {
98+
loudSpeakerButtonId.setImageResource(R.drawable.ic_loud_speaker)
99+
}
80100
}
81-
})
101+
}
82102

83103
onTimerStart()
84104

85-
end_call_id.setOnClickListener {
86-
onEndCall()
87-
}
88-
mute_button_id.setOnClickListener {
89-
mainViewModel.onMuteUnmutePressed()
90-
}
91-
hold_button_id.setOnClickListener {
92-
mainViewModel.onHoldUnholdPressed(callId!!)
93-
}
94-
loud_speaker_button_id.setOnClickListener {
95-
mainViewModel.onLoudSpeakerPressed()
96-
}
97-
dial_pad_button_id.setOnClickListener {
98-
dialpad_section_id.visibility = View.VISIBLE
99-
val numberKeyboard = view?.findViewById<NumberKeyboard>(R.id.dialpad_id)
100-
numberKeyboard?.setListener(this)
105+
binding.apply {
106+
endCallId.setOnClickListener {
107+
onEndCall()
108+
}
109+
muteButtonId.setOnClickListener {
110+
mainViewModel.onMuteUnmutePressed()
111+
}
112+
holdButtonId.setOnClickListener {
113+
mainViewModel.onHoldUnholdPressed(callId!!)
114+
}
115+
loudSpeakerButtonId.setOnClickListener {
116+
mainViewModel.onLoudSpeakerPressed()
117+
}
118+
dialPadButtonId.setOnClickListener {
119+
dialpadSectionId.root.visibility = View.VISIBLE
120+
val numberKeyboard = view?.findViewById<NumberKeyboard>(R.id.dialpad_id)
121+
numberKeyboard?.setListener(this@CallInstanceFragment)
122+
}
101123
}
124+
125+
102126
}
103127

104128
private fun onEndCall() {
105129
mainViewModel.endCall(callId!!)
106-
call_timer_id.stop()
130+
binding.callTimerId.stop()
107131
parentFragmentManager.beginTransaction().remove(this@CallInstanceFragment).commit();
108132
}
109133

110134
private fun onTimerStart() {
111-
call_timer_id.base = SystemClock.elapsedRealtime()
112-
call_timer_id.start()
135+
binding.apply {
136+
callTimerId.base = SystemClock.elapsedRealtime()
137+
callTimerId.start()
138+
}
113139
}
114140

115141
private fun observeSocketResponses() {
@@ -204,6 +230,6 @@ class CallInstanceFragment : Fragment(R.layout.fragment_call_instance), NumberKe
204230
}
205231

206232
override fun onRightAuxButtonClicked() {
207-
dialpad_section_id.visibility = View.INVISIBLE
233+
binding.dialpadSectionId.root.visibility = View.INVISIBLE
208234
}
209235
}

0 commit comments

Comments
 (0)