Skip to content

Commit cc07331

Browse files
committed
Migrate Sample from Kotlin synthetics to Jetpack view binding
1 parent 4566499 commit cc07331

File tree

2 files changed

+33
-28
lines changed

2 files changed

+33
-28
lines changed

sample/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ android {
1414
versionName "1.0"
1515
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1616
}
17+
viewBinding {
18+
enabled = true
19+
}
1720
buildTypes {
1821
release {
1922
minifyEnabled false

sample/src/main/java/com/github/squti/androidwaverecordersample/MainActivity.kt

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ import android.widget.Toast
3333
import androidx.appcompat.app.AppCompatActivity
3434
import androidx.core.app.ActivityCompat
3535
import androidx.core.content.ContextCompat
36+
import androidx.lifecycle.lifecycleScope
3637
import com.github.squti.androidwaverecorder.RecorderState
3738
import com.github.squti.androidwaverecorder.WaveRecorder
39+
import com.github.squti.androidwaverecordersample.databinding.ActivityMainBinding
3840
import kotlinx.android.synthetic.main.activity_main.*
3941
import kotlinx.coroutines.Dispatchers
4042
import kotlinx.coroutines.GlobalScope
@@ -49,10 +51,12 @@ class MainActivity : AppCompatActivity() {
4951
private lateinit var filePath: String
5052
private var isRecording = false
5153
private var isPaused = false
54+
private lateinit var binding: ActivityMainBinding
5255

5356
override fun onCreate(savedInstanceState: Bundle?) {
5457
super.onCreate(savedInstanceState)
55-
setContentView(R.layout.activity_main)
58+
binding = ActivityMainBinding.inflate(layoutInflater)
59+
setContentView(binding.root)
5660

5761
filePath = externalCacheDir?.absolutePath + "/audioFile.wav"
5862

@@ -67,10 +71,10 @@ class MainActivity : AppCompatActivity() {
6771
}
6872
waveRecorder.onTimeElapsed = {
6973
Log.e(TAG, "onCreate: time elapsed $it")
70-
timeTextView.text = formatTimeUnit(it * 1000)
74+
binding.timeTextView.text = formatTimeUnit(it * 1000)
7175
}
7276

73-
startStopRecordingButton.setOnClickListener {
77+
binding.startStopRecordingButton.setOnClickListener {
7478

7579
if (!isRecording) {
7680
if (ContextCompat.checkSelfPermission(
@@ -92,30 +96,28 @@ class MainActivity : AppCompatActivity() {
9296
}
9397
}
9498

95-
pauseResumeRecordingButton.setOnClickListener {
99+
binding.pauseResumeRecordingButton.setOnClickListener {
96100
if (!isPaused) {
97101
waveRecorder.pauseRecording()
98102
} else {
99103
waveRecorder.resumeRecording()
100104
}
101105
}
102-
showAmplitudeSwitch.setOnCheckedChangeListener { buttonView, isChecked ->
106+
binding.showAmplitudeSwitch.setOnCheckedChangeListener { buttonView, isChecked ->
103107
if (isChecked) {
104-
amplitudeTextView.text = "Amplitude : 0"
105-
amplitudeTextView.visibility = View.VISIBLE
108+
binding.amplitudeTextView.text = "Amplitude : 0"
109+
binding.amplitudeTextView.visibility = View.VISIBLE
106110
waveRecorder.onAmplitudeListener = {
107-
GlobalScope.launch(Dispatchers.Main) {
108-
amplitudeTextView.text = "Amplitude : $it"
109-
}
111+
binding.amplitudeTextView.text = "Amplitude : $it"
110112
}
111113

112114
} else {
113115
waveRecorder.onAmplitudeListener = null
114-
amplitudeTextView.visibility = View.GONE
116+
binding.amplitudeTextView.visibility = View.GONE
115117
}
116118
}
117119

118-
noiseSuppressorSwitch.setOnCheckedChangeListener { buttonView, isChecked ->
120+
binding.noiseSuppressorSwitch.setOnCheckedChangeListener { buttonView, isChecked ->
119121
waveRecorder.noiseSuppressorActive = isChecked
120122
if (isChecked)
121123
Toast.makeText(this, "Noise Suppressor Activated", Toast.LENGTH_SHORT).show()
@@ -127,30 +129,30 @@ class MainActivity : AppCompatActivity() {
127129
Log.d(TAG, waveRecorder.audioSessionId.toString())
128130
isRecording = true
129131
isPaused = false
130-
messageTextView.visibility = View.GONE
131-
recordingTextView.text = "Recording..."
132-
recordingTextView.visibility = View.VISIBLE
133-
startStopRecordingButton.text = "STOP"
134-
pauseResumeRecordingButton.text = "PAUSE"
135-
pauseResumeRecordingButton.visibility = View.VISIBLE
136-
noiseSuppressorSwitch.isEnabled = false
132+
binding.messageTextView.visibility = View.GONE
133+
binding.recordingTextView.text = "Recording..."
134+
binding.recordingTextView.visibility = View.VISIBLE
135+
binding.startStopRecordingButton.text = "STOP"
136+
binding.pauseResumeRecordingButton.text = "PAUSE"
137+
binding.pauseResumeRecordingButton.visibility = View.VISIBLE
138+
binding.noiseSuppressorSwitch.isEnabled = false
137139
}
138140

139141
private fun stopRecording() {
140142
isRecording = false
141143
isPaused = false
142-
recordingTextView.visibility = View.GONE
143-
messageTextView.visibility = View.VISIBLE
144-
pauseResumeRecordingButton.visibility = View.GONE
145-
showAmplitudeSwitch.isChecked = false
144+
binding.recordingTextView.visibility = View.GONE
145+
binding.messageTextView.visibility = View.VISIBLE
146+
binding.pauseResumeRecordingButton.visibility = View.GONE
147+
binding.showAmplitudeSwitch.isChecked = false
146148
Toast.makeText(this, "File saved at : $filePath", Toast.LENGTH_LONG).show()
147-
startStopRecordingButton.text = "START"
148-
noiseSuppressorSwitch.isEnabled = true
149+
binding.startStopRecordingButton.text = "START"
150+
binding.noiseSuppressorSwitch.isEnabled = true
149151
}
150152

151153
private fun pauseRecording() {
152-
recordingTextView.text = "PAUSE"
153-
pauseResumeRecordingButton.text = "RESUME"
154+
binding.recordingTextView.text = "PAUSE"
155+
binding.pauseResumeRecordingButton.text = "RESUME"
154156
isPaused = true
155157
}
156158

@@ -189,4 +191,4 @@ class MainActivity : AppCompatActivity() {
189191
"00:00"
190192
}
191193
}
192-
}
194+
}

0 commit comments

Comments
 (0)