Skip to content

Commit 81e1bd9

Browse files
shivam21Shivam Bhusri
andauthored
Migrate project to ViewBinding (#17)
Co-authored-by: Shivam Bhusri <[email protected]>
1 parent 30dc8df commit 81e1bd9

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

app/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ android {
4040
kotlinOptions {
4141
jvmTarget = "1.8"
4242
}
43+
44+
buildFeatures {
45+
viewBinding true
46+
}
4347
}
4448

4549
dependencies {

app/src/main/java/com/haroldadmin/crashyapp/MainActivity.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ package com.haroldadmin.crashyapp
22

33
import android.os.Bundle
44
import androidx.appcompat.app.AppCompatActivity
5-
import kotlinx.android.synthetic.main.activity_main.*
5+
import com.haroldadmin.crashyapp.databinding.ActivityMainBinding
66

77
class MainActivity : AppCompatActivity() {
88

99
override fun onCreate(savedInstanceState: Bundle?) {
1010
super.onCreate(savedInstanceState)
11-
setContentView(R.layout.activity_main)
11+
val binding = ActivityMainBinding.inflate(layoutInflater)
12+
setContentView(binding.root)
1213

13-
crashButton.setOnClickListener {
14+
binding.crashButton.setOnClickListener {
1415
throw BecauseICanException()
1516
}
1617
}

what-the-stack/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ android {
3636
kotlin {
3737
explicitApi()
3838
}
39+
40+
buildFeatures {
41+
viewBinding true
42+
}
3943
}
4044

4145
dependencies {

what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackActivity.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,28 @@ import android.content.Intent
77
import android.os.Bundle
88
import android.text.method.ScrollingMovementMethod
99
import android.view.View
10-
import android.widget.TextView
1110
import androidx.appcompat.app.AppCompatActivity
12-
import androidx.appcompat.widget.AppCompatTextView
13-
import com.google.android.material.button.MaterialButton
1411
import com.google.android.material.snackbar.Snackbar
12+
import com.haroldadmin.whatthestack.databinding.ActivityWhatTheStackBinding
1513
import dev.chrisbanes.insetter.Insetter
1614
import dev.chrisbanes.insetter.Side
17-
import kotlinx.android.synthetic.main.activity_what_the_stack.*
1815

1916
/**
2017
* An Activity which displays various pieces of information regarding the exception which
2118
* occurred.
2219
*/
2320
class WhatTheStackActivity : AppCompatActivity() {
2421

22+
private lateinit var binding: ActivityWhatTheStackBinding
23+
2524
private val clipboardManager: ClipboardManager by lazy {
2625
getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
2726
}
2827

2928
override fun onCreate(savedInstanceState: Bundle?) {
3029
super.onCreate(savedInstanceState)
31-
setContentView(R.layout.activity_what_the_stack)
30+
binding = ActivityWhatTheStackBinding.inflate(layoutInflater)
31+
setContentView(binding.root)
3232

3333
window.decorView.systemUiVisibility =
3434
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
@@ -42,33 +42,33 @@ class WhatTheStackActivity : AppCompatActivity() {
4242
val message = intent.getStringExtra(KEY_EXCEPTION_MESSAGE)
4343
val stackTrace = intent.getStringExtra(KEY_EXCEPTION_STACKTRACE)
4444

45-
findViewById<TextView>(R.id.stacktrace).apply {
45+
binding.stacktrace.apply {
4646
text = stackTrace
4747
setHorizontallyScrolling(true)
4848
movementMethod = ScrollingMovementMethod()
4949
}
5050

51-
findViewById<AppCompatTextView>(R.id.exceptionName).apply {
51+
binding.exceptionName.apply {
5252
text = getString(R.string.exception_name, type)
5353
}
5454

55-
findViewById<AppCompatTextView>(R.id.exceptionCause).apply {
55+
binding.exceptionCause.apply {
5656
text = getString(R.string.exception_cause, cause)
5757
}
5858

59-
findViewById<AppCompatTextView>(R.id.exceptionMessage).apply {
59+
binding.exceptionMessage.apply {
6060
text = getString(R.string.exception_message, message)
6161
}
6262

63-
findViewById<MaterialButton>(R.id.copyStacktrace).apply {
63+
binding.copyStacktrace.apply {
6464
setOnClickListener {
6565
val clipping = ClipData.newPlainText("stacktrace", stackTrace)
6666
clipboardManager.setPrimaryClip(clipping)
6767
snackbar { R.string.copied_message }
6868
}
6969
}
7070

71-
findViewById<MaterialButton>(R.id.shareStacktrace).apply {
71+
binding.shareStacktrace.apply {
7272
setOnClickListener {
7373
val sendIntent: Intent = Intent().apply {
7474
this.action = Intent.ACTION_SEND
@@ -81,7 +81,7 @@ class WhatTheStackActivity : AppCompatActivity() {
8181
}
8282
}
8383

84-
findViewById<MaterialButton>(R.id.launchApplication).apply {
84+
binding.launchApplication.apply {
8585
setOnClickListener {
8686
context.packageManager.getLaunchIntentForPackage(applicationContext.packageName)?.let {
8787
it.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
@@ -92,6 +92,6 @@ class WhatTheStackActivity : AppCompatActivity() {
9292
}
9393

9494
private inline fun snackbar(messageProvider: () -> Int) {
95-
Snackbar.make(nestedScrollRoot, messageProvider(), Snackbar.LENGTH_SHORT).show()
95+
Snackbar.make(binding.nestedScrollRoot, messageProvider(), Snackbar.LENGTH_SHORT).show()
9696
}
9797
}

0 commit comments

Comments
 (0)