Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import gun0912.tedimagepicker.builder.TedImagePicker
import gun0912.tedimagepicker.builder.TedRxImagePicker
import gun0912.tedimagepicker.builder.type.MediaType
import gun0912.tedimagepicker.sample.databinding.ActivityMainBinding
import gun0912.tedimagepicker.sample.databinding.ItemImageBinding

Expand All @@ -29,16 +30,27 @@ class MainActivity : AppCompatActivity() {
setNormalMultiButton()
setRxSingleButton()
setRxMultiButton()
setRxVideoButton()
}


private fun setNormalSingleButton() {
binding.btnNormalSingle.setOnClickListener {
TedImagePicker.with(this)
.start { uri -> showSingleImage(uri) }
}
}

private fun setRxVideoButton() {
binding.btnVideo.setOnClickListener {
TedImagePicker.with(this)
.mediaType(MediaType.VIDEO)
.toolbarBackgroundColor(R.color.error_color_material_dark)
.backButtonColor(R.color.white)
.toolbarTitleColor(R.color.white)
.startMultiImage { uri -> showSingleImage(uri.first()) }
}
}

private fun setNormalMultiButton() {
binding.btnNormalMulti.setOnClickListener {
TedImagePicker.with(this)
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@
android:layout_height="wrap_content"
android:text="Rx - Multi" />

<Button
android:id="@+id/btn_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Video" />

<ImageView
android:id="@+id/iv_image"
android:layout_width="wrap_content"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.graphics.PorterDuff
import android.graphics.drawable.ColorDrawable
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.view.MenuItem
Expand All @@ -29,10 +32,7 @@ import gun0912.tedimagepicker.base.BaseRecyclerViewAdapter
import gun0912.tedimagepicker.builder.TedImagePickerBaseBuilder
import gun0912.tedimagepicker.builder.type.SelectType
import gun0912.tedimagepicker.databinding.ActivityTedImagePickerBinding
import gun0912.tedimagepicker.extenstion.close
import gun0912.tedimagepicker.extenstion.isOpen
import gun0912.tedimagepicker.extenstion.setLock
import gun0912.tedimagepicker.extenstion.toggle
import gun0912.tedimagepicker.extenstion.*
import gun0912.tedimagepicker.model.Album
import gun0912.tedimagepicker.model.Media
import gun0912.tedimagepicker.util.GalleryUtil
Expand Down Expand Up @@ -71,15 +71,24 @@ internal class TedImagePickerActivity : AppCompatActivity() {
setupSelectedMediaView()
setupButton()
loadMedia()

}

private fun setupToolbar() {
setSupportActionBar(binding.toolbar)
val toolbarColor = ContextCompat.getColor(this@TedImagePickerActivity, builder.toolbarColorBackgroundResId)
binding.toolbarColor = toolbarColor
binding.titleTextColor = ContextCompat.getColor(this@TedImagePickerActivity, builder.toolbarTitleColorResId)

if (Build.VERSION.SDK_INT >= 21) {
window.statusBarColor = toolbarColor.manipulate(factor = 0.95f)
}

supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setHomeButtonEnabled(true)
builder.backButtonResId.let {
binding.toolbar.setNavigationIcon(it)
val drawable = resources.getDrawable(it)
drawable.setColorFilter(ContextCompat.getColor(this@TedImagePickerActivity, builder.backButtonColorId), PorterDuff.Mode.SRC_IN)
binding.toolbar.navigationIcon = drawable
}

}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package gun0912.tedimagepicker.adapter

import android.app.Activity
import android.media.MediaMetadataRetriever
import android.net.Uri
import android.text.format.DateUtils
import android.view.ViewGroup
import android.widget.Toast
import androidx.core.app.ActivityOptionsCompat
Expand All @@ -15,6 +17,8 @@ import gun0912.tedimagepicker.databinding.ItemGalleryCameraBinding
import gun0912.tedimagepicker.databinding.ItemGalleryMediaBinding
import gun0912.tedimagepicker.model.Media
import gun0912.tedimagepicker.zoom.TedImageZoomActivity
import kotlinx.android.synthetic.main.item_gallery_media.view.*
import java.io.File

internal class MediaAdapter(
private val activity: Activity,
Expand Down Expand Up @@ -77,6 +81,7 @@ internal class MediaAdapter(
startZoomActivity(getItem(adapterPosition))
}
showZoom = false
showDuration = false
}

}
Expand All @@ -89,8 +94,17 @@ internal class MediaAdapter(
selectedNumber = selectedUriList.indexOf(data.uri) + 1
}

showZoom =
!isSelected && (builder.mediaType == MediaType.IMAGE) && builder.showZoomIndicator
showDuration = builder.mediaType == MediaType.VIDEO

if (showDuration) {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(context, data.uri)

val length = (Integer.parseInt(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)) / 1000).toLong()
itemView.video_duration_textview.text = "${DateUtils.formatElapsedTime(length)}"
}

