diff --git a/fonts/Cascadia.ttf b/google_fonts/Cascadia.ttf similarity index 100% rename from fonts/Cascadia.ttf rename to google_fonts/Cascadia.ttf diff --git a/fonts/FiraCode-Bold.ttf b/google_fonts/FiraCode-Bold.ttf similarity index 100% rename from fonts/FiraCode-Bold.ttf rename to google_fonts/FiraCode-Bold.ttf diff --git a/fonts/FiraCode-Regular.ttf b/google_fonts/FiraCode-Regular.ttf similarity index 100% rename from fonts/FiraCode-Regular.ttf rename to google_fonts/FiraCode-Regular.ttf diff --git a/fonts/Inconsolata-Bold.ttf b/google_fonts/Inconsolata-Bold.ttf similarity index 100% rename from fonts/Inconsolata-Bold.ttf rename to google_fonts/Inconsolata-Bold.ttf diff --git a/fonts/Inconsolata-Regular.ttf b/google_fonts/Inconsolata-Regular.ttf similarity index 100% rename from fonts/Inconsolata-Regular.ttf rename to google_fonts/Inconsolata-Regular.ttf diff --git a/fonts/JetBrainsMono-Bold-Italic.ttf b/google_fonts/JetBrainsMono-Bold-Italic.ttf similarity index 100% rename from fonts/JetBrainsMono-Bold-Italic.ttf rename to google_fonts/JetBrainsMono-Bold-Italic.ttf diff --git a/fonts/JetBrainsMono-Bold.ttf b/google_fonts/JetBrainsMono-Bold.ttf similarity index 100% rename from fonts/JetBrainsMono-Bold.ttf rename to google_fonts/JetBrainsMono-Bold.ttf diff --git a/fonts/JetBrainsMono-Italic.ttf b/google_fonts/JetBrainsMono-Italic.ttf similarity index 100% rename from fonts/JetBrainsMono-Italic.ttf rename to google_fonts/JetBrainsMono-Italic.ttf diff --git a/fonts/JetBrainsMono-Regular.ttf b/google_fonts/JetBrainsMono-Regular.ttf similarity index 100% rename from fonts/JetBrainsMono-Regular.ttf rename to google_fonts/JetBrainsMono-Regular.ttf diff --git a/fonts/PTMono-Regular.ttf b/google_fonts/PTMono-Regular.ttf similarity index 100% rename from fonts/PTMono-Regular.ttf rename to google_fonts/PTMono-Regular.ttf diff --git a/fonts/SourceCodePro-Bold.ttf b/google_fonts/SourceCodePro-Bold.ttf similarity index 100% rename from fonts/SourceCodePro-Bold.ttf rename to google_fonts/SourceCodePro-Bold.ttf diff --git a/fonts/SourceCodePro-BoldItalic.ttf b/google_fonts/SourceCodePro-BoldItalic.ttf similarity index 100% rename from fonts/SourceCodePro-BoldItalic.ttf rename to google_fonts/SourceCodePro-BoldItalic.ttf diff --git a/fonts/SourceCodePro-Regular.ttf b/google_fonts/SourceCodePro-Regular.ttf similarity index 100% rename from fonts/SourceCodePro-Regular.ttf rename to google_fonts/SourceCodePro-Regular.ttf diff --git a/fonts/SourceCodePro-RegularItalic.ttf b/google_fonts/SourceCodePro-RegularItalic.ttf similarity index 100% rename from fonts/SourceCodePro-RegularItalic.ttf rename to google_fonts/SourceCodePro-RegularItalic.ttf diff --git a/fonts/UbuntuMono-Bold.ttf b/google_fonts/UbuntuMono-Bold.ttf similarity index 100% rename from fonts/UbuntuMono-Bold.ttf rename to google_fonts/UbuntuMono-Bold.ttf diff --git a/fonts/UbuntuMono-BoldItalic.ttf b/google_fonts/UbuntuMono-BoldItalic.ttf similarity index 100% rename from fonts/UbuntuMono-BoldItalic.ttf rename to google_fonts/UbuntuMono-BoldItalic.ttf diff --git a/fonts/UbuntuMono-Regular.ttf b/google_fonts/UbuntuMono-Regular.ttf similarity index 100% rename from fonts/UbuntuMono-Regular.ttf rename to google_fonts/UbuntuMono-Regular.ttf diff --git a/fonts/UbuntuMono-RegularItalic.ttf b/google_fonts/UbuntuMono-RegularItalic.ttf similarity index 100% rename from fonts/UbuntuMono-RegularItalic.ttf rename to google_fonts/UbuntuMono-RegularItalic.ttf diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b06fd7f..9ea3695 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -6,6 +6,8 @@ PODS: - Flutter - package_info_plus (0.4.5): - Flutter + - path_provider (0.0.1): + - Flutter - Sentry (7.1.3): - Sentry/Core (= 7.1.3) - Sentry/Core (7.1.3) @@ -29,6 +31,7 @@ DEPENDENCIES: - launch_review (from `.symlinks/plugins/launch_review/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - path_provider (from `.symlinks/plugins/path_provider/ios`) - sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`) - share (from `.symlinks/plugins/share/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) @@ -49,6 +52,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info/ios" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" + path_provider: + :path: ".symlinks/plugins/path_provider/ios" sentry_flutter: :path: ".symlinks/plugins/sentry_flutter/ios" share: @@ -67,6 +72,7 @@ SPEC CHECKSUMS: launch_review: 75d5a956ba8eaa493e9c9d4bf4c05e505e8d5ed0 package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e + path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c Sentry: 6d963d64804dd06d96e778be729613f481394312 sentry_flutter: f20d4f199442900fbdab2b8496f1d2091d8b94d9 share: 0b2c3e82132f5888bccca3351c504d0003b3b410 diff --git a/lib/main.dart b/lib/main.dart index 206c66f..9ab7530 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,7 @@ import 'package:git_touch/models/code.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/router.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'package:git_touch/models/notification.dart'; import 'package:fluro/fluro.dart'; @@ -19,6 +20,8 @@ void main() async { }, // Init your App. appRunner: () async { + GoogleFonts.config.allowRuntimeFetching = false; + final notificationModel = NotificationModel(); final themeModel = ThemeModel(); final authModel = AuthModel(); diff --git a/lib/models/code.dart b/lib/models/code.dart index 5703be7..2c3e77e 100644 --- a/lib/models/code.dart +++ b/lib/models/code.dart @@ -1,7 +1,9 @@ import 'package:fimber/fimber.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_highlight/theme_map.dart'; import 'package:git_touch/utils/utils.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:shared_preferences/shared_preferences.dart'; class CodeModel with ChangeNotifier { @@ -15,7 +17,7 @@ class CodeModel with ChangeNotifier { 'PT Mono', 'Source Code Pro', 'Ubuntu Mono', - 'Cascadia Code', + // 'Cascadia Code', // TODO: https://github.com/google/fonts/issues/2179 ]; String _theme = 'vs'; @@ -25,10 +27,17 @@ class CodeModel with ChangeNotifier { String get theme => _theme; String get themeDark => _themeDark; + int get fontSize => _fontSize; String get fontFamily => _fontFamily; - String get fontFamilyUsed => - _fontFamily == 'System' ? CommonStyle.monospace : _fontFamily; + TextStyle get fontStyle { + if (_fontFamily == 'System') { + return TextStyle( + fontFamily: CommonStyle.monospace, fontSize: fontSize.toDouble()); + } else { + return GoogleFonts.getFont(_fontFamily, fontSize: fontSize.toDouble()); + } + } Future init() async { var prefs = await SharedPreferences.getInstance(); diff --git a/lib/screens/code_theme.dart b/lib/screens/code_theme.dart index 10215a9..fcdc7e6 100644 --- a/lib/screens/code_theme.dart +++ b/lib/screens/code_theme.dart @@ -133,20 +133,14 @@ class MyApp extends StatelessWidget { _getCode(false), language: 'dart', theme: themeMap[codeProvider.theme]!, - textStyle: TextStyle( - fontSize: codeProvider.fontSize.toDouble(), - fontFamily: codeProvider.fontFamilyUsed, - ), + textStyle: codeProvider.fontStyle, padding: CommonStyle.padding, ), HighlightView( _getCode(true), language: 'dart', theme: themeMap[codeProvider.themeDark]!, - textStyle: TextStyle( - fontSize: codeProvider.fontSize.toDouble(), - fontFamily: codeProvider.fontFamilyUsed, - ), + textStyle: codeProvider.fontStyle, padding: CommonStyle.padding, ), ], diff --git a/lib/screens/gl_commit.dart b/lib/screens/gl_commit.dart index 967e840..2d588d2 100644 --- a/lib/screens/gl_commit.dart +++ b/lib/screens/gl_commit.dart @@ -46,9 +46,7 @@ class GlCommitScreen extends StatelessWidget { ? codeProvider.themeDark : codeProvider.theme]!, padding: CommonStyle.padding, - textStyle: TextStyle( - fontSize: codeProvider.fontSize.toDouble(), - fontFamily: codeProvider.fontFamilyUsed), + textStyle: codeProvider.fontStyle, ), ), ], diff --git a/lib/widgets/blob_view.dart b/lib/widgets/blob_view.dart index 4c34f3f..99aaad6 100644 --- a/lib/widgets/blob_view.dart +++ b/lib/widgets/blob_view.dart @@ -62,9 +62,7 @@ class BlobView extends StatelessWidget { ? codeProvider.themeDark : codeProvider.theme]!, padding: CommonStyle.padding, - textStyle: TextStyle( - fontSize: codeProvider.fontSize.toDouble(), - fontFamily: codeProvider.fontFamilyUsed), + textStyle: codeProvider.fontStyle, ), ); } diff --git a/lib/widgets/diff_view.dart b/lib/widgets/diff_view.dart index 966fa72..5e12b5f 100644 --- a/lib/widgets/diff_view.dart +++ b/lib/widgets/diff_view.dart @@ -1,86 +1,86 @@ -import 'package:flutter/material.dart'; -import 'package:git_touch/models/code.dart'; -import 'package:git_touch/models/theme.dart'; -import 'package:provider/provider.dart'; +// import 'package:flutter/material.dart'; +// import 'package:git_touch/models/code.dart'; +// import 'package:git_touch/models/theme.dart'; +// import 'package:provider/provider.dart'; -class DiffLine { - String? type; - int lineNumber; - String content; - DiffLine({ - required this.type, - required this.lineNumber, - required this.content, - }); -} +// class DiffLine { +// String? type; +// int lineNumber; +// String content; +// DiffLine({ +// required this.type, +// required this.lineNumber, +// required this.content, +// }); +// } -class DiffChunk { - String heading; - List lines; - DiffChunk({required this.heading, required this.lines}); -} +// class DiffChunk { +// String heading; +// List lines; +// DiffChunk({required this.heading, required this.lines}); +// } -class DiffView extends StatelessWidget { - final String source; - DiffView(this.source); +// class DiffView extends StatelessWidget { +// final String source; +// DiffView(this.source); - @override - Widget build(BuildContext context) { - final code = Provider.of(context); - final theme = Provider.of(context); +// @override +// Widget build(BuildContext context) { +// final code = Provider.of(context); +// final theme = Provider.of(context); - final lines = source.split('\n'); - final chunks = []; - var offset = 0; - for (final line in lines) { - if (line.startsWith('@@')) { - chunks.add(DiffChunk(heading: line, lines: [])); - offset = int.parse(line.substring(4).split(',')[0]); - } else { - chunks.last.lines.add(DiffLine( - type: line.isEmpty ? null : line[0], - lineNumber: offset, - content: line, - )); - offset++; - } - } +// final lines = source.split('\n'); +// final chunks = []; +// var offset = 0; +// for (final line in lines) { +// if (line.startsWith('@@')) { +// chunks.add(DiffChunk(heading: line, lines: [])); +// offset = int.parse(line.substring(4).split(',')[0]); +// } else { +// chunks.last.lines.add(DiffLine( +// type: line.isEmpty ? null : line[0], +// lineNumber: offset, +// content: line, +// )); +// offset++; +// } +// } - return DefaultTextStyle( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - for (var c in chunks) - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - c.heading, - style: TextStyle( - color: theme.palette.tertiaryText, - backgroundColor: Color(0xfffafafa), - ), - ), - for (var l in c.lines) - Text( - l.content, - style: TextStyle( - backgroundColor: l.type == '-' - ? Color(0x00fbe9eb) - : l.type == '+' - ? Color(0xffecfdf0) - : null, - ), - ), - ], - ), - ], - ), - style: TextStyle( - fontFamily: code.fontFamilyUsed, - fontSize: 14, - color: theme.palette.text, - ), - ); - } -} +// return DefaultTextStyle( +// child: Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// for (var c in chunks) +// Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Text( +// c.heading, +// style: TextStyle( +// color: theme.palette.tertiaryText, +// backgroundColor: Color(0xfffafafa), +// ), +// ), +// for (var l in c.lines) +// Text( +// l.content, +// style: TextStyle( +// backgroundColor: l.type == '-' +// ? Color(0x00fbe9eb) +// : l.type == '+' +// ? Color(0xffecfdf0) +// : null, +// ), +// ), +// ], +// ), +// ], +// ), +// style: TextStyle( +// fontFamily: code.fontFamilyUsed, +// fontSize: 14, +// color: theme.palette.text, +// ), +// ); +// } +// } diff --git a/lib/widgets/files_item.dart b/lib/widgets/files_item.dart index b7aec24..e4e9c77 100644 --- a/lib/widgets/files_item.dart +++ b/lib/widgets/files_item.dart @@ -47,9 +47,7 @@ class FilesItem extends StatelessWidget { theme: themeMap[theme.brightness == Brightness.dark ? codeProvider.themeDark : codeProvider.theme]!, - textStyle: TextStyle( - fontSize: codeProvider.fontSize.toDouble(), - fontFamily: codeProvider.fontFamilyUsed), + textStyle: codeProvider.fontStyle, ), ), ], diff --git a/lib/widgets/markdown_view.dart b/lib/widgets/markdown_view.dart index 9ba4c52..655aea4 100644 --- a/lib/widgets/markdown_view.dart +++ b/lib/widgets/markdown_view.dart @@ -164,7 +164,7 @@ class MarkdownFlutterView extends StatelessWidget { backgroundColor: theme.palette.grayBackground, fontSize: 16 * 0.85, height: 1.45, - fontFamily: code.fontFamilyUsed, + fontFamily: code.fontStyle.fontFamily, ), h1: _hStyle.copyWith(fontSize: 32), h2: _hStyle.copyWith(fontSize: 24), diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 328042c..0438999 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,14 +5,18 @@ import FlutterMacOS import Foundation -import in_app_review import package_info +import package_info_plus_macos +import path_provider_macos +import sentry_flutter import shared_preferences_macos import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin")) FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin")) + FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 659247c..5f3cb96 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -350,6 +350,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" gql: dependency: transitive description: @@ -609,6 +616,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.2.1" + path_provider: + dependency: transitive + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" path_provider_linux: dependency: transitive description: @@ -616,6 +630,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" path_provider_platform_interface: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 26a3e12..bb67a89 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -52,6 +52,7 @@ dependencies: webview_flutter: ^2.0.4 sentry_flutter: ^5.1.0 pub_semver: ^2.0.0 + google_fonts: dev_dependencies: flutter_test: @@ -71,52 +72,6 @@ flutter: uses-material-design: true assets: - images/ - fonts: - - family: Fira Code - fonts: - - asset: fonts/FiraCode-Regular.ttf - - asset: fonts/FiraCode-Bold.ttf - weight: 700 - - family: Inconsolata - fonts: - - asset: fonts/Inconsolata-Regular.ttf - - asset: fonts/Inconsolata-Bold.ttf - weight: 700 - - family: PT Mono - fonts: - - asset: fonts/PTMono-Regular.ttf - - family: Source Code Pro - fonts: - - asset: fonts/SourceCodePro-Regular.ttf - - asset: fonts/SourceCodePro-RegularItalic.ttf - style: italic - - asset: fonts/SourceCodePro-Bold.ttf - weight: 700 - - asset: fonts/SourceCodePro-BoldItalic.ttf - style: italic - weight: 700 - - family: Ubuntu Mono - fonts: - - asset: fonts/UbuntuMono-Regular.ttf - - asset: fonts/UbuntuMono-RegularItalic.ttf - style: italic - - asset: fonts/UbuntuMono-Bold.ttf - weight: 700 - - asset: fonts/UbuntuMono-BoldItalic.ttf - style: italic - weight: 700 - - family: Cascadia Code - fonts: - - asset: fonts/Cascadia.ttf - - family: JetBrains Mono - fonts: - - asset: fonts/JetBrainsMono-Regular.ttf - - asset: fonts/JetBrainsMono-Italic.ttf - style: italic - - asset: fonts/JetBrainsMono-Bold.ttf - weight: 700 - - asset: fonts/JetBrainsMono-Bold-Italic.ttf - style: italic - weight: 700 + - google_fonts/ flutter_intl: enabled: true