@@ -15,48 +15,55 @@ import androidx.appcompat.app.AppCompatActivity
1515import androidx.core.content.FileProvider
1616import androidx.core.view.isVisible
1717import com.lassi.app.adapter.SelectedMediaAdapter
18+ import com.lassi.app.databinding.ActivityMainBinding
1819import com.lassi.common.utils.KeyUtils
1920import com.lassi.data.media.MiMedia
2021import com.lassi.domain.media.LassiOption
2122import com.lassi.domain.media.MediaType
2223import com.lassi.presentation.builder.Lassi
2324import com.lassi.presentation.common.decoration.GridSpacingItemDecoration
2425import com.lassi.presentation.cropper.CropImageView
25- import kotlinx.android.synthetic.main.activity_main.*
2626import java.io.File
27- import java.util.*
27+ import java.util.Locale
2828
2929class MainActivity : AppCompatActivity (), View.OnClickListener {
30+ private var _binding : ActivityMainBinding ? = null
31+ protected val binding get() = _binding !!
3032
3133 private val selectedMediaAdapter by lazy { SelectedMediaAdapter (this ::onItemClicked) }
3234
3335 override fun onCreate (savedInstanceState : Bundle ? ) {
3436 super .onCreate(savedInstanceState)
35- setContentView(R .layout.activity_main)
36- btnImagePicker.setOnClickListener(this )
37- btnVideoPicker.setOnClickListener(this )
38- btnAudioPicker.setOnClickListener(this )
39- btnDocPicker.setOnClickListener(this )
40- btnImageCapture.setOnClickListener(this )
41- btnVideoCapture.setOnClickListener(this )
42- btnDocumentSystemIntent.setOnClickListener(this )
43- rvSelectedMedia.adapter = selectedMediaAdapter
44- rvSelectedMedia.addItemDecoration(GridSpacingItemDecoration (2 , 10 ))
37+ _binding = ActivityMainBinding .inflate(layoutInflater)
38+ binding.also {
39+ setContentView(it.root)
40+ it.btnImagePicker.setOnClickListener(this )
41+ it.btnVideoPicker.setOnClickListener(this )
42+ it.btnAudioPicker.setOnClickListener(this )
43+ it.btnDocPicker.setOnClickListener(this )
44+ it.btnImageCapture.setOnClickListener(this )
45+ it.btnVideoCapture.setOnClickListener(this )
46+ it.btnDocumentSystemIntent.setOnClickListener(this )
47+ it.rvSelectedMedia.adapter = selectedMediaAdapter
48+ it.rvSelectedMedia.addItemDecoration(GridSpacingItemDecoration (2 , 10 ))
49+ }
4550 }
4651
4752 override fun onClick (v : View ? ) {
4853 when (v?.id) {
4954 R .id.btnImagePicker -> {
5055 val intent = Lassi (this )
5156 .with (LassiOption .CAMERA_AND_GALLERY )
52- .setMaxCount(4 )
57+ .setMaxCount(1 )
5358 .setGridSize(2 )
5459 .setPlaceHolder(R .drawable.ic_image_placeholder)
5560 .setErrorDrawable(R .drawable.ic_image_placeholder)
5661 .setSelectionDrawable(R .drawable.ic_checked_media)
5762 .setStatusBarColor(R .color.colorPrimaryDark)
5863 .setToolbarColor(R .color.colorPrimary)
5964 .setToolbarResourceColor(android.R .color.white)
65+ .setAlertDialogNegativeButtonColor(R .color.cherry_red)
66+ .setAlertDialogPositiveButtonColor(R .color.emerald_green)
6067 .setProgressBarColor(R .color.colorAccent)
6168 .setGalleryBackgroundColor(R .color.colorGrey)
6269 .setCropType(CropImageView .CropShape .OVAL )
@@ -72,19 +79,22 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
7279 receiveData.launch(intent)
7380
7481 }
82+
7583 R .id.btnVideoPicker -> {
7684 val intent = Lassi (this )
7785 .with (LassiOption .CAMERA_AND_GALLERY )
78- .setMaxCount(1 )
86+ .setMaxCount(4 )
7987 .setGridSize(3 )
8088 .setMinTime(5 )
8189 .setMaxTime(30 )
8290 .setMinFileSize(0 )
83- .setMaxFileSize(2000 )
91+ .setMaxFileSize(20000 )
8492 .setMediaType(MediaType .VIDEO )
8593 .setStatusBarColor(R .color.colorPrimaryDark)
8694 .setToolbarColor(R .color.colorPrimary)
8795 .setToolbarResourceColor(android.R .color.white)
96+ .setAlertDialogNegativeButtonColor(R .color.cherry_red)
97+ .setAlertDialogPositiveButtonColor(R .color.emerald_green)
8898 .setProgressBarColor(R .color.colorAccent)
8999 .setGalleryBackgroundColor(R .color.colorGrey)
90100 .setPlaceHolder(R .drawable.ic_video_placeholder)
@@ -111,9 +121,11 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
111121 .build()
112122 receiveData.launch(intent)
113123 }
124+
114125 R .id.btnDocPicker -> {
115126 requestPermissionForDocument()
116127 }
128+
117129 R .id.btnDocumentSystemIntent -> {
118130 val intent = Lassi (this )
119131 .setMediaType(MediaType .FILE_TYPE_WITH_SYSTEM_VIEW )
@@ -141,6 +153,70 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
141153 " xlsx" ,
142154 " xls"
143155 )
156+ .setMaxCount(3 )
157+ .setCustomLimitExceedingErrorMessage(R .string.error_exceed_msg)
158+ .build()
159+ receiveData.launch(intent)
160+ }
161+
162+ R .id.btnImageCapture -> {
163+ val intent = Lassi (this )
164+ .with (LassiOption .CAMERA )
165+ .setMaxCount(1 )
166+ .setGridSize(2 )
167+ .setPlaceHolder(R .drawable.ic_image_placeholder)
168+ .setErrorDrawable(R .drawable.ic_image_placeholder)
169+ .setSelectionDrawable(R .drawable.ic_checked_media)
170+ .setStatusBarColor(R .color.colorPrimaryDark)
171+ .setToolbarColor(R .color.colorPrimary)
172+ .setToolbarResourceColor(android.R .color.white)
173+ .setProgressBarColor(R .color.colorAccent)
174+ .setGalleryBackgroundColor(R .color.colorGrey)
175+ .setAlertDialogNegativeButtonColor(R .color.cherry_red)
176+ .setAlertDialogPositiveButtonColor(R .color.emerald_green)
177+ .setMediaType(MediaType .IMAGE )
178+ .setCropType(CropImageView .CropShape .OVAL )
179+ .setCropAspectRatio(1 , 1 )
180+ .setCompressionRation(0 )
181+ .setMinFileSize(0 )
182+ .setMaxFileSize(1000000 )
183+ .enableActualCircleCrop()
184+ .setSupportedFileTypes(" jpg" , " jpeg" , " png" , " webp" , " gif" )
185+ .enableFlip()
186+ .enableRotate()
187+ .build()
188+ receiveData.launch(intent)
189+ }
190+
191+ R .id.btnVideoCapture -> {
192+ val intent = Lassi (this )
193+ .with (LassiOption .CAMERA )
194+ .setMaxCount(1 )
195+ .setGridSize(3 )
196+ .setMinTime(5 )
197+ .setMaxTime(30 )
198+ .setMinFileSize(0 )
199+ .setMaxFileSize(2000 )
200+ .setPlaceHolder(R .drawable.ic_image_placeholder)
201+ .setErrorDrawable(R .drawable.ic_image_placeholder)
202+ .setSelectionDrawable(R .drawable.ic_checked_media)
203+ .setStatusBarColor(R .color.colorPrimaryDark)
204+ .setToolbarColor(R .color.colorPrimary)
205+ .setMediaType(MediaType .VIDEO )
206+ .setToolbarResourceColor(android.R .color.white)
207+ .setAlertDialogNegativeButtonColor(R .color.cherry_red)
208+ .setAlertDialogPositiveButtonColor(R .color.emerald_green)
209+ .setProgressBarColor(R .color.colorAccent)
210+ .setGalleryBackgroundColor(R .color.colorGrey)
211+ .setCropType(CropImageView .CropShape .OVAL )
212+ .setCropAspectRatio(1 , 1 )
213+ .setCompressionRation(0 )
214+ .setMinFileSize(0 )
215+ .setMaxFileSize(10000 )
216+ .enableActualCircleCrop()
217+ .setSupportedFileTypes(" jpg" , " jpeg" , " png" , " webp" , " gif" )
218+ .enableFlip()
219+ .enableRotate()
144220 .build()
145221 receiveData.launch(intent)
146222 }
@@ -216,6 +292,8 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
216292 .setStatusBarColor(R .color.colorPrimaryDark)
217293 .setToolbarColor(R .color.colorPrimary)
218294 .setToolbarResourceColor(android.R .color.white)
295+ .setAlertDialogNegativeButtonColor(R .color.cherry_red)
296+ .setAlertDialogPositiveButtonColor(R .color.emerald_green)
219297 .setGalleryBackgroundColor(R .color.colorGrey)
220298 .setSupportedFileTypes(
221299 " pdf" ,
@@ -240,8 +318,9 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
240318 if (it.resultCode == Activity .RESULT_OK ) {
241319 val selectedMedia =
242320 it.data?.getSerializableExtra(KeyUtils .SELECTED_MEDIA ) as ArrayList <MiMedia >
321+
243322 if (selectedMedia.isNotEmpty()) {
244- ivEmpty.isVisible = selectedMedia.isEmpty()
323+ binding. ivEmpty.isVisible = selectedMedia.isEmpty()
245324 selectedMediaAdapter.setList(selectedMedia)
246325 }
247326 }
@@ -301,6 +380,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
301380 }
302381 }
303382 }
383+
304384 else -> {
305385 launchDocPicker()
306386 }
0 commit comments