Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: google sans flex

authored by

Thomas May and committed by
xan.lol
61544680 caa14e93

+187 -17
+64 -8
app.config.js
··· 63 63 newArchEnabled: false, 64 64 ios: { 65 65 supportsTablet: false, 66 - bundleIdentifier: 'app.witchsky', 66 + bundleIdentifier: process.env.WITCHSKY_BUNDLE_ID || 'app.witchsky', 67 + appleTeamId: process.env.WITCHSKY_APPLE_TEAM_ID || 'B3LX46C5HS', 67 68 config: { 68 69 usesNonExemptEncryption: false, 69 70 }, ··· 127 128 entitlements: { 128 129 'com.apple.developer.kernel.increased-memory-limit': true, 129 130 'com.apple.developer.kernel.extended-virtual-addressing': true, 130 - 'com.apple.security.application-groups': 'group.app.witchsky', 131 + 'com.apple.security.application-groups': process.env 132 + .WITCHSKY_BUNDLE_ID 133 + ? `group.${process.env.WITCHSKY_BUNDLE_ID}` 134 + : 'group.app.witchsky', 131 135 // 'com.apple.developer.device-information.user-assigned-device-name': true, 132 136 }, 133 137 privacyManifests: { ··· 197 201 backgroundColor: '#ED5345', 198 202 }, 199 203 googleServicesFile: './google-services.json', 200 - package: 'app.witchsky', 204 + package: process.env.WITCHSKY_BUNDLE_ID || 'app.witchsky', 201 205 intentFilters: [ 202 206 { 203 207 action: 'VIEW', ··· 335 339 fonts: [ 336 340 './assets/fonts/inter/InterVariable.woff2', 337 341 './assets/fonts/inter/InterVariable-Italic.woff2', 342 + './assets/fonts/google-sans-flex/GoogleSansFlex-Regular.ttf', 338 343 // Android only 339 344 './assets/fonts/inter/Inter-Regular.otf', 340 345 './assets/fonts/inter/Inter-Italic.otf', ··· 344 349 './assets/fonts/inter/Inter-SemiBoldItalic.otf', 345 350 './assets/fonts/inter/Inter-Bold.otf', 346 351 './assets/fonts/inter/Inter-BoldItalic.otf', 352 + // Google Sans Flex - Android only 353 + // 9pt optical size 354 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Thin.ttf', 355 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-ExtraLight.ttf', 356 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Light.ttf', 357 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Regular.ttf', 358 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Medium.ttf', 359 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-SemiBold.ttf', 360 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Bold.ttf', 361 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-ExtraBold.ttf', 362 + './assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Black.ttf', 363 + // 24pt optical size (default) 364 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Thin.ttf', 365 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-ExtraLight.ttf', 366 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Light.ttf', 367 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Regular.ttf', 368 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Medium.ttf', 369 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-SemiBold.ttf', 370 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Bold.ttf', 371 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-ExtraBold.ttf', 372 + './assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Black.ttf', 373 + // 36pt optical size 374 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Thin.ttf', 375 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-ExtraLight.ttf', 376 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Light.ttf', 377 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Regular.ttf', 378 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Medium.ttf', 379 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-SemiBold.ttf', 380 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Bold.ttf', 381 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-ExtraBold.ttf', 382 + './assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Black.ttf', 383 + // 72pt optical size 384 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Thin.ttf', 385 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-ExtraLight.ttf', 386 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Light.ttf', 387 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Regular.ttf', 388 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Medium.ttf', 389 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-SemiBold.ttf', 390 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Bold.ttf', 391 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-ExtraBold.ttf', 392 + './assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Black.ttf', 393 + // 120pt optical size 394 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Thin.ttf', 395 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-ExtraLight.ttf', 396 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Light.ttf', 397 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Regular.ttf', 398 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Medium.ttf', 399 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-SemiBold.ttf', 400 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Bold.ttf', 401 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-ExtraBold.ttf', 402 + './assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Black.ttf', 347 403 ], 348 404 }, 349 405 ], ··· 459 515 // appExtensions: [ 460 516 // { 461 517 // targetName: 'Share-with-Bluesky', 462 - // bundleIdentifier: 'app.witchsky.Share-with-Bluesky', 518 + // bundleIdentifier: env.WITCHSKY_BUNDLE_ID ? `${env.WITCHSKY_BUNDLE_ID}.Share-with-Bluesky` : 'app.witchsky.Share-with-Bluesky', 463 519 // entitlements: { 464 520 // 'com.apple.security.application-groups': [ 465 - // 'group.app.witchsky', 521 + // process.env.WITCHSKY_BUNDLE_ID ? `group.${process.env.WITCHSKY_BUNDLE_ID}` : 'group.app.witchsky', 466 522 // ], 467 523 // }, 468 524 // }, 469 525 // { 470 526 // targetName: 'BlueskyNSE', 471 - // bundleIdentifier: 'app.witchsky.BlueskyNSE', 527 + // bundleIdentifier: process.env.WITCHSKY_BUNDLE_ID ? `${process.env.WITCHSKY_BUNDLE_ID}.BlueskyNSE` : 'app.witchsky.BlueskyNSE', 472 528 // entitlements: { 473 529 // 'com.apple.security.application-groups': [ 474 - // 'group.app.witchsky', 530 + // process.env.WITCHSKY_BUNDLE_ID ? `group.${process.env.WITCHSKY_BUNDLE_ID}` : 'group.app.witchsky', 475 531 // ], 476 532 // }, 477 533 // }, 478 534 // { 479 535 // targetName: 'BlueskyClip', 480 - // bundleIdentifier: 'app.witchsky.AppClip', 536 + // bundleIdentifier: process.env.WITCHSKY_BUNDLE_ID ? `${process.env.WITCHSKY_BUNDLE_ID}.AppClip` : 'app.witchsky.AppClip', 481 537 // }, 482 538 // ], 483 539 },
assets/fonts/google-sans-flex/GoogleSansFlex-Regular.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Black.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Bold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-ExtraBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-ExtraLight.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Light.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Medium.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Regular.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-SemiBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Thin.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Black.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Bold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-ExtraBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-ExtraLight.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Light.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Medium.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Regular.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-SemiBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Thin.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Black.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Bold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-ExtraBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-ExtraLight.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Light.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Medium.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Regular.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-SemiBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Thin.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Black.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Bold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-ExtraBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-ExtraLight.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Light.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Medium.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Regular.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-SemiBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Thin.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Black.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Bold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-ExtraBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-ExtraLight.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Light.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Medium.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Regular.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-SemiBold.ttf

This is a binary file and will not be displayed.

assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Thin.ttf

This is a binary file and will not be displayed.

+6 -1
package.json
··· 15 15 "expo-media-library", 16 16 "expo-image-picker" 17 17 ] 18 + }, 19 + "ios": { 20 + "exclude": [ 21 + "@assembless/react-native-material-you" 22 + ] 18 23 } 19 24 }, 20 25 "install": { ··· 410 415 "validatePackageNames": true, 411 416 "validateIntegrity": true 412 417 } 413 - } 418 + }
+57 -6
src/alf/fonts.ts
··· 5 5 6 6 const WEB_FONT_FAMILIES = `system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"` 7 7 8 + /* 9 + * DEBUG: Uncomment to test if fonts are actually being applied on Android. 10 + * This will use a distinctive cursive font. Revert when done testing. 11 + */ 12 + // const DEBUG_FONT_OVERRIDE = 'cursive' 13 + const DEBUG_FONT_OVERRIDE = undefined 14 + 15 + /* 16 + * Google Sans Flex optical size mapping. 17 + * Picks the correct optical size based on fontSize. 18 + */ 19 + function getGoogleSansFlex(weight: number, fontSize?: number): string { 20 + const opticalSize = fontSize 21 + ? fontSize < 14 22 + ? '9pt' 23 + : fontSize < 28 24 + ? '24pt' 25 + : fontSize < 48 26 + ? '36pt' 27 + : fontSize < 96 28 + ? '72pt' 29 + : '120pt' 30 + : '24pt' // default to 24pt if no fontSize provided 31 + 32 + const weightName = 33 + { 34 + 100: 'Thin', 35 + 200: 'ExtraLight', 36 + 300: 'Light', 37 + 400: 'Regular', 38 + 500: 'Medium', 39 + 600: 'SemiBold', 40 + 700: 'Bold', 41 + 800: 'ExtraBold', 42 + 900: 'Black', 43 + }[weight] || 'Regular' 44 + 45 + const name = `GoogleSansFlex_${opticalSize}-${weightName}` 46 + return name 47 + } 48 + 8 49 const factor = 0.0625 // 1 - (15/16) 9 50 const fontScaleMultipliers: Record<Device['fontScale'], number> = { 10 51 '-2': 1 - factor * 1, // unused ··· 37 78 /* 38 79 * Unused fonts are commented out, but the files are there if we need them. 39 80 */ 40 - export function applyFonts(style: TextStyle, fontFamily: 'system' | 'theme') { 41 - if (fontFamily === 'theme') { 81 + export function applyFonts( 82 + style: TextStyle, 83 + fontFamily: 'material' | 'system' | 'theme', 84 + ) { 85 + if (IS_ANDROID && fontFamily === 'material') { 86 + const weight = Number(style.fontWeight || 400) 87 + style.fontFamily = getGoogleSansFlex(weight, style.fontSize) 88 + } else if (fontFamily === 'theme') { 42 89 if (IS_ANDROID) { 43 90 style.fontFamily = 44 91 { ··· 90 137 style.fontVariant = (style.fontVariant || []).concat('no-contextual') 91 138 } 92 139 } else { 93 - // fallback families only supported on web 94 - if (IS_WEB) { 95 - style.fontFamily = style.fontFamily || WEB_FONT_FAMILIES 140 + // DEBUG: Use cursive font for testing by uncommenting DEBUG_FONT_OVERRIDE 141 + if (DEBUG_FONT_OVERRIDE) { 142 + style.fontFamily = DEBUG_FONT_OVERRIDE 143 + } else { 144 + // fallback families only supported on web 145 + if (IS_WEB) { 146 + style.fontFamily = style.fontFamily || WEB_FONT_FAMILIES 147 + } 96 148 } 97 - 98 149 /** 99 150 * Overridden to previous spacing for the `system` font option. 100 151 * https://github.com/bluesky-social/social-app/commit/2419096e2409008b7d71fd6b8f8d0dd5b016e267
+50
src/alf/util/unusedUseFonts.android.ts
··· 17 17 'Inter-SemiBoldItalic': require('../../../assets/fonts/inter/Inter-SemiBoldItalic.otf'), 18 18 'Inter-Bold': require('../../../assets/fonts/inter/Inter-Bold.otf'), 19 19 'Inter-BoldItalic': require('../../../assets/fonts/inter/Inter-BoldItalic.otf'), 20 + // Google Sans Flex - 9pt 21 + 'GoogleSansFlex_9pt-Thin': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Thin.ttf'), 22 + 'GoogleSansFlex_9pt-ExtraLight': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-ExtraLight.ttf'), 23 + 'GoogleSansFlex_9pt-Light': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Light.ttf'), 24 + 'GoogleSansFlex_9pt-Regular': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Regular.ttf'), 25 + 'GoogleSansFlex_9pt-Medium': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Medium.ttf'), 26 + 'GoogleSansFlex_9pt-SemiBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-SemiBold.ttf'), 27 + 'GoogleSansFlex_9pt-Bold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Bold.ttf'), 28 + 'GoogleSansFlex_9pt-ExtraBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-ExtraBold.ttf'), 29 + 'GoogleSansFlex_9pt-Black': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_9pt-Black.ttf'), 30 + // Google Sans Flex - 24pt 31 + 'GoogleSansFlex_24pt-Thin': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Thin.ttf'), 32 + 'GoogleSansFlex_24pt-ExtraLight': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-ExtraLight.ttf'), 33 + 'GoogleSansFlex_24pt-Light': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Light.ttf'), 34 + 'GoogleSansFlex_24pt-Regular': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Regular.ttf'), 35 + 'GoogleSansFlex_24pt-Medium': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Medium.ttf'), 36 + 'GoogleSansFlex_24pt-SemiBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-SemiBold.ttf'), 37 + 'GoogleSansFlex_24pt-Bold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Bold.ttf'), 38 + 'GoogleSansFlex_24pt-ExtraBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-ExtraBold.ttf'), 39 + 'GoogleSansFlex_24pt-Black': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_24pt-Black.ttf'), 40 + // Google Sans Flex - 36pt 41 + 'GoogleSansFlex_36pt-Thin': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Thin.ttf'), 42 + 'GoogleSansFlex_36pt-ExtraLight': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-ExtraLight.ttf'), 43 + 'GoogleSansFlex_36pt-Light': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Light.ttf'), 44 + 'GoogleSansFlex_36pt-Regular': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Regular.ttf'), 45 + 'GoogleSansFlex_36pt-Medium': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Medium.ttf'), 46 + 'GoogleSansFlex_36pt-SemiBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-SemiBold.ttf'), 47 + 'GoogleSansFlex_36pt-Bold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Bold.ttf'), 48 + 'GoogleSansFlex_36pt-ExtraBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-ExtraBold.ttf'), 49 + 'GoogleSansFlex_36pt-Black': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_36pt-Black.ttf'), 50 + // Google Sans Flex - 72pt 51 + 'GoogleSansFlex_72pt-Thin': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Thin.ttf'), 52 + 'GoogleSansFlex_72pt-ExtraLight': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-ExtraLight.ttf'), 53 + 'GoogleSansFlex_72pt-Light': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Light.ttf'), 54 + 'GoogleSansFlex_72pt-Regular': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Regular.ttf'), 55 + 'GoogleSansFlex_72pt-Medium': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Medium.ttf'), 56 + 'GoogleSansFlex_72pt-SemiBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-SemiBold.ttf'), 57 + 'GoogleSansFlex_72pt-Bold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Bold.ttf'), 58 + 'GoogleSansFlex_72pt-ExtraBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-ExtraBold.ttf'), 59 + 'GoogleSansFlex_72pt-Black': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_72pt-Black.ttf'), 60 + // Google Sans Flex - 120pt 61 + 'GoogleSansFlex_120pt-Thin': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Thin.ttf'), 62 + 'GoogleSansFlex_120pt-ExtraLight': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-ExtraLight.ttf'), 63 + 'GoogleSansFlex_120pt-Light': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Light.ttf'), 64 + 'GoogleSansFlex_120pt-Regular': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Regular.ttf'), 65 + 'GoogleSansFlex_120pt-Medium': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Medium.ttf'), 66 + 'GoogleSansFlex_120pt-SemiBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-SemiBold.ttf'), 67 + 'GoogleSansFlex_120pt-Bold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Bold.ttf'), 68 + 'GoogleSansFlex_120pt-ExtraBold': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-ExtraBold.ttf'), 69 + 'GoogleSansFlex_120pt-Black': require('../../../assets/fonts/google-sans-flex/GoogleSansFlex_120pt-Black.ttf'), 20 70 }) 21 71 }
+9 -1
src/screens/Settings/AppearanceSettings.tsx
··· 118 118 ) 119 119 120 120 const onChangeFontFamily = useCallback( 121 - (value: 'system' | 'theme') => { 121 + (value: 'system' | 'theme' | 'material') => { 122 122 fonts.setFontFamily(value) 123 123 }, 124 124 [fonts], ··· 292 292 label: _(msg`Theme`), 293 293 name: 'theme', 294 294 }, 295 + ...(IS_ANDROID 296 + ? [ 297 + { 298 + label: _(msg`Google Sans`), 299 + name: 'material' as 'system' | 'theme' | 'material', 300 + }, 301 + ] 302 + : []), 295 303 ]} 296 304 value={fonts.family} 297 305 onChange={onChangeFontFamily}
+1 -1
src/storage/schema.ts
··· 17 17 nativeSessionIdLastEventAt?: number 18 18 19 19 fontScale: '-2' | '-1' | '0' | '1' | '2' 20 - fontFamily: 'system' | 'theme' 20 + fontFamily: 'system' | 'theme' | 'material' 21 21 lastNuxDialog: string | undefined 22 22 23 23 /**