@@ -9,34 +9,28 @@ import androidx.compose.foundation.gestures.ScrollableState
99import androidx.compose.foundation.gestures.scrollable
1010import androidx.compose.foundation.layout.*
1111import androidx.compose.foundation.lazy.LazyColumn
12- import androidx.compose.foundation.shape.RoundedCornerShape
1312import androidx.compose.material.Button
1413import androidx.compose.material.ButtonDefaults
15- import androidx.compose.material.Icon
1614import androidx.compose.material.Text
1715import androidx.compose.material.icons.Icons
18- import androidx.compose.material.icons.filled.FavoriteBorder
19- import androidx.compose.material.icons.filled.Person
16+ import androidx.compose.material.icons.filled.*
2017import androidx.compose.runtime.*
2118import androidx.compose.ui.Alignment
2219import androidx.compose.ui.Modifier
2320import androidx.compose.ui.graphics.Color
2421import androidx.compose.ui.graphics.SolidColor
25- import androidx.compose.ui.graphics.graphicsLayer
2622import androidx.compose.ui.graphics.vector.rememberVectorPainter
2723import androidx.compose.ui.res.colorResource
2824import androidx.compose.ui.res.stringResource
25+ import androidx.compose.ui.text.font.FontFamily
2926import androidx.compose.ui.text.font.FontStyle
3027import androidx.compose.ui.tooling.preview.Preview
3128import androidx.compose.ui.unit.dp
3229import androidx.compose.ui.unit.sp
33- import com.simform.ssloadingbuttonandroid.ssbutton.SSLoadingButton.ssLoadingButton
3430import com.simform.ssloadingbuttonandroid.ssbutton.SSButtonState
3531import com.simform.ssloadingbuttonandroid.ssbutton.SSButtonType
32+ import com.simform.ssloadingbuttonandroid.ssbutton.SSLoadingButton.ssLoadingButton
3633import com.simform.ssloadingbuttonandroid.utils.*
37- import com.simform.ssloadingbuttonandroid.ssbutton.Animation.ssRepeatedColorAnimation
38- import com.simform.ssloadingbuttonandroid.ssbutton.Animation.ssRepeatedFloatAnimation
39-
4034
4135class MainActivity : ComponentActivity () {
4236 override fun onCreate (savedInstanceState : Bundle ? ) {
@@ -57,9 +51,8 @@ fun Greeting() {
5751 var spiralState: SSButtonState by remember { mutableStateOf(SSButtonState .IDLE ) }
5852 var ssTextButtonState: SSButtonState by remember { mutableStateOf(SSButtonState .IDLE ) }
5953 var textWithRightButton: SSButtonState by remember { mutableStateOf(SSButtonState .IDLE ) }
60- var textWithIconState: SSButtonState by remember {
61- mutableStateOf(SSButtonState .IDLE )
62- }
54+ var textWithIconState: SSButtonState by remember { mutableStateOf(SSButtonState .IDLE ) }
55+ var blinkingIcon: SSButtonState by remember { mutableStateOf(SSButtonState .IDLE ) }
6356 LazyColumn (
6457 modifier = Modifier
6558 .fillMaxWidth()
@@ -72,7 +65,12 @@ fun Greeting() {
7265 horizontalAlignment = Alignment .CenterHorizontally
7366 ) {
7467 item {
75- Row () {
68+ Row (
69+ Modifier
70+ .padding(zero.dp, zero.dp, zero.dp, fourty.dp)
71+ .fillMaxWidth(),
72+ horizontalArrangement = Arrangement .SpaceEvenly
73+ ) {
7674 Button (
7775 onClick = {
7876 roundedProgressState = SSButtonState .SUCCESS
@@ -84,9 +82,12 @@ fun Greeting() {
8482 ssTextButtonState = SSButtonState .SUCCESS
8583 textWithIconState = SSButtonState .SUCCESS
8684 textWithRightButton = SSButtonState .SUCCESS
85+ blinkingIcon = SSButtonState .SUCCESS
8786 },
88- modifier = Modifier .padding(six.dp),
89- elevation = ButtonDefaults .elevation()
87+ modifier = Modifier
88+ .padding(six.dp)
89+ .weight(oneFloat),
90+ elevation = ButtonDefaults .elevation(),
9091 ) {
9192 Text (text = stringResource(id = R .string.on_success))
9293 }
@@ -101,51 +102,27 @@ fun Greeting() {
101102 ssTextButtonState = SSButtonState .FAILIURE
102103 textWithIconState = SSButtonState .FAILIURE
103104 textWithRightButton = SSButtonState .FAILIURE
105+ blinkingIcon = SSButtonState .FAILIURE
104106 },
105- modifier = Modifier .padding(six.dp),
107+ modifier = Modifier
108+ .padding(six.dp)
109+ .weight(1f ),
106110 elevation = ButtonDefaults .elevation()
107111 ) {
108112 Text (text = stringResource(id = R .string.on_failure))
109113 }
110114 }
111115 }
112116 item {
113- Button (
114- onClick = {},
115- modifier = Modifier
116- .padding(10 .dp)
117- .fillMaxWidth(),
118- shape = RoundedCornerShape (fifty)
119- ) {
120- Icon (
121- Icons .Default .FavoriteBorder ,
122- contentDescription = null ,
123- modifier = Modifier
124- .graphicsLayer(
125- scaleX = ssRepeatedFloatAnimation(
126- oneFloat, oneHalfFloat,
127- thousand
128- ), scaleY = ssRepeatedFloatAnimation(
129- oneFloat, oneHalfFloat,
130- thousand
131- )
132- )
133- .padding(end = six.dp),
134- tint = ssRepeatedColorAnimation(Color .Red , Color .White , thousand)
135- )
136- }
137- // **********************************SSLoadingButton Start from here ******************************************//
138117 ssLoadingButton(
139- assetColor = Color .White ,
140- colors = ButtonDefaults .buttonColors(backgroundColor = Color .Red ),
118+ assetColor = Color .Red ,
119+ colors = ButtonDefaults .buttonColors(backgroundColor = Color .White ),
141120 buttonBorderStroke = BorderStroke (two.dp, SolidColor (Color .Red )),
142121 type = SSButtonType .ROUNDED_PROGRESS ,
143- onClick = {
144- roundedProgressState = SSButtonState .LOADING
145- },
146- buttonState = roundedProgressState,
122+ onClick = { roundedProgressState2 = SSButtonState .LOADING },
123+ buttonState = roundedProgressState2,
147124 width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
148- leftImagePainter = rememberVectorPainter(image = Icons .Default .Person )
125+ leftImagePainter = rememberVectorPainter(image = Icons .Default .Home )
149126 )
150127 ssLoadingButton(
151128 assetColor = colorResource(id = R .color.dark_green),
@@ -155,62 +132,62 @@ fun Greeting() {
155132 SolidColor (colorResource(id = R .color.dark_green))
156133 ),
157134 type = SSButtonType .WHEEL ,
158- onClick = {
159- wheelState = SSButtonState .LOADING
160- },
135+ onClick = { wheelState = SSButtonState .LOADING },
161136 buttonState = wheelState,
162137 width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
163- leftImagePainter = rememberVectorPainter(image = Icons .Default .Person )
138+ leftImagePainter = rememberVectorPainter(image = Icons .Default .Home )
164139 )
165140 ssLoadingButton(
166141 assetColor = Color .Blue ,
167142 colors = ButtonDefaults .buttonColors(backgroundColor = Color .White ),
168143 buttonBorderStroke = BorderStroke (two.dp, SolidColor (Color .Blue )),
169144 type = SSButtonType .ZOOM_IN_OUT_PROGRESS ,
170- onClick = {
171- zoomInOutState = SSButtonState .LOADING
172- },
145+ onClick = { zoomInOutState = SSButtonState .LOADING },
173146 buttonState = zoomInOutState,
174147 width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
175- leftImagePainter = rememberVectorPainter(image = Icons .Default .Person )
148+ leftImagePainter = rememberVectorPainter(image = Icons .Default .Home )
176149 )
177150 ssLoadingButton(
178151 Color .Red ,
179152 colors = ButtonDefaults .buttonColors(backgroundColor = Color .White ),
180153 buttonBorderStroke = BorderStroke (two.dp, SolidColor (Color .Red )),
181154 type = SSButtonType .CLOCK ,
182- onClick = {
183- clockState = SSButtonState .LOADING
184- },
155+ onClick = { clockState = SSButtonState .LOADING },
185156 buttonState = clockState,
186157 width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
187- leftImagePainter = rememberVectorPainter(image = Icons .Default .Person )
188- )
189-
190- ssLoadingButton(
191- assetColor = Color .Red ,
192- colors = ButtonDefaults .buttonColors(backgroundColor = Color .White ),
193- buttonBorderStroke = BorderStroke (two.dp, SolidColor (Color .Red )),
194- type = SSButtonType .ROUNDED_PROGRESS ,
195- onClick = {
196- roundedProgressState2 = SSButtonState .LOADING
197- },
198- buttonState = roundedProgressState2,
199- width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
200- leftImagePainter = rememberVectorPainter(image = Icons .Default .Person )
158+ leftImagePainter = rememberVectorPainter(image = Icons .Default .Home )
201159 )
202160 ssLoadingButton(
203161 assetColor = Color .Blue ,
204162 colors = ButtonDefaults .buttonColors(backgroundColor = Color .White ),
205163 buttonBorderStroke = BorderStroke (two.dp, SolidColor (Color .Blue )),
206164 type = SSButtonType .SPIRAL ,
207- onClick = {
208- spiralState = SSButtonState .LOADING
209- },
165+ onClick = { spiralState = SSButtonState .LOADING },
210166 buttonState = spiralState,
211167 width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
168+ leftImagePainter = rememberVectorPainter(image = Icons .Default .Home )
169+ )
170+ ssLoadingButton(
171+ assetColor = Color .White ,
172+ colors = ButtonDefaults .buttonColors(backgroundColor = Color .Red ),
173+ type = SSButtonType .ROUNDED_PROGRESS ,
174+ onClick = { roundedProgressState = SSButtonState .LOADING },
175+ buttonState = roundedProgressState,
176+ width = COMMON_WIDTH .dp, height = COMMON_HEIGHT .dp, padding = PaddingValues (six.dp),
212177 leftImagePainter = rememberVectorPainter(image = Icons .Default .Person )
213178 )
179+ ssLoadingButton(
180+ assetColor = Color .Yellow ,
181+ type = SSButtonType .CLOCK ,
182+ onClick = { blinkingIcon = SSButtonState .LOADING },
183+ buttonState = blinkingIcon,
184+ width = COMMON_WIDTH .dp,
185+ height = COMMON_HEIGHT .dp,
186+ blinkingIcon = true ,
187+ leftImagePainter = rememberVectorPainter(image = Icons .Default .FavoriteBorder ),
188+ padding = PaddingValues (six.dp),
189+ hourHandColor = Color .Red
190+ )
214191 ssLoadingButton(
215192 assetColor = Color .White ,
216193 colors = ButtonDefaults .buttonColors(backgroundColor = colorResource(id = R .color.yellow)),
@@ -219,44 +196,45 @@ fun Greeting() {
219196 SolidColor (colorResource(id = R .color.yellow))
220197 ),
221198 type = SSButtonType .ZOOM_IN_OUT_PROGRESS ,
222- onClick = {
223- ssTextButtonState = SSButtonState .LOADING
224- },
199+ onClick = { ssTextButtonState = SSButtonState .LOADING },
225200 buttonState = ssTextButtonState,
226201 width = COMMON_WIDTH .dp,
227202 height = COMMON_HEIGHT .dp,
228203 padding = PaddingValues (six.dp),
229204 text = stringResource(id = R .string.with_text),
230205 fontStyle = FontStyle .Italic ,
231206 fontSize = 16 .sp,
232- textModifier = Modifier .padding(six.dp)
207+ fontFamily = FontFamily .Monospace ,
208+ textModifier = Modifier .padding(six.dp),
233209 )
234210 ssLoadingButton(
235211 assetColor = Color .White ,
236212 type = SSButtonType .WHEEL ,
237- onClick = {
238- textWithIconState = SSButtonState .LOADING
239- },
213+ onClick = { textWithIconState = SSButtonState .LOADING },
240214 buttonState = textWithIconState,
241215 width = COMMON_WIDTH .dp,
242216 height = COMMON_HEIGHT .dp,
243- leftImagePainter = rememberVectorPainter(image = Icons .Default .Person ),
244- text = stringResource(id = R .string.left_icon)
217+ leftImagePainter = rememberVectorPainter(image = Icons .Default .Star ),
218+ text = stringResource(id = R .string.left_icon),
219+ fontFamily = FontFamily .SansSerif ,
220+ textModifier = Modifier .padding(six.dp),
221+ blinkingIcon = true ,
222+ padding = PaddingValues (six.dp)
245223 )
246-
247224 ssLoadingButton(
248225 assetColor = Color .White ,
249226 type = SSButtonType .SPIRAL ,
250227 onClick = { textWithRightButton = SSButtonState .LOADING },
251228 buttonState = textWithRightButton,
252229 width = COMMON_WIDTH .dp,
253230 height = COMMON_HEIGHT .dp,
254- rightImagePainter = rememberVectorPainter(image = Icons .Default .Person ),
231+ rightImagePainter = rememberVectorPainter(image = Icons .Default .Star ),
255232 text = stringResource(id = R .string.right_icon),
233+ fontFamily = FontFamily .Serif ,
234+ textModifier = Modifier .padding(six.dp),
256235 padding = PaddingValues (six.dp),
257236 colors = ButtonDefaults .buttonColors(backgroundColor = colorResource(id = R .color.teal_700))
258237 )
259-
260238 }
261239 }
262240}
0 commit comments