Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 476cd59

Browse files
authored
Merge pull request #787 from android/stamato/downloadable-fonts-compose
[JetChat] Adding Downloadable Fonts implementation
2 parents f321436 + 7e44d87 commit 476cd59

File tree

4 files changed

+66
-8
lines changed

4 files changed

+66
-8
lines changed

Jetchat/app/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ dependencies {
112112
implementation Libs.AndroidX.Compose.runtime
113113
implementation Libs.AndroidX.Compose.runtimeLivedata
114114
implementation Libs.AndroidX.Compose.viewBinding
115+
implementation Libs.AndroidX.Compose.uiText
115116
debugImplementation Libs.AndroidX.Compose.tooling
116117

117118
debugImplementation Libs.AndroidX.Compose.uiTestManifest

Jetchat/app/src/main/java/com/example/compose/jetchat/theme/Typography.kt

+32-8
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,47 @@
1717
package com.example.compose.jetchat.theme
1818

1919
import androidx.compose.material3.Typography
20+
import androidx.compose.ui.text.ExperimentalTextApi
2021
import androidx.compose.ui.text.TextStyle
2122
import androidx.compose.ui.text.font.Font
2223
import androidx.compose.ui.text.font.FontFamily
2324
import androidx.compose.ui.text.font.FontWeight
25+
import androidx.compose.ui.text.googlefonts.Font
26+
import androidx.compose.ui.text.googlefonts.GoogleFont
2427
import androidx.compose.ui.unit.sp
2528
import com.example.compose.jetchat.R
2629

27-
private val MontserratFontFamily = FontFamily(
28-
Font(R.font.montserrat_regular),
29-
Font(R.font.montserrat_light, FontWeight.Light),
30-
Font(R.font.montserrat_medium, FontWeight.Medium),
31-
Font(R.font.montserrat_semibold, FontWeight.SemiBold)
30+
@OptIn(ExperimentalTextApi::class)
31+
val provider = GoogleFont.Provider(
32+
providerAuthority = "com.google.android.gms.fonts",
33+
providerPackage = "com.google.android.gms",
34+
certificates = R.array.com_google_android_gms_fonts_certs
3235
)
3336

34-
private val KarlaFontFamily = FontFamily(
35-
Font(R.font.karla_regular),
36-
Font(R.font.karla_bold, FontWeight.Bold)
37+
@OptIn(ExperimentalTextApi::class)
38+
val MontserratFont = GoogleFont(name = "Montserrat")
39+
40+
@OptIn(ExperimentalTextApi::class)
41+
val KarlaFont = GoogleFont(name = "Karla")
42+
43+
@OptIn(ExperimentalTextApi::class)
44+
val MontserratFontFamily = FontFamily(
45+
Font(googleFont = MontserratFont, fontProvider = provider),
46+
Font(resId = R.font.montserrat_regular),
47+
Font(googleFont = MontserratFont, fontProvider = provider, weight = FontWeight.Light),
48+
Font(resId = R.font.montserrat_light, weight = FontWeight.Light),
49+
Font(googleFont = MontserratFont, fontProvider = provider, weight = FontWeight.Medium),
50+
Font(resId = R.font.montserrat_medium, weight = FontWeight.Medium),
51+
Font(googleFont = MontserratFont, fontProvider = provider, weight = FontWeight.SemiBold),
52+
Font(resId = R.font.montserrat_semibold, weight = FontWeight.SemiBold),
53+
)
54+
55+
@OptIn(ExperimentalTextApi::class)
56+
val KarlaFontFamily = FontFamily(
57+
Font(googleFont = KarlaFont, fontProvider = provider),
58+
Font(resId = R.font.karla_regular),
59+
Font(googleFont = KarlaFont, fontProvider = provider, weight = FontWeight.Bold),
60+
Font(resId = R.font.karla_bold, weight = FontWeight.Bold),
3761
)
3862

3963
val JetchatTypography = Typography(
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
Copyright 2022 The Android Open Source Project
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
<resources>
18+
<array name="com_google_android_gms_fonts_certs">
19+
<item>@array/com_google_android_gms_fonts_certs_dev</item>
20+
<item>@array/com_google_android_gms_fonts_certs_prod</item>
21+
</array>
22+
<string-array name="com_google_android_gms_fonts_certs_dev">
23+
<item>
24+
MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
25+
</item>
26+
</string-array>
27+
<string-array name="com_google_android_gms_fonts_certs_prod">
28+
<item>
29+
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK
30+
</item>
31+
</string-array>
32+
</resources>

Jetchat/buildSrc/src/main/java/com/example/compose/jetchat/buildsrc/dependencies.kt

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ object Libs {
6464
const val toolingPreview = "androidx.compose.ui:ui-tooling-preview:$version"
6565
const val test = "androidx.compose.ui:ui-test:$version"
6666
const val uiTest = "androidx.compose.ui:ui-test-junit4:$version"
67+
const val uiText = "androidx.compose.ui:ui-text-google-fonts:$version"
6768
const val uiTestManifest = "androidx.compose.ui:ui-test-manifest:$version"
6869
const val uiUtil = "androidx.compose.ui:ui-util:${version}"
6970
const val viewBinding = "androidx.compose.ui:ui-viewbinding:$version"

0 commit comments

Comments
 (0)