Skip to content

Commit 7ffa571

Browse files
committed
[BottomAppBar] change cornersize to float to avoid truncation errors
PiperOrigin-RevId: 367430538 (cherry picked from commit 8e9b680)
1 parent 0ad4a8d commit 7ffa571

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

lib/java/com/google/android/material/bottomappbar/BottomAppBar.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ boolean setFabDiameter(@Px int diameter) {
551551
return false;
552552
}
553553

554-
void setFabCornerSize(@Px int radius) {
554+
void setFabCornerSize(@Dimension float radius) {
555555
if (radius != getTopEdgeTreatment().getFabCornerRadius()) {
556556
getTopEdgeTreatment().setFabCornerSize(radius);
557557
materialShapeDrawable.invalidateSelf();
@@ -1036,7 +1036,7 @@ public void onLayoutChange(
10361036
child.setFabDiameter(height);
10371037

10381038
// Assume symmetrical corners
1039-
int cornerSize = (int) fab.getShapeAppearanceModel().getTopLeftCornerSize()
1039+
float cornerSize = fab.getShapeAppearanceModel().getTopLeftCornerSize()
10401040
.getCornerSize(new RectF(fabContentRect));
10411041

10421042
child.setFabCornerSize(cornerSize);

lib/java/com/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class BottomAppBarTopEdgeTreatment extends EdgeTreatment implements Clone
5050
private float fabDiameter;
5151
private float cradleVerticalOffset;
5252
private float horizontalOffset;
53-
private int fabCornerSize = -1;
53+
private float fabCornerSize = -1f;
5454

5555
/**
5656
* @param fabMargin the margin in pixels between the cutout and the fab.
@@ -101,7 +101,7 @@ public void getEdgePath(
101101
// Calculate the X distance between the center of the two adjacent circles using pythagorean
102102
// theorem.
103103
float cornerSize = fabCornerSize * interpolation;
104-
boolean useCircleCutout = fabCornerSize == -1 || abs(fabCornerSize * 2 - fabDiameter) < .1f;
104+
boolean useCircleCutout = fabCornerSize == -1 || abs(fabCornerSize * 2f - fabDiameter) < .1f;
105105
float arcOffset = 0;
106106
if (!useCircleCutout) {
107107
verticalOffset = 0;
@@ -251,11 +251,11 @@ void setFabCradleRoundedCornerRadius(float roundedCornerRadius) {
251251
this.roundedCornerRadius = roundedCornerRadius;
252252
}
253253

254-
public int getFabCornerRadius() {
254+
public float getFabCornerRadius() {
255255
return fabCornerSize;
256256
}
257257

258-
public void setFabCornerSize(int size) {
258+
public void setFabCornerSize(float size) {
259259
this.fabCornerSize = size;
260260
}
261261
}

0 commit comments

Comments
 (0)