Skip to content

Commit

Permalink
Adds progress tinting support
Browse files Browse the repository at this point in the history
  • Loading branch information
Aritra Roy committed Mar 27, 2018
1 parent 09423d9 commit a327b13
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 16 deletions.
13 changes: 8 additions & 5 deletions app/src/main/java/com/andrognito/flashbardemo/MainActivity.kt
Expand Up @@ -19,21 +19,23 @@ class MainActivity : AppCompatActivity() {
show.setOnClickListener {
if (flashbar == null) {
flashbar = Flashbar.Builder(activity)
.position(Flashbar.FlashbarPosition.BOTTOM)
.position(Flashbar.FlashbarPosition.TOP)
.backgroundColorRes(R.color.colorPrimaryDark)
//.title("Hello!")
.title("Hello!")
.message("Loading, please wait...")
.enterAnimation(FlashAnim
.with(activity)
.animateBar()
.enterFrom(FlashAnim.Position.BOTTOM)
.enterFrom(FlashAnim.Position.TOP)
.alpha()
.overshoot()
.duration(450)
.build())
.exitAnimation(FlashAnim
.with(activity)
.animateBar()
.exitFrom(FlashAnim.Position.BOTTOM)
.exitFrom(FlashAnim.Position.TOP)
.alpha()
.overshoot()
.duration(450)
.build())
Expand All @@ -44,7 +46,8 @@ class MainActivity : AppCompatActivity() {
.build())
//.actionText("Close")
//.modalOverlayColorRes(R.color.modal)
.showProgress(Flashbar.ProgressPosition.LEFT)
//.showProgress(Flashbar.ProgressPosition.LEFT)
.progressTintRes(R.color.colorAccent)
.enableSwipeToDismiss()
.vibrateOn(Flashbar.Vibration.SHOW, Flashbar.Vibration.DISMISS)
.dismissOnTapOutside()
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
@@ -1,13 +1,13 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.2.10'
ext.kotlin_version = '1.2.30'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.android.tools.build:gradle:3.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Expand Down
6 changes: 3 additions & 3 deletions flashbar/src/main/java/com/andrognito/flashbar/FlashAnim.kt
Expand Up @@ -11,11 +11,11 @@ class FlashAnim {
fun with(context: Context) = FlashAnimBuilderRetriever(context)
}

enum class Type { ENTER, EXIT, }
enum class Type { ENTER, EXIT }

enum class Position { TOP, BOTTOM, }
enum class Position { TOP, BOTTOM }

enum class Alpha { IN, OUT, }
enum class Alpha { IN, OUT }
}

class FlashAnimBuilderRetriever(private val context: Context) {
Expand Down
Expand Up @@ -101,7 +101,7 @@ class FlashAnimIconBuilder(context: Context) : BaseFlashAnimBuilder(context) {

override fun build(): FlashAnim {
val flashAnim = FlashAnim()
val animationSet = AnimationSet(false)
val animationSet = AnimationSet(true)
animationSet.fillAfter = true
animationSet.duration = duration
animationSet.interpolator = interpolator
Expand Down Expand Up @@ -148,10 +148,9 @@ class FlashAnimBarBuilder(context: Context) : BaseFlashAnimBuilder(context) {
{ "You must specify the animation position" })

val flashAnim = FlashAnim()
val animationSet = AnimationSet(false)
val animationSet = AnimationSet(true)
animationSet.fillAfter = true
animationSet.duration = duration

animationSet.interpolator = interpolator

// Only if custom animation is not applied
Expand Down
13 changes: 13 additions & 0 deletions flashbar/src/main/java/com/andrognito/flashbar/Flashbar.kt
Expand Up @@ -101,6 +101,7 @@ class Flashbar private constructor(private var builder: Builder) {
setIconColorFilter(builder.iconColorFilter, builder.iconColorFilterMode)

setProgressPosition(builder.progressPosition)
setProgressTint(builder.progressTint, builder.progressTintMode, builder.progressPosition)
}
}

Expand Down Expand Up @@ -153,6 +154,8 @@ class Flashbar private constructor(private var builder: Builder) {
internal var iconColorFilter: Int? = null
internal var iconColorFilterMode: PorterDuff.Mode? = null
internal var iconAnimation: FlashAnim? = null
internal var progressTint: Int? = null
internal var progressTintMode: PorterDuff.Mode? = null

internal var enterAnimation: FlashAnim? = null
internal var exitAnimation: FlashAnim? = null
Expand Down Expand Up @@ -339,6 +342,16 @@ class Flashbar private constructor(private var builder: Builder) {
}
}

fun progressTint(@ColorInt color: Int, mode: PorterDuff.Mode? = null) = apply {
this.progressTint = color
this.progressTintMode = mode
}

fun progressTintRes(@ColorRes colorId: Int, mode: PorterDuff.Mode? = null) = apply {
this.progressTint = ContextCompat.getColor(activity, colorId)
this.progressTintMode = mode
}

fun build(): Flashbar {
configureDefaultAnim()

Expand Down
20 changes: 19 additions & 1 deletion flashbar/src/main/java/com/andrognito/flashbar/FlashbarView.kt
Expand Up @@ -125,7 +125,8 @@ internal class FlashbarView(context: Context) : LinearLayout(context) {
flashbarViewLp.addRule(ALIGN_PARENT_TOP)
}
BOTTOM -> {
flashbarViewContentLp.bottomMargin = BOTTOM_COMPENSATION_MARGIN.times(1.5f).toInt()
flashbarViewContentLp.bottomMargin = BOTTOM_COMPENSATION_MARGIN
.times(1.5f).toInt()
flashbarViewLp.addRule(ALIGN_PARENT_BOTTOM)
}
}
Expand Down Expand Up @@ -352,6 +353,23 @@ internal class FlashbarView(context: Context) : LinearLayout(context) {
}
}

internal fun setProgressTint(progressTint: Int?,
progressTintMode: PorterDuff.Mode?,
position: Flashbar.ProgressPosition?) {
if (position == null || progressTint == null) return

val progressBar = when (position) {
LEFT -> leftProgressView
RIGHT -> rightProgressView
}

if (progressTintMode == null) {
progressBar.indeterminateDrawable.setColorFilter(progressTint, PorterDuff.Mode.SRC_IN)
} else {
progressBar.indeterminateDrawable.setColorFilter(progressTint, progressTintMode)
}
}

private fun castShadow(shadowType: ShadowView.ShadowType, strength: Int) {
val params = RelativeLayout.LayoutParams(MATCH_PARENT, context.convertDpToPx(strength))
val shadow = ShadowView(context)
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Thu Dec 21 22:26:26 IST 2017
#Tue Mar 27 23:30:11 IST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

0 comments on commit a327b13

Please sign in to comment.