[go: nahoru, domu]

blob: 856b665f8f6dc28ddbf92d81533720673d0213b6 [file] [log] [blame]
/*
* Copyright 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package androidx.compose.material.studies.rally
import androidx.compose.Composable
import androidx.ui.core.Modifier
import androidx.ui.core.paint
import androidx.compose.foundation.Box
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.vector.VectorAsset
import androidx.compose.ui.graphics.vector.VectorPainter
import androidx.compose.foundation.layout.preferredSize
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.materialIcon
import androidx.compose.material.icons.materialPath
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
/**
* 24x24dp icon from a resource id.
*
* TODO: b/150460257 remove this when androidx.compose.foundation.Icon supports minimum sizes
*/
@Composable
fun Icon(
vectorImage: VectorAsset,
tintColor: Color = Color.White,
modifier: Modifier = Modifier,
size: Dp = 24.dp
) {
Box(
Modifier.preferredSize(size)
.then(modifier)
.paint(
VectorPainter(vectorImage), colorFilter = ColorFilter.tint(tintColor)
)
)
}
/**
* Icons below are copied from [Icons.Filled] in material-icons-extended to avoid recompiling the
* module in demos. In the future when we release a stable artifact we could directly depend on
* that, instead of a project dependency which causes recompilation.
*
* If the generated icons change, just build material-icons-extended and copy the generated
* file, which should appear in Studio sources by searching for the name of that icon.
*/
val Icons.Filled.Sort: VectorAsset by lazy {
materialIcon {
materialPath {
moveTo(3.0f, 18.0f)
horizontalLineToRelative(6.0f)
verticalLineToRelative(-2.0f)
lineTo(3.0f, 16.0f)
verticalLineToRelative(2.0f)
close()
moveTo(3.0f, 6.0f)
verticalLineToRelative(2.0f)
horizontalLineToRelative(18.0f)
lineTo(21.0f, 6.0f)
lineTo(3.0f, 6.0f)
close()
moveTo(3.0f, 13.0f)
horizontalLineToRelative(12.0f)
verticalLineToRelative(-2.0f)
lineTo(3.0f, 11.0f)
verticalLineToRelative(2.0f)
close()
}
}
}
val Icons.Filled.ArrowForwardIos: VectorAsset by lazy {
materialIcon {
materialPath {
moveTo(5.88f, 4.12f)
lineTo(13.76f, 12.0f)
lineToRelative(-7.88f, 7.88f)
lineTo(8.0f, 22.0f)
lineToRelative(10.0f, -10.0f)
lineTo(8.0f, 2.0f)
close()
}
}
}
val Icons.Filled.AttachMoney: VectorAsset by lazy {
materialIcon {
materialPath {
moveTo(11.8f, 10.9f)
curveToRelative(-2.27f, -0.59f, -3.0f, -1.2f, -3.0f, -2.15f)
curveToRelative(0.0f, -1.09f, 1.01f, -1.85f, 2.7f, -1.85f)
curveToRelative(1.78f, 0.0f, 2.44f, 0.85f, 2.5f, 2.1f)
horizontalLineToRelative(2.21f)
curveToRelative(-0.07f, -1.72f, -1.12f, -3.3f, -3.21f, -3.81f)
verticalLineTo(3.0f)
horizontalLineToRelative(-3.0f)
verticalLineToRelative(2.16f)
curveToRelative(-1.94f, 0.42f, -3.5f, 1.68f, -3.5f, 3.61f)
curveToRelative(0.0f, 2.31f, 1.91f, 3.46f, 4.7f, 4.13f)
curveToRelative(2.5f, 0.6f, 3.0f, 1.48f, 3.0f, 2.41f)
curveToRelative(0.0f, 0.69f, -0.49f, 1.79f, -2.7f, 1.79f)
curveToRelative(-2.06f, 0.0f, -2.87f, -0.92f, -2.98f, -2.1f)
horizontalLineToRelative(-2.2f)
curveToRelative(0.12f, 2.19f, 1.76f, 3.42f, 3.68f, 3.83f)
verticalLineTo(21.0f)
horizontalLineToRelative(3.0f)
verticalLineToRelative(-2.15f)
curveToRelative(1.95f, -0.37f, 3.5f, -1.5f, 3.5f, -3.55f)
curveToRelative(0.0f, -2.84f, -2.43f, -3.81f, -4.7f, -4.4f)
close()
}
}
}
val Icons.Filled.MoneyOff: VectorAsset by lazy {
materialIcon {
materialPath {
moveTo(12.5f, 6.9f)
curveToRelative(1.78f, 0.0f, 2.44f, 0.85f, 2.5f, 2.1f)
horizontalLineToRelative(2.21f)
curveToRelative(-0.07f, -1.72f, -1.12f, -3.3f, -3.21f, -3.81f)
verticalLineTo(3.0f)
horizontalLineToRelative(-3.0f)
verticalLineToRelative(2.16f)
curveToRelative(-0.53f, 0.12f, -1.03f, 0.3f, -1.48f, 0.54f)
lineToRelative(1.47f, 1.47f)
curveToRelative(0.41f, -0.17f, 0.91f, -0.27f, 1.51f, -0.27f)
close()
moveTo(5.33f, 4.06f)
lineTo(4.06f, 5.33f)
lineTo(7.5f, 8.77f)
curveToRelative(0.0f, 2.08f, 1.56f, 3.21f, 3.91f, 3.91f)
lineToRelative(3.51f, 3.51f)
curveToRelative(-0.34f, 0.48f, -1.05f, 0.91f, -2.42f, 0.91f)
curveToRelative(-2.06f, 0.0f, -2.87f, -0.92f, -2.98f, -2.1f)
horizontalLineToRelative(-2.2f)
curveToRelative(0.12f, 2.19f, 1.76f, 3.42f, 3.68f, 3.83f)
verticalLineTo(21.0f)
horizontalLineToRelative(3.0f)
verticalLineToRelative(-2.15f)
curveToRelative(0.96f, -0.18f, 1.82f, -0.55f, 2.45f, -1.12f)
lineToRelative(2.22f, 2.22f)
lineToRelative(1.27f, -1.27f)
lineTo(5.33f, 4.06f)
close()
}
}
}
val Icons.Filled.PieChart: VectorAsset by lazy {
materialIcon {
materialPath {
moveTo(11.0f, 2.0f)
verticalLineToRelative(20.0f)
curveToRelative(-5.07f, -0.5f, -9.0f, -4.79f, -9.0f, -10.0f)
reflectiveCurveToRelative(3.93f, -9.5f, 9.0f, -10.0f)
close()
moveTo(13.03f, 2.0f)
verticalLineToRelative(8.99f)
lineTo(22.0f, 10.99f)
curveToRelative(-0.47f, -4.74f, -4.24f, -8.52f, -8.97f, -8.99f)
close()
moveTo(13.03f, 13.01f)
lineTo(13.03f, 22.0f)
curveToRelative(4.74f, -0.47f, 8.5f, -4.25f, 8.97f, -8.99f)
horizontalLineToRelative(-8.97f)
close()
}
}
}