Skip to content

Commit 82d4cc4

Browse files
🐛 Fix custom tint applied to all the assets and provide separate tint color options
1 parent a4e1e83 commit 82d4cc4

File tree

8 files changed

+123
-65
lines changed

8 files changed

+123
-65
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Please get **Android Studio Arctic Fox 2020.3.1** or above [from here](https://d
9797
failureIconPainter = painterResource(id = R.drawable.custom_fail),
9898
colors = ButtonDefaults.buttonColors(backgroundColor = Color.White),
9999
padding = PaddingValues(six.dp),
100-
text = stringResource(id = R.string.simform),
100+
text = stringResource(id = R.string.app_name),
101101
textModifier = Modifier.padding(ten.dp),
102102
fontWeight = FontWeight.Bold,
103103
leftImagePainter = painterResource(id = R.drawable.simform_logo),

app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/MainActivity.kt

Lines changed: 46 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,13 @@ import androidx.compose.ui.text.font.FontWeight
4646
import androidx.compose.ui.tooling.preview.Preview
4747
import androidx.compose.ui.unit.dp
4848
import androidx.core.content.ContextCompat
49-
import com.simform.ssjetpackcomposeprogressbutton.utils.DARK_GREEN
5049
import com.simform.ssjetpackcomposeprogressbutton.utils.Dimensions
5150
import com.simform.ssjetpackcomposeprogressbutton.utils.Dimensions.SPACING_LARGE
5251
import com.simform.ssjetpackcomposeprogressbutton.utils.Dimensions.SPACING_MEDIUM
5352
import com.simform.ssjetpackcomposeprogressbutton.utils.Dimensions.SPACING_NORMAL
5453
import com.simform.ssjetpackcomposeprogressbutton.utils.Dimensions.SPACING_SMALL
5554
import com.simform.ssjetpackcomposeprogressbutton.utils.LIGHT_BLUE
5655
import com.simform.ssjetpackcomposeprogressbutton.utils.LIGHT_PINK
57-
import com.simform.ssjetpackcomposeprogressbutton.utils.PRIMARY_DARK
5856
import com.simform.ssjetpackcomposeprogressbuttonlibrary.SSButtonState
5957
import com.simform.ssjetpackcomposeprogressbuttonlibrary.SSButtonType
6058
import com.simform.ssjetpackcomposeprogressbuttonlibrary.SSCustomLoadingEffect
@@ -70,7 +68,7 @@ class MainActivity : ComponentActivity() {
7068
}
7169

7270
companion object {
73-
const val LOADING_GIF_URL = "https://media.tenor.com/CrhrU7ebGucAAAAi/unless-you-include-this.gif"
71+
const val LOADING_GIF_URL = "https://icons8.com/preloaders/preloaders/810/Rainbow-128.gif"
7472
}
7573
}
7674

