Skip to content

Commit 337248e

Browse files
authored
Develop (#67)
Allow setting background color from lassi builder.
1 parent 17aff35 commit 337248e

File tree

9 files changed

+33
-14
lines changed

9 files changed

+33
-14
lines changed

app/src/main/java/com/lassi/app/MainActivity.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
5656
.setToolbarColor(R.color.colorPrimary)
5757
.setToolbarResourceColor(android.R.color.white)
5858
.setProgressBarColor(R.color.colorAccent)
59+
.setGalleryBackgroundColor(R.color.colorGrey)
5960
.setCropType(CropImageView.CropShape.OVAL)
6061
.setCropAspectRatio(1, 1)
6162
.setCompressionRation(10)
@@ -83,6 +84,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
8384
.setToolbarColor(R.color.colorPrimary)
8485
.setToolbarResourceColor(android.R.color.white)
8586
.setProgressBarColor(R.color.colorAccent)
87+
.setGalleryBackgroundColor(R.color.colorGrey)
8688
.setPlaceHolder(R.drawable.ic_video_placeholder)
8789
.setErrorDrawable(R.drawable.ic_video_placeholder)
8890
.setSelectionDrawable(R.drawable.ic_checked_media)
@@ -103,6 +105,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
103105
.setToolbarColor(R.color.colorPrimary)
104106
.setToolbarResourceColor(android.R.color.white)
105107
.setProgressBarColor(R.color.colorAccent)
108+
.setGalleryBackgroundColor(R.color.colorGrey)
106109
.build()
107110
receiveData.launch(intent)
108111
}
@@ -153,6 +156,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
153156
.setStatusBarColor(R.color.colorPrimaryDark)
154157
.setToolbarColor(R.color.colorPrimary)
155158
.setToolbarResourceColor(android.R.color.white)
159+
.setGalleryBackgroundColor(R.color.colorGrey)
156160
.setSupportedFileTypes(
157161
"pdf",
158162
"odt",
@@ -176,7 +180,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
176180
if (it.resultCode == Activity.RESULT_OK) {
177181
val selectedMedia =
178182
it.data?.getSerializableExtra(KeyUtils.SELECTED_MEDIA) as ArrayList<MiMedia>
179-
if (!selectedMedia.isNullOrEmpty()) {
183+
if (selectedMedia.isNotEmpty()) {
180184
ivEmpty.isVisible = selectedMedia.isEmpty()
181185
selectedMediaAdapter.setList(selectedMedia)
182186
}

lassi/build.gradle

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ android {
1212
defaultConfig {
1313
minSdkVersion 19
1414
targetSdkVersion 32
15-
versionCode 22
16-
versionName "1.0.0"
15+
versionCode 23
16+
versionName "1.0.1"
1717
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1818
vectorDrawables.useSupportLibrary = true
1919
multiDexEnabled true
@@ -47,9 +47,9 @@ android {
4747

4848
dependencies {
4949
implementation fileTree(dir: 'libs', include: ['*.jar'])
50-
implementation 'androidx.appcompat:appcompat:1.4.1'
51-
implementation 'androidx.core:core-ktx:1.7.0'
52-
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
50+
implementation 'androidx.appcompat:appcompat:1.4.2'
51+
implementation 'androidx.core:core-ktx:1.8.0'
52+
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
5353
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
5454
implementation "androidx.recyclerview:recyclerview:1.2.1"
5555
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
@@ -61,7 +61,7 @@ dependencies {
6161
implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
6262

6363
// Google material
64-
implementation 'com.google.android.material:material:1.5.0'
64+
implementation 'com.google.android.material:material:1.6.1'
6565

6666
// glide
6767
implementation 'com.github.bumptech.glide:glide:4.12.0'
@@ -79,10 +79,10 @@ dependencies {
7979
implementation 'androidx.room:room-ktx:2.4.2'
8080

8181
//Coroutine
82-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0'
82+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1'
8383

8484
//Gson
85-
implementation 'com.google.code.gson:gson:2.8.8'
85+
implementation 'com.google.code.gson:gson:2.9.0'
8686
}
8787
repositories {
8888
mavenCentral()

lassi/src/main/java/com/lassi/common/extenstions/ImageViewExts.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@ package com.lassi.common.extenstions
33
import android.widget.ImageView
44
import com.bumptech.glide.Glide
55
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
6+
import com.bumptech.glide.request.transition.DrawableCrossFadeFactory
67
import com.lassi.domain.media.LassiConfig
78

9+
810
fun ImageView.loadImage(source: String?) {
11+
val factory = DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build()
912
Glide.with(context)
1013
.load(source ?: "")
1114
.error(LassiConfig.getConfig().errorDrawable)
1215
.placeholder(LassiConfig.getConfig().placeHolder)
13-
.transition(DrawableTransitionOptions.withCrossFade())
16+
.transition(DrawableTransitionOptions.withCrossFade(factory))
1417
.into(this)
1518
}

lassi/src/main/java/com/lassi/domain/media/LassiConfig.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ data class LassiConfig(
1616
var statusBarColor: Int = Color.BLACK,
1717
var toolbarResourceColor: Int = Color.WHITE,
1818
var progressBarColor: Int = Color.BLACK,
19+
var galleryBackgroundColor: Int = Color.WHITE,
1920
@DrawableRes var placeHolder: Int = R.drawable.ic_image_placeholder,
2021
@DrawableRes var errorDrawable: Int = R.drawable.ic_image_placeholder,
2122
@DrawableRes var selectionDrawable: Int = R.drawable.ic_checked_media,
@@ -47,6 +48,7 @@ data class LassiConfig(
4748
statusBarColor = lassiConfig.statusBarColor
4849
toolbarResourceColor = lassiConfig.toolbarResourceColor
4950
progressBarColor = lassiConfig.progressBarColor
51+
galleryBackgroundColor = lassiConfig.galleryBackgroundColor
5052
selectedMedias = lassiConfig.selectedMedias
5153
mediaType = lassiConfig.mediaType
5254
maxCount = lassiConfig.maxCount

lassi/src/main/java/com/lassi/presentation/builder/Lassi.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,14 @@ class Lassi(private val context: Context) {
149149
return this
150150
}
151151

152+
/**
153+
* Set gallery background color resource
154+
*/
155+
fun setGalleryBackgroundColor(@ColorRes color: Int): Lassi {
156+
lassiConfig.galleryBackgroundColor = ContextCompat.getColor(context, color)
157+
return this
158+
}
159+
152160
/**
153161
* Set progressbar color hex
154162
*/

lassi/src/main/java/com/lassi/presentation/docs/DocsViewModelFactory.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.lassi.domain.media.MediaRepository
1010
class DocsViewModelFactory(val context: Context) : ViewModelProvider.Factory {
1111
private val mediaRepository: MediaRepository = MediaRepositoryImpl(context)
1212

13-
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
13+
override fun <T : ViewModel> create(modelClass: Class<T>): T {
1414
return DocsViewModel(mediaRepository) as T
1515
}
1616
}

lassi/src/main/java/com/lassi/presentation/media/MediaFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class MediaFragment : LassiBaseViewModelFragment<SelectedMediaViewModel>() {
4848

4949
override fun initViews() {
5050
super.initViews()
51+
rvMedia.setBackgroundColor(LassiConfig.getConfig().galleryBackgroundColor)
5152
bucket?.let {
5253
it.bucketName?.let { bucketName ->
5354
viewModel.getSelectedMediaData(bucket = bucketName)
@@ -104,7 +105,7 @@ class MediaFragment : LassiBaseViewModelFragment<SelectedMediaViewModel>() {
104105
when (LassiConfig.getConfig().mediaType) {
105106
MediaType.IMAGE -> {
106107
if (LassiConfig.getConfig().maxCount == 1 && LassiConfig.getConfig().isCrop) {
107-
val uri = Uri.fromFile(File(selectedMedias[0].path))
108+
val uri = Uri.fromFile(selectedMedias[0].path?.let { File(it) })
108109
CropUtils.beginCrop(requireActivity(), uri)
109110
} else if (LassiConfig.getConfig().maxCount > 1) {
110111
viewModel.addAllSelectedMedia(selectedMedias)

lassi/src/main/java/com/lassi/presentation/mediadirectory/FolderFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class FolderFragment : LassiBaseViewModelFragment<FolderViewModel>() {
6565

6666
override fun initViews() {
6767
super.initViews()
68+
rvMedia.setBackgroundColor(LassiConfig.getConfig().galleryBackgroundColor)
6869
rvMedia.layoutManager = GridLayoutManager(context, LassiConfig.getConfig().gridSize)
6970
rvMedia.adapter = folderAdapter
7071
rvMedia.addItemDecoration(GridSpacingItemDecoration(LassiConfig.getConfig().gridSize, 10))

lassi/src/main/java/com/lassi/presentation/mediadirectory/LassiMediaPickerActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ class LassiMediaPickerActivity : LassiBaseViewModelActivity<SelectedMediaViewMod
193193
return super.onCreateOptionsMenu(menu)
194194
}
195195

196-
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
196+
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
197197
menuDone?.isVisible = !viewModel.selectedMediaLiveData.value.isNullOrEmpty()
198198
return super.onPrepareOptionsMenu(menu)
199199
}
@@ -244,7 +244,7 @@ class LassiMediaPickerActivity : LassiBaseViewModelActivity<SelectedMediaViewMod
244244

245245
private fun handleSelectedMedia(selectedMedias: ArrayList<MiMedia>) {
246246
setToolbarTitle(selectedMedias)
247-
menuDone?.isVisible = !selectedMedias.isNullOrEmpty()
247+
menuDone?.isVisible = selectedMedias.isNotEmpty()
248248
}
249249

250250

0 commit comments

Comments
 (0)