Skip to content

Commit 166e388

Browse files
committed
Restored Shimmer Tokens
1 parent 4c36c89 commit 166e388

File tree

3 files changed

+37
-6
lines changed
  • FluentUI.Demo/src/main/java/com/microsoft/fluentuidemo/demos
  • fluentui_core/src/main/java/com/microsoft/fluentui/theme/token/controlTokens
  • fluentui_progress/src/main/java/com/microsoft/fluentui/tokenized/shimmer

3 files changed

+37
-6
lines changed

FluentUI.Demo/src/main/java/com/microsoft/fluentuidemo/demos/V2ShimmerActivity.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,17 @@ class V2ShimmerActivity : V2DemoActivity() {
8585
private fun CreateShimmerActivityUI() {
8686
var shimmerOrientation by rememberSaveable { mutableStateOf(0) }
8787
var isShimmering by rememberSaveable { mutableStateOf(true) }
88-
val shimmerTokens = ShimmerTokens()
88+
val shimmerTokens = object: ShimmerTokens(){
89+
@Composable
90+
override fun delay(shimmerInfo: ShimmerInfo): Int {
91+
return 1000
92+
}
93+
94+
@Composable
95+
override fun orientation(shimmerInfo: ShimmerInfo): ShimmerOrientation {
96+
return getShimmerOrientation(shimmerOrientation)
97+
}
98+
}
8999
Column(
90100
Modifier
91101
.padding(all = 12.dp)

fluentui_core/src/main/java/com/microsoft/fluentui/theme/token/controlTokens/ShimmerTokens.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ enum class ShimmerOrientation {
1515
LEFT_TO_RIGHT,
1616
RIGHT_TO_LEFT,
1717
TOPLEFT_TO_BOTTOMRIGHT,
18-
BOTTOMRIGHT_TO_TOPLEFT
18+
BOTTOMRIGHT_TO_TOPLEFT,
19+
_NONE //DO NOT USE
1920
}
2021

2122
@Parcelize
@@ -33,4 +34,14 @@ open class ShimmerTokens : IControlToken, Parcelable {
3334
themeMode = FluentTheme.themeMode
3435
)
3536
}
37+
38+
@Composable
39+
open fun delay(shimmerInfo: ShimmerInfo): Int {
40+
return -1
41+
}
42+
43+
@Composable
44+
open fun orientation(shimmerInfo: ShimmerInfo): ShimmerOrientation {
45+
return ShimmerOrientation._NONE //Do not return ShimmerOrientation._NONE if you are overriding this method, it will default to ShimmerOrientation.TOPLEFT_TO_BOTTOMRIGHT in that case
46+
}
3647
}

fluentui_progress/src/main/java/com/microsoft/fluentui/tokenized/shimmer/Shimmer.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ internal fun InternalShimmer(
101101
val diagonal =
102102
sqrt((screenHeight * screenHeight + screenWidth * screenWidth).toDouble()).toFloat()
103103
val shimmerInfo = ShimmerInfo()
104+
val shimmerDelayValue = if(tokens.delay(shimmerInfo) != -1){
105+
tokens.delay(shimmerInfo)
106+
} else {
107+
shimmerDelay
108+
}
109+
val orientation: ShimmerOrientation = if(tokens.orientation(shimmerInfo) != ShimmerOrientation._NONE){
110+
tokens.orientation(shimmerInfo)
111+
} else {
112+
shimmerOrientation
113+
}
104114
val shimmerBackgroundColor = if (content != null) {
105115
Color.Transparent
106116
} else {
@@ -110,7 +120,7 @@ internal fun InternalShimmer(
110120
val cornerRadius =
111121
dpToPx(cornerRadius)
112122
val infiniteTransition = rememberInfiniteTransition()
113-
val isLtr = if (shimmerOrientation in listOf(
123+
val isLtr = if (orientation in listOf(
114124
ShimmerOrientation.LEFT_TO_RIGHT,
115125
ShimmerOrientation.TOPLEFT_TO_BOTTOMRIGHT
116126
)
@@ -124,7 +134,7 @@ internal fun InternalShimmer(
124134
targetValue,
125135
infiniteRepeatable(
126136
animation = tween(
127-
durationMillis = shimmerDelay,
137+
durationMillis = shimmerDelayValue,
128138
easing = LinearEasing
129139
),
130140
repeatMode = RepeatMode.Restart
@@ -135,15 +145,15 @@ internal fun InternalShimmer(
135145
remember { mutableFloatStateOf(0f) }
136146
}
137147

138-
val startOffset: Offset = when (shimmerOrientation) {
148+
val startOffset: Offset = when (orientation) {
139149
ShimmerOrientation.LEFT_TO_RIGHT -> Offset.Zero
140150
ShimmerOrientation.RIGHT_TO_LEFT -> Offset.Zero
141151
ShimmerOrientation.TOPLEFT_TO_BOTTOMRIGHT -> Offset.Zero
142152
ShimmerOrientation.BOTTOMRIGHT_TO_TOPLEFT -> Offset.Zero
143153
else -> Offset.Zero
144154
}
145155
val endOffset: Offset = if (isShimmering) {
146-
when (shimmerOrientation) {
156+
when (orientation) {
147157
ShimmerOrientation.LEFT_TO_RIGHT -> Offset(shimmerEffect.absoluteValue, 0F)
148158
ShimmerOrientation.RIGHT_TO_LEFT -> Offset(shimmerEffect.absoluteValue, 0F)
149159
ShimmerOrientation.TOPLEFT_TO_BOTTOMRIGHT -> Offset(shimmerEffect.absoluteValue, shimmerEffect.absoluteValue)

0 commit comments

Comments
 (0)