Skip to content

Commit 2193126

Browse files
committed
Migrated to ViewBinding
1 parent d9a8811 commit 2193126

File tree

11 files changed

+153
-137
lines changed

11 files changed

+153
-137
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ assignees: ''
77

88
---
99

10-
Library version: 0.x.x
10+
Library version: 1.x.x
1111
OS version: [Android 10]
1212
Device model: [Samsung S20]
1313

sample/build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
apply plugin: 'com.android.application'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
43

54
def properties = new Properties()
65
properties.load(rootProject.file('local.properties').newDataInputStream())
@@ -53,6 +52,10 @@ android {
5352
abortOnError false
5453
}
5554

55+
buildFeatures {
56+
viewBinding = true
57+
}
58+
5659
flavorDimensions "libSource"
5760
productFlavors {
5861
local {

sample/src/main/java/com/anggrayudi/storage/sample/activity/FileCompressionActivity.kt

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package com.anggrayudi.storage.sample.activity
22

33
import android.os.Bundle
4-
import android.view.View
4+
import android.widget.TextView
55
import android.widget.Toast
66
import androidx.documentfile.provider.DocumentFile
77
import com.anggrayudi.storage.callback.ZipCompressionCallback
88
import com.anggrayudi.storage.file.MimeType
99
import com.anggrayudi.storage.file.compressToZip
1010
import com.anggrayudi.storage.file.fullName
1111
import com.anggrayudi.storage.file.getAbsolutePath
12-
import com.anggrayudi.storage.sample.R
13-
import kotlinx.android.synthetic.main.activity_file_compression.*
14-
import kotlinx.android.synthetic.main.view_file_picked.view.*
12+
import com.anggrayudi.storage.sample.databinding.ActivityFileCompressionBinding
1513
import kotlinx.coroutines.launch
1614
import timber.log.Timber
1715

@@ -21,71 +19,75 @@ import timber.log.Timber
2119
*/
2220
class FileCompressionActivity : BaseActivity() {
2321

22+
private lateinit var binding: ActivityFileCompressionBinding
23+
2424
override fun onCreate(savedInstanceState: Bundle?) {
2525
super.onCreate(savedInstanceState)
26-
setContentView(R.layout.activity_file_compression)
26+
binding = ActivityFileCompressionBinding.inflate(layoutInflater)
27+
setContentView(binding.root)
28+
2729
setupSimpleStorage()
28-
btnStartCompress.setOnClickListener { startCompress() }
30+
binding.btnStartCompress.setOnClickListener { startCompress() }
2931
}
3032

3133
private fun setupSimpleStorage() {
3234
storageHelper.onFileCreated = { _, file ->
33-
layoutCompressFiles_destZipFile.updateFileSelectionView(file)
35+
binding.layoutCompressFilesDestZipFile.tvFilePath.updateFileSelectionView(file)
3436
}
35-
layoutCompressFiles_destZipFile.btnBrowse.setOnClickListener {
37+
binding.layoutCompressFilesDestZipFile.btnBrowse.setOnClickListener {
3638
storageHelper.createFile(MimeType.ZIP, "Test compress")
3739
}
3840

3941
storageHelper.onFileSelected = { requestCode, files ->
4042
when (requestCode) {
41-
REQUEST_CODE_PICK_MEDIA_1 -> layoutCompressFiles_srcMedia1.updateFileSelectionView(files)
42-
REQUEST_CODE_PICK_MEDIA_2 -> layoutCompressFiles_srcMedia2.updateFileSelectionView(files)
43+
REQUEST_CODE_PICK_MEDIA_1 -> binding.layoutCompressFilesSrcMedia1.tvFilePath.updateFileSelectionView(files)
44+
REQUEST_CODE_PICK_MEDIA_2 -> binding.layoutCompressFilesSrcMedia2.tvFilePath.updateFileSelectionView(files)
4345
}
4446
}
45-
layoutCompressFiles_srcMedia1.btnBrowse.setOnClickListener {
47+
binding.layoutCompressFilesSrcMedia1.btnBrowse.setOnClickListener {
4648
storageHelper.openFilePicker(REQUEST_CODE_PICK_MEDIA_1, true)
4749
}
48-
layoutCompressFiles_srcMedia2.btnBrowse.setOnClickListener {
50+
binding.layoutCompressFilesSrcMedia2.btnBrowse.setOnClickListener {
4951
storageHelper.openFilePicker(REQUEST_CODE_PICK_MEDIA_2, true)
5052
}
5153

5254
storageHelper.onFolderSelected = { requestCode, folder ->
5355
when (requestCode) {
54-
REQUEST_CODE_PICK_FOLDER_1 -> layoutCompressFiles_srcFolder1.updateFileSelectionView(folder)
55-
REQUEST_CODE_PICK_FOLDER_2 -> layoutCompressFiles_srcFolder2.updateFileSelectionView(folder)
56+
REQUEST_CODE_PICK_FOLDER_1 -> binding.layoutCompressFilesSrcFolder1.tvFilePath.updateFileSelectionView(folder)
57+
REQUEST_CODE_PICK_FOLDER_2 -> binding.layoutCompressFilesSrcFolder2.tvFilePath.updateFileSelectionView(folder)
5658
}
5759
}
58-
layoutCompressFiles_srcFolder1.btnBrowse.setOnClickListener {
60+
binding.layoutCompressFilesSrcFolder1.btnBrowse.setOnClickListener {
5961
storageHelper.openFolderPicker(REQUEST_CODE_PICK_FOLDER_1)
6062
}
61-
layoutCompressFiles_srcFolder2.btnBrowse.setOnClickListener {
63+
binding.layoutCompressFilesSrcFolder2.btnBrowse.setOnClickListener {
6264
storageHelper.openFolderPicker(REQUEST_CODE_PICK_FOLDER_2)
6365
}
6466
}
6567

66-
private fun View.updateFileSelectionView(files: List<DocumentFile>) {
68+
private fun TextView.updateFileSelectionView(files: List<DocumentFile>) {
6769
tag = files
68-
tvFilePath.text = files.joinToString(", ") { it.fullName }
70+
text = files.joinToString(", ") { it.fullName }
6971
}
7072

71-
private fun View.updateFileSelectionView(file: DocumentFile) {
73+
private fun TextView.updateFileSelectionView(file: DocumentFile) {
7274
tag = file
73-
tvFilePath.text = file.getAbsolutePath(context)
75+
text = file.getAbsolutePath(context)
7476
}
7577

7678
@Suppress("UNCHECKED_CAST")
7779
private fun startCompress() {
78-
val targetZip = layoutCompressFiles_destZipFile.tag as? DocumentFile
80+
val targetZip = binding.layoutCompressFilesDestZipFile.tvFilePath.tag as? DocumentFile
7981
if (targetZip == null) {
8082
Toast.makeText(this, "Please select destination ZIP file", Toast.LENGTH_SHORT).show()
8183
return
8284
}
8385

8486
val files = mutableListOf<DocumentFile>()
85-
(layoutCompressFiles_srcMedia1.tag as? List<DocumentFile>)?.let { files.addAll(it) }
86-
(layoutCompressFiles_srcMedia2.tag as? List<DocumentFile>)?.let { files.addAll(it) }
87-
(layoutCompressFiles_srcFolder1.tag as? DocumentFile)?.let { files.add(it) }
88-
(layoutCompressFiles_srcFolder2.tag as? DocumentFile)?.let { files.add(it) }
87+
(binding.layoutCompressFilesSrcMedia1.tvFilePath.tag as? List<DocumentFile>)?.let { files.addAll(it) }
88+
(binding.layoutCompressFilesSrcMedia2.tvFilePath.tag as? List<DocumentFile>)?.let { files.addAll(it) }
89+
(binding.layoutCompressFilesSrcFolder1.tvFilePath.tag as? DocumentFile)?.let { files.add(it) }
90+
(binding.layoutCompressFilesSrcFolder2.tvFilePath.tag as? DocumentFile)?.let { files.add(it) }
8991

9092
ioScope.launch {
9193
files.compressToZip(applicationContext, targetZip, callback = object : ZipCompressionCallback<DocumentFile>(uiScope) {

sample/src/main/java/com/anggrayudi/storage/sample/activity/FileDecompressionActivity.kt

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ import com.anggrayudi.storage.file.MimeType
1212
import com.anggrayudi.storage.file.decompressZip
1313
import com.anggrayudi.storage.file.fullName
1414
import com.anggrayudi.storage.file.getAbsolutePath
15-
import com.anggrayudi.storage.sample.R
16-
import kotlinx.android.synthetic.main.activity_file_decompression.*
17-
import kotlinx.android.synthetic.main.view_file_picked.view.*
15+
import com.anggrayudi.storage.sample.databinding.ActivityFileDecompressionBinding
1816
import kotlinx.coroutines.launch
1917

2018
/**
@@ -23,43 +21,47 @@ import kotlinx.coroutines.launch
2321
*/
2422
class FileDecompressionActivity : BaseActivity() {
2523

24+
private lateinit var binding: ActivityFileDecompressionBinding
25+
2626
override fun onCreate(savedInstanceState: Bundle?) {
2727
super.onCreate(savedInstanceState)
28-
setContentView(R.layout.activity_file_decompression)
28+
binding = ActivityFileDecompressionBinding.inflate(layoutInflater)
29+
setContentView(binding.root)
30+
2931
setupSimpleStorage()
30-
btnStartDecompress.setOnClickListener { startDecompress() }
32+
binding.btnStartDecompress.setOnClickListener { startDecompress() }
3133
}
3234

3335
private fun setupSimpleStorage() {
3436
storageHelper.onFileSelected = { _, files ->
3537
val file = files.first()
36-
layoutDecompressFile_srcZip.run {
38+
binding.layoutDecompressFileSrcZip.tvFilePath.run {
3739
tag = file
38-
tvFilePath.text = file.fullName
40+
text = file.fullName
3941
}
4042
}
41-
layoutDecompressFile_srcZip.btnBrowse.setOnClickListener {
43+
binding.layoutDecompressFileSrcZip.btnBrowse.setOnClickListener {
4244
storageHelper.openFilePicker(filterMimeTypes = arrayOf(MimeType.ZIP))
4345
}
4446

4547
storageHelper.onFolderSelected = { _, folder ->
46-
layoutDecompressFile_destFolder.run {
48+
binding.layoutDecompressFileDestFolder.tvFilePath.run {
4749
tag = folder
48-
tvFilePath.text = folder.getAbsolutePath(context)
50+
text = folder.getAbsolutePath(context)
4951
}
5052
}
51-
layoutDecompressFile_destFolder.btnBrowse.setOnClickListener {
53+
binding.layoutDecompressFileDestFolder.btnBrowse.setOnClickListener {
5254
storageHelper.openFolderPicker()
5355
}
5456
}
5557

5658
private fun startDecompress() {
57-
val zipFile = layoutDecompressFile_srcZip.tag as? DocumentFile
59+
val zipFile = binding.layoutDecompressFileSrcZip.tvFilePath.tag as? DocumentFile
5860
if (zipFile == null) {
5961
Toast.makeText(this, "Please select source ZIP file", Toast.LENGTH_SHORT).show()
6062
return
6163
}
62-
val targetFolder = layoutDecompressFile_destFolder.tag as? DocumentFile
64+
val targetFolder = binding.layoutDecompressFileDestFolder.tvFilePath.tag as? DocumentFile
6365
if (targetFolder == null) {
6466
Toast.makeText(this, "Please select destination folder", Toast.LENGTH_SHORT).show()
6567
return

0 commit comments

Comments
 (0)