showZoom = !isSelected && (builder.mediaType == MediaType.IMAGE) && builder.showZoomIndicator
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ open class TedImagePickerBaseBuilder<out B : TedImagePickerBaseBuilder<B>>(
internal var titleResId: Int = R.string.ted_image_picker_title,
internal var buttonGravity: ButtonGravity = ButtonGravity.TOP,
internal var buttonText: String? = null,
@ColorRes
internal var toolbarColorBackgroundResId: Int = R.color.white,
@ColorRes
internal var toolbarTitleColorResId: Int = R.color.black,
@DrawableRes
internal var buttonBackgroundResId: Int = R.drawable.btn_done_button,
@ColorRes
Expand All @@ -48,6 +52,8 @@ open class TedImagePickerBaseBuilder<out B : TedImagePickerBaseBuilder<B>>(
internal var selectedUriList: List<Uri>? = null,
@DrawableRes
internal var backButtonResId: Int = R.drawable.ic_arrow_back_black_24dp,
@ColorRes
internal var backButtonColorId: Int = R.color.black,
internal var maxCount: Int = Int.MAX_VALUE,
internal var maxCountMessage: String? = null,
@StringRes
Expand Down Expand Up @@ -149,6 +155,16 @@ open class TedImagePickerBaseBuilder<out B : TedImagePickerBaseBuilder<B>>(
return this as B
}

fun toolbarBackgroundColor(@ColorRes colorId: Int) : B {
this.toolbarColorBackgroundResId = colorId
return this as B
}

fun toolbarTitleColor(@ColorRes colorId: Int): B {
this.toolbarTitleColorResId = colorId
return this as B
}

fun buttonGravity(buttonGravity: ButtonGravity): B {
this.buttonGravity = buttonGravity
return this as B
Expand Down Expand Up @@ -184,6 +200,11 @@ open class TedImagePickerBaseBuilder<out B : TedImagePickerBaseBuilder<B>>(
return this as B
}

fun backButtonColor(@ColorRes backButtonColorResId: Int) : B {
backButtonColorId = backButtonColorResId
return this as B
}

fun max(maxCount: Int, maxCountMessage: String): B {
this.maxCount = maxCount
this.maxCountMessage = maxCountMessage
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package gun0912.tedimagepicker.extenstion

import android.graphics.Color
import kotlin.math.min
import kotlin.math.round

fun Int.manipulate(factor: Float = 1f, alpha: Float = 1f): Int {
val a = (255f * alpha).toInt()
val r = round((Color.red(this) * factor)).toInt()
val g = round((Color.green(this) * factor)).toInt()
val b = round((Color.blue(this) * factor)).toInt()

return Color.argb(a,
min(r, 255),
min(g, 255),
min(b, 255)
)
}
15 changes: 14 additions & 1 deletion tedimagepicker/src/main/res/layout/activity_ted_image_picker.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,18 @@
name="buttonGravity"
type="ButtonGravity" />

<variable
name="toolbarColor"
type="Integer"/>

<variable
name="backButtonColor"
type="Integer"/>

<variable
name="titleTextColor"
type="Integer"/>

<variable
name="showButton"
type="boolean" />
Expand Down Expand Up @@ -45,7 +57,8 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/ted_image_picker_toolbar_background"
app:titleTextColor="@{titleTextColor}"
android:background="@{toolbarColor}"
app:contentInsetStartWithNavigation="0dp">


Expand Down
31 changes: 31 additions & 0 deletions tedimagepicker/src/main/res/layout/item_gallery_media.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
name="showZoom"
type="boolean" />

<variable
name="showDuration"
type="boolean" />

</data>

<FrameLayout
Expand Down Expand Up @@ -99,6 +103,33 @@
android:background="@color/ted_image_picker_zoom_background"
android:src="@drawable/ic_zoom_out_24dp" />
</FrameLayout>

<FrameLayout
android:layout_width="0dp"
android:layout_height="@dimen/ted_image_picker_zoom_size"
android:id="@+id/view_video_duration"
android:visibility="@{showDuration}"
android:layout_marginBottom="@dimen/default_padding_small"
android:layout_marginStart="@dimen/default_padding_xsmall"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/view_zoom_out"
>

<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/video_duration_textview"
android:background="@color/ted_image_picker_duration_background"
android:text="0:00"
android:layout_gravity="end"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:textColor="@color/white"
android:paddingStart="@dimen/default_padding_small"
android:paddingEnd="@dimen/default_padding_small"/>

</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>
2 changes: 1 addition & 1 deletion tedimagepicker/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@

<color name="ted_image_picker_zoom_background">#defafafa</color>


<color name="ted_image_picker_duration_background">#78000000</color>
</resources>