Skip to content

Commit

Permalink
Bug fixed when compress image after pick from gallery or take from ca…
Browse files Browse the repository at this point in the history
…mera
  • Loading branch information
dhaval-devstree committed Jan 6, 2021
1 parent 9cdc66d commit 34a4205
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 45 deletions.
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,3 @@ bottomSheetFilePicker.actionButtonTextColor = R.color.purple_500
bottomSheetFilePicker.cancelButtonTextColor = R.color.white
```

**File Pick Options**


2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation project(path: ':mediafilepicker')
// implementation 'com.github.dhaval-baldha1812:MediaFilePicker:1.0.1'

androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
testImplementation 'junit:junit:4.13.1'
Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import android.view.View.*
import android.view.ViewGroup
import androidx.annotation.ColorRes
import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import com.devstree.mediafilepicker.R
import com.devstree.mediafilepicker.databinding.BottomSheetCameraDialogBinding
import com.devstree.mediafilepicker.enumeration.MediaType
Expand Down Expand Up @@ -58,17 +59,13 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
@ColorRes
var cancelButtonTextColor: Int? = null

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = BottomSheetCameraDialogBinding.inflate(inflater, container, false)
return binding.root
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mapping()
if (directAction) {
selectFile()
Expand All @@ -81,14 +78,14 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
btnChooseImage.setText(R.string.choose_image_from_gallery)
btnTakeVideo.setText(R.string.take_a_video)
btnChooseVideo.setText(R.string.choose_video_from_gallery)
btnEditCancel.setText(R.string.cancel)
btnCancel.setText(R.string.cancel)
}

binding.btnTakePhoto.setOnClickListener(this)
binding.btnChooseImage.setOnClickListener(this)
binding.btnTakeVideo.setOnClickListener(this)
binding.btnChooseVideo.setOnClickListener(this)
binding.btnEditCancel.setOnClickListener(this)
binding.btnCancel.setOnClickListener(this)

if (type == TAKE_ALL) {
binding.btnTakePhoto.visibility = VISIBLE
Expand All @@ -105,7 +102,7 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
binding.btnTakeVideo.visibility = GONE
binding.btnChooseImage.visibility = GONE
binding.btnChooseVideo.visibility = GONE
binding.btnEditCancel.visibility = GONE
binding.btnCancel.visibility = GONE
} else if (type == IMAGE) {
binding.btnTakePhoto.visibility = VISIBLE
binding.btnTakeVideo.visibility = GONE
Expand Down Expand Up @@ -133,13 +130,13 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
btnChooseVideo.setTextColor(actionButtonTextColor!!)
}
}
if (cancelButtonBg != null) binding.btnEditCancel.setBackgroundResource(cancelButtonBg!!)
if (cancelButtonTextColor != null) binding.btnEditCancel.setTextColor(cancelButtonTextColor!!)
if (cancelButtonBg != null) binding.btnCancel.setBackgroundResource(cancelButtonBg!!)
if (cancelButtonTextColor != null) binding.btnCancel.setTextColor(ContextCompat.getColor(requireContext(), cancelButtonTextColor!!))
}

override fun onClick(view: View) {
when (view) {
binding.btnEditCancel -> hideBottomSheet()
binding.btnCancel -> hideBottomSheet()
binding.btnTakePhoto -> {
action = TAKE_PHOTO
selectFile()
Expand All @@ -162,18 +159,18 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
private fun requestPermission(): Boolean {
if (EasyPermissions.hasPermissions(mContext, *permissions)) return true
requestPermissions(
this,
getString(R.string.permission_camera_rationale),
REQUEST_PERMISSION,
permissions
this,
getString(R.string.permission_camera_rationale),
REQUEST_PERMISSION,
permissions
)
return false
}

override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this)
Expand Down Expand Up @@ -206,15 +203,15 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
} else {
val resInfoList = mContext.packageManager.queryIntentActivities(
intent,
PackageManager.MATCH_DEFAULT_ONLY
intent,
PackageManager.MATCH_DEFAULT_ONLY
)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
mContext.grantUriPermission(
packageName,
uri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION
packageName,
uri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION
)
}
}
Expand Down Expand Up @@ -288,7 +285,7 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
try {
if (context == null) return@launch
file =
FileUtil.getFileFromUri(mContext, intent!!.data, MediaType.IMAGE)
FileUtil.getFileFromUri(mContext, intent!!.data, MediaType.IMAGE)
if (file == null) return@launch
file = FileUtil.imageCompress(mContext, file!!, MediaType.IMAGE) // image compress
media = Media.create(Thumb.generate(mContext, MediaType.IMAGE, file!!))
Expand All @@ -299,15 +296,15 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
}
TAKE_VIDEO -> {
if (file != null) media =
Media.create(Thumb.generate(mContext, MediaType.VIDEO, file!!))
Media.create(Thumb.generate(mContext, MediaType.VIDEO, file!!))
}
CHOOSE_VIDEO_FROM_GALLERY -> {
// trimRequest(data.getUser());
// file = FileUtil.getNewPath(context, intent.getData(), MediaType.VIDEO);
file = FileUtil.getFileFromUri(mContext, intent!!.data, MediaType.VIDEO)
if (file == null) return@launch
val mMedia: Media =
Media.create(Thumb.generate(mContext, MediaType.VIDEO, file!!))
Media.create(Thumb.generate(mContext, MediaType.VIDEO, file!!))
if (mMedia.isValid) media = mMedia
}
CROP_REQUEST -> {
Expand All @@ -318,9 +315,9 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
try {
if (intent!!.data == null) return@launch
file = FileUtil.getFileFromUri(
mContext,
intent.data,
MediaType.DOCUMENT
mContext,
intent.data,
MediaType.DOCUMENT
)
if (file == null) return@launch
media = Media.create(Thumb.generate(MediaType.DOCUMENT, file!!))
Expand Down Expand Up @@ -367,22 +364,22 @@ open class BottomSheetFilePicker : BaseBottomSheet(), OnClickListener {
companion object {
private val permissions = if (VERSION.SDK_INT >= VERSION_CODES.Q) {
arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_MEDIA_LOCATION,
Manifest.permission.READ_CONTACTS
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_MEDIA_LOCATION,
Manifest.permission.READ_CONTACTS
)
} else {
arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_CONTACTS
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_CONTACTS
)
}
private val PROJECTION = arrayOf(
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
)
private const val VIDEO_LIMIT = 10
const val IMAGE = 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
android:textColor="@color/black" />

<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnEditCancel"
android:id="@+id/btnCancel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/_5sdp"
Expand Down

0 comments on commit 34a4205

Please sign in to comment.