diff --git a/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt b/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt
index 5bcf7b8..ac35339 100644
--- a/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt
+++ b/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt
@@ -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
@@ -29,9 +30,9 @@ class MainActivity : AppCompatActivity() {
setNormalMultiButton()
setRxSingleButton()
setRxMultiButton()
+ setRxVideoButton()
}
-
private fun setNormalSingleButton() {
binding.btnNormalSingle.setOnClickListener {
TedImagePicker.with(this)
@@ -39,6 +40,17 @@ class MainActivity : AppCompatActivity() {
}
}
+ 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)
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index fb04f8e..f096ace 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -37,6 +37,12 @@
android:layout_height="wrap_content"
android:text="Rx - Multi" />
+
+
= 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
}
}
diff --git a/tedimagepicker/src/main/java/gun0912/tedimagepicker/adapter/MediaAdapter.kt b/tedimagepicker/src/main/java/gun0912/tedimagepicker/adapter/MediaAdapter.kt
index 8dd1055..10f463c 100644
--- a/tedimagepicker/src/main/java/gun0912/tedimagepicker/adapter/MediaAdapter.kt
+++ b/tedimagepicker/src/main/java/gun0912/tedimagepicker/adapter/MediaAdapter.kt
@@ -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
@@ -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,
@@ -77,6 +81,7 @@ internal class MediaAdapter(
startZoomActivity(getItem(adapterPosition))
}
showZoom = false
+ showDuration = false
}
}
@@ -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
}
}
diff --git a/tedimagepicker/src/main/java/gun0912/tedimagepicker/builder/TedImagePickerBaseBuilder.kt b/tedimagepicker/src/main/java/gun0912/tedimagepicker/builder/TedImagePickerBaseBuilder.kt
index 67c080c..e57f60f 100644
--- a/tedimagepicker/src/main/java/gun0912/tedimagepicker/builder/TedImagePickerBaseBuilder.kt
+++ b/tedimagepicker/src/main/java/gun0912/tedimagepicker/builder/TedImagePickerBaseBuilder.kt
@@ -39,6 +39,10 @@ open class TedImagePickerBaseBuilder>(
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
@@ -48,6 +52,8 @@ open class TedImagePickerBaseBuilder>(
internal var selectedUriList: List? = 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
@@ -149,6 +155,16 @@ open class TedImagePickerBaseBuilder>(
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
@@ -184,6 +200,11 @@ open class TedImagePickerBaseBuilder>(
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
diff --git a/tedimagepicker/src/main/java/gun0912/tedimagepicker/extenstion/ObjectExtensions.kt b/tedimagepicker/src/main/java/gun0912/tedimagepicker/extenstion/ObjectExtensions.kt
new file mode 100644
index 0000000..fac62ba
--- /dev/null
+++ b/tedimagepicker/src/main/java/gun0912/tedimagepicker/extenstion/ObjectExtensions.kt
@@ -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)
+ )
+}
\ No newline at end of file
diff --git a/tedimagepicker/src/main/res/layout/activity_ted_image_picker.xml b/tedimagepicker/src/main/res/layout/activity_ted_image_picker.xml
index a1b83aa..13cecb8 100644
--- a/tedimagepicker/src/main/res/layout/activity_ted_image_picker.xml
+++ b/tedimagepicker/src/main/res/layout/activity_ted_image_picker.xml
@@ -17,6 +17,18 @@
name="buttonGravity"
type="ButtonGravity" />
+
+
+
+
+
+
@@ -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">
diff --git a/tedimagepicker/src/main/res/layout/item_gallery_media.xml b/tedimagepicker/src/main/res/layout/item_gallery_media.xml
index f4c7fe2..747daa1 100644
--- a/tedimagepicker/src/main/res/layout/item_gallery_media.xml
+++ b/tedimagepicker/src/main/res/layout/item_gallery_media.xml
@@ -28,6 +28,10 @@
name="showZoom"
type="boolean" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tedimagepicker/src/main/res/values/colors.xml b/tedimagepicker/src/main/res/values/colors.xml
index f2a1dbe..3da416a 100644
--- a/tedimagepicker/src/main/res/values/colors.xml
+++ b/tedimagepicker/src/main/res/values/colors.xml
@@ -25,5 +25,5 @@
#defafafa
-
+ #78000000
\ No newline at end of file