Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Toolbar Done button visibility. #347

Merged
merged 2 commits into from
Apr 8, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ class ImagePickerConfig(
var excludedImages: List<File> = emptyList(),
override var savePath: ImagePickerSavePath = ImagePickerSavePath.DEFAULT,
override var returnMode: ReturnMode = ReturnMode.NONE,
override var isSaveImage: Boolean = true
override var isSaveImage: Boolean = true,
var showDoneButtonAlways: Boolean = false
) : BaseConfig(), Parcelable {

@Transient
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ class ImagePickerFragment : Fragment(), ImagePickerView {
* Get all selected images then return image to caller activity
*/
fun onDone() {
presenter.onDoneSelectImages(recyclerViewManager!!.selectedImages)
presenter.onDoneSelectImages(recyclerViewManager!!.selectedImages,config)
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,16 @@ internal class ImagePickerPresenter(
})
}

fun onDoneSelectImages(selectedImages: List<Image>?) {
if (selectedImages == null || selectedImages.isEmpty()) return
fun onDoneSelectImages(selectedImages: List<Image>?,config: ImagePickerConfig) {

if(config.showDoneButtonAlways && selectedImages?.size==0){
runOnUi {
finishPickImages(emptyList())
}
}

if (selectedImages == null || selectedImages.isEmpty())
return

runOnUi {
finishPickImages(selectedImages.filter {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.esafirm.imagepicker.R
import com.esafirm.imagepicker.adapter.FolderPickerAdapter
import com.esafirm.imagepicker.adapter.ImagePickerAdapter
import com.esafirm.imagepicker.features.ImagePickerComponentsHolder
import com.esafirm.imagepicker.features.ImagePickerConfig
import com.esafirm.imagepicker.features.ImagePickerMode
import com.esafirm.imagepicker.features.IpCons
import com.esafirm.imagepicker.features.ReturnMode
import com.esafirm.imagepicker.features.*
import com.esafirm.imagepicker.helper.ConfigUtils
import com.esafirm.imagepicker.listeners.OnFolderClickListener
import com.esafirm.imagepicker.listeners.OnImageClickListener
Expand Down Expand Up @@ -188,7 +184,7 @@ class RecyclerViewManager(

val isShowDoneButton: Boolean
get() = (!isDisplayingFolderView
&& imageAdapter.selectedImages.isNotEmpty()
&& config.returnMode !== ReturnMode.ALL && config.returnMode !== ReturnMode.GALLERY_ONLY)
&& (imageAdapter.selectedImages.isNotEmpty() || config.showDoneButtonAlways)
&& config.returnMode !== ReturnMode.ALL && config.returnMode !== ReturnMode.GALLERY_ONLY)

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import com.esafirm.imagepicker.features.common.BaseConfig
object ConfigUtils {
fun checkConfig(config: ImagePickerConfig): ImagePickerConfig {
check(!(config.mode != ImagePickerMode.SINGLE
&& (config.returnMode === ReturnMode.GALLERY_ONLY
|| config.returnMode === ReturnMode.ALL))) { "ReturnMode.GALLERY_ONLY and ReturnMode.ALL is only applicable in Single Mode!" }
&& (config.returnMode === ReturnMode.GALLERY_ONLY
|| config.returnMode === ReturnMode.ALL))) { "ReturnMode.GALLERY_ONLY and ReturnMode.ALL is only applicable in Single Mode!" }
return config
}

Expand Down
1 change: 1 addition & 0 deletions sample/src/main/java/com/esafirm/sample/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ class MainActivity : AppCompatActivity() {
folderTitle = "Folder" // folder selection title
imageTitle = "Tap to select" // image selection title
doneButtonText = "DONE" // done button text
showDoneButtonAlways = true // Show done button always or not
limit = 10 // max images can be selected (99 by default)
isShowCamera = true // show camera or not (true by default)
savePath = ImagePickerSavePath("Camera") // captured image directory name ("Camera" folder by default)
Expand Down