@@ -194,7 +192,10 @@ fun SSLoadingButtonExample() {
194192
padding = PaddingValues(SPACING_NORMAL),
195193
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
196194
leftImagePainter = rememberVectorPainter(image = Icons.Default.Home),
195+
leftImageTintColor = LIGHT_PINK,
197196
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
197+
failureIconTintColor = LIGHT_PINK,
198+
successIconTintColor = LIGHT_PINK,
198199
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
199200
)
200201
SSJetPackComposeProgressButton(
@@ -213,7 +214,10 @@ fun SSLoadingButtonExample() {
213214
height = Dimensions.COMMON_HEIGHT,
214215
padding = PaddingValues(SPACING_NORMAL),
215216
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
217+
failureIconTintColor = LIGHT_PINK,
218+
successIconTintColor = LIGHT_PINK,
216219
leftImagePainter = rememberVectorPainter(image = Icons.Default.Home),
220+
leftImageTintColor = LIGHT_PINK,
217221
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
218222
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
219223
)
@@ -233,7 +237,10 @@ fun SSLoadingButtonExample() {
233237
height = Dimensions.COMMON_HEIGHT,
234238
padding = PaddingValues(SPACING_NORMAL),
235239
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
240+
failureIconTintColor = LIGHT_PINK,
241+
successIconTintColor = LIGHT_PINK,
236242
leftImagePainter = rememberVectorPainter(image = Icons.Default.Home),
243+
leftImageTintColor = LIGHT_PINK,
237244
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
238245
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
239246
)
@@ -253,7 +260,10 @@ fun SSLoadingButtonExample() {
253260
height = Dimensions.COMMON_HEIGHT,
254261
padding = PaddingValues(SPACING_NORMAL),
255262
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
263+
failureIconTintColor = LIGHT_PINK,
264+
successIconTintColor = LIGHT_PINK,
256265
leftImagePainter = rememberVectorPainter(image = Icons.Default.Home),
266+
leftImageTintColor = LIGHT_PINK,
257267
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
258268
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
259269
)
@@ -274,6 +284,9 @@ fun SSLoadingButtonExample() {
274284
padding = PaddingValues(SPACING_NORMAL),
275285
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
276286
leftImagePainter = rememberVectorPainter(image = Icons.Default.Home),
287+
leftImageTintColor = LIGHT_PINK,
288+
failureIconTintColor = LIGHT_PINK,
289+
successIconTintColor = LIGHT_PINK,
277290
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
278291
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
279292
)
@@ -291,6 +304,9 @@ fun SSLoadingButtonExample() {
291304
padding = PaddingValues(SPACING_NORMAL),
292305
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
293306
leftImagePainter = rememberVectorPainter(image = Icons.Default.Person),
307+
leftImageTintColor = Color.White,
308+
failureIconTintColor = Color.White,
309+
successIconTintColor = Color.White,
294310
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
295311
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
296312
)
@@ -301,14 +317,18 @@ fun SSLoadingButtonExample() {
301317
buttonState = blinkingIcon,
302318
width = Dimensions.COMMON_WIDTH,
303319
height = Dimensions.COMMON_HEIGHT,
304-
blinkingIcon = true,
320+
isBlinkingIcon = true,
321+
blinkingIconColor = Color.Yellow,
305322
leftImagePainter = rememberVectorPainter(image = Icons.Default.FavoriteBorder),
323+
leftImageTintColor = Color.White,
306324
padding = PaddingValues(SPACING_NORMAL),
307325
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
308326
colors = ButtonDefaults.buttonColors(
309327
containerColor = LIGHT_PINK,
310328
disabledContainerColor = LIGHT_PINK
311329
),
330+
failureIconTintColor = Color.White,
331+
successIconTintColor = Color.White,
312332
hourHandColor = Color.White,
313333
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
314334
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
@@ -332,6 +352,8 @@ fun SSLoadingButtonExample() {
332352
fontFamily = FontFamily.Monospace,
333353
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
334354
textModifier = Modifier.padding(12.dp),
355+
failureIconTintColor = Color.White,
356+
successIconTintColor = Color.White,
335357
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
336358
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
337359
)
@@ -343,18 +365,22 @@ fun SSLoadingButtonExample() {
343365
width = Dimensions.COMMON_WIDTH,
344366
height = Dimensions.COMMON_HEIGHT,
345367
leftImagePainter = rememberVectorPainter(image = Icons.Default.Star),
368+
leftImageTintColor = Color.White,
369+
blinkingIconColor = Color.White,
346370
text = stringResource(id = R.string.left_icon),
347371
fontFamily = FontFamily.SansSerif,
348372
textModifier = Modifier.padding(SPACING_NORMAL),
349373
fontSize = Dimensions.MEDIUM_FONT_SIZE,
350374
fontWeight = FontWeight.Bold,
351-
blinkingIcon = true,
375+
isBlinkingIcon = true,
352376
padding = PaddingValues(SPACING_NORMAL),
353377
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
354378
colors = ButtonDefaults.buttonColors(
355379
containerColor = LIGHT_PINK,
356380
disabledContainerColor = LIGHT_PINK
357381
),
382+
failureIconTintColor = Color.White,
383+
successIconTintColor = Color.White,
358384
successIconPainter = rememberVectorPainter(image = Icons.Default.Done),
359385
failureIconPainter = rememberVectorPainter(image = Icons.Outlined.Info)
360386
)
@@ -366,12 +392,15 @@ fun SSLoadingButtonExample() {
366392
width = Dimensions.COMMON_WIDTH,
367393
height = Dimensions.COMMON_HEIGHT,
368394
rightImagePainter = rememberVectorPainter(image = Icons.Default.Star),
395+
rightImageTintColor = Color.White,
369396
text = stringResource(id = R.string.right_icon),
370397
fontFamily = FontFamily.Serif,
371398
textModifier = Modifier.padding(SPACING_NORMAL),
372399
fontSize = Dimensions.MEDIUM_FONT_SIZE,
373400
fontWeight = FontWeight.Bold,
374401
padding = PaddingValues(SPACING_NORMAL),
402+
failureIconTintColor = Color.White,
403+
successIconTintColor = Color.White,
375404
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
376405
colors = ButtonDefaults.buttonColors(
377406
containerColor = LIGHT_PINK,
@@ -393,19 +422,20 @@ fun SSLoadingButtonExample() {
393422
customLoadingEffect = SSCustomLoadingEffect(
394423
rotation = true,
395424
zoomInOut = false,
396-
colorChanger = false
425+
fadeInOut = false
397426
),
398427
colors = ButtonDefaults.buttonColors(
399428
containerColor = Color.White,
400429
disabledContainerColor = Color.White
401430
),
402431
padding = PaddingValues(SPACING_NORMAL),
403432
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
404-
text = stringResource(id = R.string.simform),
433+
text = stringResource(id = R.string.lbl_rotation_animation),
405434
textModifier = Modifier.padding(SPACING_SMALL),
435+
customLoadingIconPainter = painterResource(id = R.drawable.baby_pink_android),
406436
fontWeight = FontWeight.Bold,
407437
fontSize = Dimensions.MEDIUM_FONT_SIZE,
408-
leftImagePainter = painterResource(id = R.drawable.simform_logo),
438+
leftImagePainter = painterResource(id = R.drawable.baby_pink_android),
409439
buttonBorderWidth = Dimensions.COMMON_BORDER_WIDTH,
410440
animatedButtonBorderColor = LIGHT_PINK,
411441
buttonBorderColor = LIGHT_PINK
@@ -422,19 +452,20 @@ fun SSLoadingButtonExample() {
422452
customLoadingEffect = SSCustomLoadingEffect(
423453
rotation = false,
424454
zoomInOut = true,
425-
colorChanger = false
455+
fadeInOut = false
426456
),
427457
colors = ButtonDefaults.buttonColors(
428458
containerColor = Color.White,
429459
disabledContainerColor = Color.White
430460
),
431461
padding = PaddingValues(SPACING_NORMAL),
432462
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
433-
text = stringResource(id = R.string.simform),
463+
text = stringResource(id = R.string.lbl_zoom_in_out_animation),
434464
textModifier = Modifier.padding(SPACING_SMALL),
435465
fontWeight = FontWeight.Bold,
436466
fontSize = Dimensions.MEDIUM_FONT_SIZE,
437-
leftImagePainter = painterResource(id = R.drawable.simform_logo),
467+
customLoadingIconPainter = painterResource(id = R.drawable.baby_pink_android),
468+
leftImagePainter = painterResource(id = R.drawable.baby_pink_android),
438469
buttonBorderWidth = Dimensions.COMMON_BORDER_WIDTH,
439470
animatedButtonBorderColor = LIGHT_PINK,
440471
buttonBorderColor = LIGHT_PINK
@@ -451,20 +482,19 @@ fun SSLoadingButtonExample() {
451482
customLoadingEffect = SSCustomLoadingEffect(
452483
rotation = false,
453484
zoomInOut = false,
454-
colorChanger = true
485+
fadeInOut = true
455486
),
456487
colors = ButtonDefaults.buttonColors(
457488
containerColor = Color.White,
458489
disabledContainerColor = Color.White
459490
),
460491
padding = PaddingValues(SPACING_SMALL),
461492
cornerRadius = Dimensions.COMMON_CORNER_RADIUS,
462-
text = stringResource(id = R.string.simform),
493+
text = stringResource(id = R.string.lbl_fade_in_out_animation),
463494
textModifier = Modifier.padding(SPACING_SMALL),
495+
customLoadingIconPainter = painterResource(id = R.drawable.baby_pink_android),
464496
fontWeight = FontWeight.Bold,
465497
fontSize = Dimensions.MEDIUM_FONT_SIZE,
466-
successIconColor = DARK_GREEN,
467-
failureIconColor = PRIMARY_DARK,
468498
buttonBorderWidth = Dimensions.COMMON_BORDER_WIDTH,
469499
animatedButtonBorderColor = LIGHT_PINK,
470500
buttonBorderColor = LIGHT_PINK
@@ -494,7 +524,7 @@ fun SSLoadingButtonExample() {
494524
data = MainActivity.LOADING_GIF_URL,
495525
drawable = ContextCompat.getDrawable(
496526
LocalContext.current,
497-
R.drawable.simform_logo
527+
R.drawable.baby_pink_android
498528
)
499529
)
500530
)
52.7 KB
Loading
-26.2 KB
Binary file not shown.

app/src/main/res/values/strings.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
<string name="stylish_text">Stylish Text</string>
66
<string name="on_success">On Success</string>
77
<string name="on_failure">On Failure</string>
8-
<string name="simform">SIMFORM</string>
8+
<string name="lbl_rotation_animation">Rotation Animation</string>
9+
<string name="lbl_zoom_in_out_animation">Zoom In Out Animation</string>
10+
<string name="lbl_fade_in_out_animation">Fade In Out Animation</string>
911
<string name="gif_loader">Gif Loader</string>
1012

1113
</resources>

ssjetpackcomposeprogressbutton/src/main/java/com/simform/ssjetpackcomposeprogressbuttonlibrary/CustomClass.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ package com.simform.ssjetpackcomposeprogressbuttonlibrary
33
data class SSCustomLoadingEffect (
44
var rotation: Boolean = false,
55
var zoomInOut: Boolean = false,
6-
var colorChanger: Boolean = false,
6+
var fadeInOut: Boolean = false,
77
var gif: Boolean = false
88
)

ssjetpackcomposeprogressbutton/src/main/java/com/simform/ssjetpackcomposeprogressbuttonlibrary/PrintLoadingBar.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@ import androidx.compose.material3.CircularProgressIndicator
77
import androidx.compose.material3.Icon
88
import androidx.compose.runtime.Composable
99
import androidx.compose.ui.Modifier
10+
import androidx.compose.ui.draw.alpha
1011
import androidx.compose.ui.draw.clip
1112
import androidx.compose.ui.draw.rotate
1213
import androidx.compose.ui.graphics.Color
13-
import androidx.compose.ui.graphics.ColorFilter
1414
import androidx.compose.ui.graphics.graphicsLayer
1515
import androidx.compose.ui.graphics.painter.Painter
1616
import androidx.compose.ui.res.painterResource
1717
import androidx.compose.ui.unit.Dp
1818
import androidx.compose.ui.unit.dp
1919
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.ANIMATION_INITIAL_ZERO
20+
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.DISABLE_VIEW_ALPHA
2021
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.Dimens.BORDER_MEDIUM
2122
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.Dimens.BORDER_SMALL
2223
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.Dimens.SPACING_SMALL
24+
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.ENABLE_VIEW_ALPHA
2325
import com.simform.ssjetpackcomposeprogressbuttonlibrary.utils.ROTATE_THREE_SIXTY_DEGREE
2426

2527
@Composable
@@ -103,12 +105,8 @@ fun PrintLoadingBar(
103105
)
104106
}
105107
SSButtonType.CUSTOM -> {
106-
val customColor = ssRepeatedColorAnimation(
107-
assetColor, if (customLoadingEffect.colorChanger) {
108-
Color.White
109-
} else {
110-
assetColor
111-
}, durationMillis
108+
val customAlpha = ssRepeatedFloatAnimation(
109+
ENABLE_VIEW_ALPHA, DISABLE_VIEW_ALPHA, durationMillis
112110
)
113111
val customRotation = ssRepeatedFloatAnimation(
114112
initialValue = if (customLoadingEffect.rotation) {
@@ -137,8 +135,8 @@ fun PrintLoadingBar(
137135
.size(customSize)
138136
.graphicsLayer { alpha = progressAlpha }
139137
.rotate(customRotation)
140-
.clip(CircleShape),
141-
colorFilter = if (customLoadingEffect.gif) null else ColorFilter.tint(customColor)
138+
.clip(CircleShape)
139+
.alpha(if (customLoadingEffect.fadeInOut) customAlpha else ENABLE_VIEW_ALPHA),
142140
)
143141
}
144142
}

0 commit comments

Comments
 (0)