fix: Update packages, remove font_awesome_flutter, add derry script descriptions (#475)

* fix(dev): Add descriptions to all derry scripts
* Removing from blackbox: vendor/font_awesome_flutter/icons.json
* Removing from blackbox: vendor/font_awesome_flutter/lib/fonts/fa-brands-400.ttf
* Removing from blackbox: vendor/font_awesome_flutter/lib/fonts/fa-duotone-900.ttf
* Removing from blackbox: vendor/font_awesome_flutter/lib/fonts/fa-light-300.ttf
* Removing from blackbox: vendor/font_awesome_flutter/lib/fonts/fa-regular-400.ttf
* Removing from blackbox: vendor/font_awesome_flutter/lib/fonts/fa-solid-900.ttf
* fix(vendor): Remove font_awesome_flutter
* fix(flutter): Update packages
* fix(syntax): Sort import ordering
This commit is contained in:
Jagandeep Brar
2021-07-02 01:36:13 -05:00
committed by GitHub
parent 50fcc0582d
commit cc70894fc5
70 changed files with 269 additions and 53354 deletions

View File

@@ -4,9 +4,3 @@ android/key.properties
ios/ExportOptions.plist
ios/GoogleService-Info.plist
macos/GoogleService-Info.plist
vendor/font_awesome_flutter/icons.json
vendor/font_awesome_flutter/lib/fonts/fa-brands-400.ttf
vendor/font_awesome_flutter/lib/fonts/fa-duotone-900.ttf
vendor/font_awesome_flutter/lib/fonts/fa-light-300.ttf
vendor/font_awesome_flutter/lib/fonts/fa-regular-400.ttf
vendor/font_awesome_flutter/lib/fonts/fa-solid-900.ttf

6
.gitignore vendored
View File

@@ -55,10 +55,4 @@ coverage/
/ios/ExportOptions.plist
/ios/GoogleService-Info.plist
/macos/GoogleService-Info.plist
/vendor/font_awesome_flutter/lib/fonts/fa-brands-400.ttf
/vendor/font_awesome_flutter/lib/fonts/fa-duotone-900.ttf
/vendor/font_awesome_flutter/lib/fonts/fa-light-300.ttf
/vendor/font_awesome_flutter/lib/fonts/fa-regular-400.ttf
/vendor/font_awesome_flutter/lib/fonts/fa-solid-900.ttf
/vendor/font_awesome_flutter/lib/fonts/fa-thin-100.ttf
/vendor/font_awesome_flutter/icons.json

View File

@@ -1,41 +1,108 @@
blackbox:
admins: blackbox_list_admins
decrypt: blackbox_postdeploy
files: blackbox_list_files
shred: blackbox_shred_all_files
update: blackbox_update_all_files
admins:
(description): Blackbox - List Admins
(execution): once
(scripts):
- blackbox_list_admins
decrypt:
(description): Blackbox - Decrypt Encrypted Files
(execution): once
(scripts):
- blackbox_postdeploy
files:
(description): Blackbox - List Encrypted Files
(execution): once
(scripts):
- blackbox_list_files
shred:
(description): Blackbox - Safely Delete Decrypted Files
(execution): once
(scripts):
- blackbox_shred_all_files
update:
(description): Blackbox - Decrypt & Re-Encrypt Tracked Files
(execution): once
(scripts):
- blackbox_update_all_files
build:
android:
apk: ./scripts/build/apk.sh
aab: ./scripts/build/aab.sh
apk:
(description): Build (Android) - Build Split APKs
(execution): once
(scripts):
- ./scripts/build/apk.sh
aab:
(description): Build (Android) - Build Appbundle
(execution): once
(scripts):
- ./scripts/build/aab.sh
ios:
ipa: ./scripts/build/ipa.sh
ipa:
(description): Build (iOS) - Build IPA
(execution): once
(scripts):
- ./scripts/build/ipa.sh
archive:
- flutter clean
- flutter build ios
(description): Build (iOS) - Build Xcode Archive
(execution): once
(scripts):
- flutter clean
- flutter build ios
macos:
archive:
- flutter clean
- flutter build macos
(description): Build (iOS) - Build Xcode Archive
(execution): once
(scripts):
- flutter clean
- flutter build macos
cocoapods:
clearcache:
- rm -rf ~/Library/Caches/CocoaPods
- rm -rf ~/Library/Developer/Xcode/DerivedData/*
(description): Cocoapods - Delete Cache & Derived Data
(execution): multiple
(scripts):
- rm -rf ~/Library/Caches/CocoaPods
- rm -rf ~/Library/Developer/Xcode/DerivedData/*
nuke:
ios:
- cd ./ios && rm -rf Pods/
- cd ./ios && pod deintegrate
- cd ./ios && pod setup
- cd ./ios && pod install
(description): Cocoapods - Reintegrate & Reinstall iOS Pods
(execution): once
(scripts):
- cd ./ios && rm -rf Pods/
- cd ./ios && pod deintegrate
- cd ./ios && pod setup
- cd ./ios && pod install
macos:
- cd ./macos && rm -rf Pods/
- cd ./macos && pod deintegrate
- cd ./macos && pod setup
- cd ./macos && pod install
(description): Cocoapods - Reintegrate & Reinstall macOS Pods
(execution): once
(scripts):
- cd ./macos && rm -rf Pods/
- cd ./macos && pod deintegrate
- cd ./macos && pod setup
- cd ./macos && pod install
coverage:
create: flutter test --coverage
upload: bash <(curl -s https://codecov.io/bash)
create:
(description): Coverage - Create Coverage Report
(execution): once
(scripts):
- flutter test --coverage
upload:
(description): Coverage - Upload to Codecov
(execution): once
(scripts):
- bash <(curl -s https://codecov.io/bash)
generate:
assets: spider build
runner: flutter packages pub run build_runner build --delete-conflicting-outputs
localization: dart ./scripts/generate/localization.dart
assets:
(description): Generator - Asset Tree
(execution): once
(scripts):
- spider build
runner:
(description): Generator - Build Runner
(execution): once
(scripts):
- flutter packages pub run build_runner build --delete-conflicting-outputs
localization:
(description): Generator - Localizations
(execution): once
(scripts):
- dart ./scripts/generate/localization.dart

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules.dart';

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules.dart';
import 'package:provider/provider.dart';
class LunaState {
LunaState._();

View File

@@ -4,8 +4,8 @@ import 'package:file_selector_platform_interface/file_selector_platform_interfac
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:lunasea/core.dart';
import 'package:share_plus/share_plus.dart';
import 'package:path_provider/path_provider.dart';
import 'package:share_plus/share_plus.dart';
class LunaFileSystem {
/// Export a given byte array to the filesystem.

View File

@@ -1,5 +1,5 @@
import 'package:google_nav_bar/google_nav_bar.dart';
import 'package:flutter/material.dart';
import 'package:google_nav_bar/google_nav_bar.dart';
import 'package:lunasea/core.dart';
class LunaBottomNavigationBar extends StatefulWidget {

View File

@@ -10,8 +10,8 @@
import 'dart:ui' show lerpDouble;
import 'package:flutter/gestures.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
/// A list whose items the user can interactively reorder by dragging.
///

View File

@@ -3,8 +3,8 @@ import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/dashboard.dart';
import 'package:table_calendar/table_calendar.dart';
import 'package:simple_gesture_detector/simple_gesture_detector.dart';
import 'package:table_calendar/table_calendar.dart';
class DashboardCalendarWidget extends StatefulWidget {
final Map<DateTime, List> events;

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:intl/intl.dart';
import 'package:lunasea/core.dart';
class LidarrAlbumData {
final Map<String, dynamic> api = Database.currentProfileObject.getLidarr();

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/lidarr.dart';
import 'package:lunasea/modules/dashboard.dart';
import 'package:lunasea/modules/lidarr.dart';
class LidarrReleasesTile extends StatefulWidget {
final LidarrReleaseData release;

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:tuple/tuple.dart';
import 'package:lunasea/modules/nzbget.dart';
import 'package:tuple/tuple.dart';
class NZBGetHistory extends StatefulWidget {
static const ROUTE_NAME = '/nzbget/history';

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:lunasea/core.dart';
import 'package:tuple/tuple.dart';
import 'package:lunasea/modules/nzbget.dart';
import 'package:tuple/tuple.dart';
class NZBGetAppBarStats extends StatelessWidget {
@override

View File

@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
import 'package:lunasea/core.dart';
import 'package:tuple/tuple.dart';
import 'package:lunasea/modules/nzbget.dart';
import 'package:tuple/tuple.dart';
class NZBGetQueueFAB extends StatefulWidget {
final ScrollController scrollController;

View File

@@ -1,8 +1,8 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/nzbget.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
class NZBGetQueueTile extends StatefulWidget {
final int index;

View File

@@ -1,7 +1,7 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/modules/radarr.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/radarr.dart';
class RadarrQueueRouter extends RadarrPageRouter {
RadarrQueueRouter() : super('/radarr/queue');

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:tuple/tuple.dart';
import 'package:lunasea/modules/sabnzbd.dart';
import 'package:tuple/tuple.dart';
class SABnzbdHistory extends StatefulWidget {
static const ROUTE_NAME = '/sabnzbd/history';

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:lunasea/core.dart';
import 'package:tuple/tuple.dart';
import 'package:lunasea/modules/sabnzbd.dart';
import 'package:tuple/tuple.dart';
class SABnzbdAppBarStats extends StatelessWidget {
@override

View File

@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
import 'package:lunasea/core.dart';
import 'package:tuple/tuple.dart';
import 'package:lunasea/modules/sabnzbd.dart';
import 'package:tuple/tuple.dart';
class SABnzbdQueueFAB extends StatefulWidget {
final ScrollController scrollController;

View File

@@ -1,8 +1,8 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/sabnzbd.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
class SABnzbdQueueTile extends StatefulWidget {
final int index;

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:intl/intl.dart';
import 'package:lunasea/core.dart';
class NewznabResultData {
String title;

View File

@@ -1,8 +1,8 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/sonarr.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/modules/sonarr.dart';
class SettingsConfigurationSonarrConnectionDetailsRouter
extends SettingsPageRouter {

View File

@@ -1,8 +1,8 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/sonarr.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/modules/sonarr.dart';
class SettingsConfigurationSonarrDefaultPagesRouter extends SettingsPageRouter {
SettingsConfigurationSonarrDefaultPagesRouter()

View File

@@ -1,8 +1,8 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/sonarr.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/modules/sonarr.dart';
class SettingsConfigurationSonarrDefaultSortingRouter
extends SettingsPageRouter {

View File

@@ -1,8 +1,8 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/modules/tautulli.dart';
class SettingsConfigurationTautulliConnectionDetailsRouter
extends SettingsPageRouter {

View File

@@ -1,8 +1,8 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/modules/tautulli.dart';
class SettingsConfigurationTautulliDefaultPagesRouter
extends SettingsPageRouter {

View File

@@ -1,8 +1,8 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/modules/tautulli.dart';
class SettingsConfigurationTautulliRouter extends SettingsPageRouter {
SettingsConfigurationTautulliRouter()

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:expandable/expandable.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/sonarr.dart';

View File

@@ -1,5 +1,5 @@
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
extension TautulliActivityExtension on TautulliActivity {
String get lunaSessionsHeader {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
extension TautulliHistoryRecordExtension on TautulliHistoryRecord {
String get lsFullTitle => [

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,6 +1,6 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
class TautulliActivityTile extends StatelessWidget {
final TautulliSession session;

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliIPAddressDetailsState extends ChangeNotifier {
final String ipAddress;

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliLogsLoginsState extends ChangeNotifier {
TautulliLogsLoginsState(BuildContext context) {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliLogsNewslettersState extends ChangeNotifier {
TautulliLogsNewslettersState(BuildContext context) {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliLogsNotificationsState extends ChangeNotifier {
TautulliLogsNotificationsState(BuildContext context) {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliLogsPlexMediaScannerState extends ChangeNotifier {
TautulliLogsPlexMediaScannerState(BuildContext context) {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliLogsPlexMediaServerState extends ChangeNotifier {
TautulliLogsPlexMediaServerState(BuildContext context) {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lunasea/modules/tautulli.dart';
import 'package:lunasea/core.dart';
import 'package:lunasea/modules/tautulli.dart';
class TautulliLogsTautulliState extends ChangeNotifier {
TautulliLogsTautulliState(BuildContext context) {

View File

@@ -7,14 +7,14 @@ packages:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
source: hosted
version: "21.0.0"
version: "22.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.0"
version: "1.7.0"
archive:
dependency: transitive
description:
@@ -23,33 +23,33 @@ packages:
source: hosted
version: "3.1.2"
args:
dependency: transitive
dependency: "direct overridden"
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.1"
asn1lib:
dependency: transitive
description:
name: asn1lib
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.0.2"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.6.0"
version: "2.7.0"
badges:
dependency: "direct main"
description:
name: badges
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "2.0.1"
boolean_selector:
dependency: transitive
description:
@@ -63,7 +63,7 @@ packages:
name: build
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
build_config:
dependency: transitive
description:
@@ -84,7 +84,7 @@ packages:
name: build_resolvers
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.3"
build_runner:
dependency: "direct dev"
description:
@@ -105,14 +105,14 @@ packages:
name: built_collection
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.0"
version: "5.1.0"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
source: hosted
version: "8.0.5"
version: "8.1.0"
characters:
dependency: transitive
description:
@@ -126,7 +126,7 @@ packages:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.3.1"
checked_yaml:
dependency: transitive
description:
@@ -140,7 +140,7 @@ packages:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
version: "0.3.1"
clock:
dependency: transitive
description:
@@ -189,14 +189,14 @@ packages:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
version: "3.0.1"
coverage:
dependency: "direct dev"
description:
name: coverage
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
version: "1.0.3"
cross_file:
dependency: transitive
description:
@@ -245,7 +245,7 @@ packages:
name: effective_dart
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
version: "1.3.2"
encrypt:
dependency: "direct main"
description:
@@ -259,7 +259,7 @@ packages:
name: equatable
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.3"
expandable:
dependency: "direct main"
description:
@@ -273,21 +273,21 @@ packages:
name: ffi
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.1.2"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.0"
version: "6.1.2"
file_picker:
dependency: "direct main"
description:
name: file_picker
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
version: "3.0.3"
file_selector_macos:
dependency: "direct main"
description:
@@ -315,119 +315,119 @@ packages:
name: firebase_analytics
url: "https://pub.dartlang.org"
source: hosted
version: "8.0.3"
version: "8.1.2"
firebase_analytics_platform_interface:
dependency: transitive
description:
name: firebase_analytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.1"
firebase_analytics_web:
dependency: transitive
description:
name: firebase_analytics_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
version: "0.3.0+1"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
version: "2.0.0"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.1"
version: "5.0.0"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
version: "2.0.0"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.3.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.0"
version: "4.0.1"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
version: "1.1.0"
firebase_crashlytics:
dependency: "direct main"
description:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
version: "2.0.7"
firebase_crashlytics_platform_interface:
dependency: transitive
description:
name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.2"
version: "3.0.6"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
url: "https://pub.dartlang.org"
source: hosted
version: "9.1.3"
version: "10.0.3"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.3"
version: "3.0.2"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.6"
version: "2.0.2"
firebase_storage:
dependency: "direct main"
description:
name: firebase_storage
url: "https://pub.dartlang.org"
source: hosted
version: "8.0.5"
version: "9.0.0"
firebase_storage_platform_interface:
dependency: transitive
description:
name: firebase_storage_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
version: "3.0.0"
firebase_storage_web:
dependency: transitive
description:
name: firebase_storage_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
version: "2.0.0"
fixnum:
dependency: transitive
description:
@@ -441,7 +441,7 @@ packages:
name: fl_chart
url: "https://pub.dartlang.org"
source: hosted
version: "0.36.0"
version: "0.36.2"
flash:
dependency: "direct main"
description:
@@ -479,14 +479,14 @@ packages:
name: flutter_native_splash
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.8+4"
version: "1.2.0"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
flutter_spinkit:
dependency: "direct main"
description:
@@ -540,7 +540,7 @@ packages:
name: hive_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.1.0"
hive_generator:
dependency: "direct dev"
description:
@@ -554,7 +554,7 @@ packages:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.2"
version: "0.13.3"
http_multi_server:
dependency: transitive
description:
@@ -589,7 +589,7 @@ packages:
name: infinite_scroll_pagination
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
version: "3.0.1+1"
intl:
dependency: "direct main"
description:
@@ -638,7 +638,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
version: "1.4.0"
mime:
dependency: transitive
description:
@@ -673,7 +673,7 @@ packages:
name: node_preamble
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.1"
overseerr:
dependency: "direct main"
description:
@@ -694,14 +694,14 @@ packages:
name: package_info_plus
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.3"
package_info_plus_linux:
dependency: transitive
description:
name: package_info_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.2"
package_info_plus_macos:
dependency: transitive
description:
@@ -722,14 +722,14 @@ packages:
name: package_info_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.2"
package_info_plus_windows:
dependency: transitive
description:
name: package_info_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.2"
path:
dependency: transitive
description:
@@ -743,7 +743,7 @@ packages:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
path_provider_linux:
dependency: transitive
description:
@@ -778,7 +778,7 @@ packages:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.0"
version: "1.11.1"
percent_indicator:
dependency: "direct main"
description:
@@ -792,7 +792,7 @@ packages:
name: petitparser
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.0"
version: "4.2.0"
platform:
dependency: transitive
description:
@@ -813,7 +813,7 @@ packages:
name: pointycastle
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
version: "3.1.3"
pool:
dependency: transitive
description:
@@ -855,7 +855,7 @@ packages:
name: quick_actions
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.0+1"
version: "0.6.0+2"
quick_actions_platform_interface:
dependency: transitive
description:
@@ -883,21 +883,21 @@ packages:
name: share_plus
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
version: "2.1.4"
share_plus_linux:
dependency: transitive
description:
name: share_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.3"
share_plus_macos:
dependency: transitive
description:
name: share_plus_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
share_plus_platform_interface:
dependency: transitive
description:
@@ -911,21 +911,21 @@ packages:
name: share_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.4"
share_plus_windows:
dependency: transitive
description:
name: share_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.3"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
version: "2.0.6"
shared_preferences_linux:
dependency: transitive
description:
@@ -967,7 +967,7 @@ packages:
name: shelf
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
version: "1.1.4"
shelf_packages_handler:
dependency: transitive
description:
@@ -1007,7 +1007,7 @@ packages:
name: sliver_tools
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.2"
version: "0.2.5"
sonarr:
dependency: "direct main"
description:
@@ -1021,7 +1021,7 @@ packages:
name: source_gen
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.0.2"
source_helper:
dependency: transitive
description:
@@ -1098,7 +1098,7 @@ packages:
name: table_calendar
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
version: "3.0.1"
tautulli:
dependency: "direct main"
description:
@@ -1119,21 +1119,21 @@ packages:
name: test
url: "https://pub.dartlang.org"
source: hosted
version: "1.17.3"
version: "1.17.9"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.0"
version: "0.4.1"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.23"
version: "0.3.29"
timing:
dependency: transitive
description:
@@ -1168,7 +1168,7 @@ packages:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.3"
version: "6.0.8"
url_launcher_linux:
dependency: transitive
description:
@@ -1189,14 +1189,14 @@ packages:
name: url_launcher_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
version: "2.0.3"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.1"
url_launcher_windows:
dependency: transitive
description:
@@ -1224,7 +1224,7 @@ packages:
name: vm_service
url: "https://pub.dartlang.org"
source: hosted
version: "6.2.0"
version: "7.1.0"
wake_on_lan:
dependency: "direct main"
description:
@@ -1245,7 +1245,7 @@ packages:
name: web_socket_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.0"
webkit_inspection_protocol:
dependency: transitive
description:
@@ -1259,7 +1259,7 @@ packages:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
version: "2.2.4"
window_size:
dependency: "direct main"
description:
@@ -1282,7 +1282,7 @@ packages:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "5.1.0"
version: "5.1.2"
yaml:
dependency: transitive
description:
@@ -1291,5 +1291,5 @@ packages:
source: hosted
version: "3.1.0"
sdks:
dart: ">=2.12.0 <3.0.0"
dart: ">=2.13.0 <3.0.0"
flutter: ">=2.0.0"

View File

@@ -8,69 +8,70 @@ environment:
dependencies:
flutter:
sdk: flutter
badges: ^1.2.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
cloud_firestore: ^1.0.7 # ANDROID IOS MACOS WEB
convert: ^3.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
dio: ^4.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
easy_localization: ^3.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
effective_dart: ^1.3.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
encrypt: ^5.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
expandable: ^5.0.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
file_picker: ^3.0.1 # ANDROID IOS WEB
file_selector_macos: ^0.0.4 # MACOS
file_selector_platform_interface: ^2.0.2 # ANDROID IOS LINUX MACOS WEB WINDOWS
firebase_analytics: ^8.0.3 # ANDROID IOS WEB
firebase_auth: ^1.1.3 # ANDROID IOS MACOS WEB
firebase_core: ^1.1.0 # ANDROID IOS MACOS WEB
firebase_crashlytics: ^2.0.2 # ANDROID IOS MACOS
firebase_messaging: ^9.1.3 # ANDROID IOS MACOS WEB
firebase_storage: ^8.0.5 # ANDROID IOS MACOS WEB
flash: 1.5.2 # ANDROID IOS LINUX MACOS WEB WINDOWS
fluro: ^2.0.3 # ANDROID IOS LINUX MACOS WEB WINDOWS
flutter_spinkit: ^5.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
fl_chart: ^0.36.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
# font_awesome_flutter: # ANDROID IOS LINUX MACOS WEB WINDOWS
# path: vendor/font_awesome_flutter
google_nav_bar: ^5.0.5 # ANDROID IOS LINUX MACOS WEB WINDOWS
hive: ^2.0.4 # ANDROID IOS LINUX MACOS WEB WINDOWS
hive_flutter: ^1.0.0 # ANDROID IOS LINUX MACOS WINDOWS
in_app_purchase: ^0.5.2 # ANDROID IOS
infinite_scroll_pagination: ^3.0.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
intl: ^0.17.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
modal_bottom_sheet: ^2.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
overseerr: ^0.0.1-pre.5 # ANDROID IOS LINUX MACOS WEB WINDOWS
package_info_plus: ^1.0.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
path_provider: ^2.0.1 # ANDROID IOS LINUX MACOS WINDOWS
percent_indicator: ^3.0.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
provider: ^5.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
quick_actions: ^0.6.0+1 # ANDROID IOS
radarr: ^2.1.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
share_plus: ^2.0.3 # ANDROID IOS LINUX MACOS WEB WINDOWS
sonarr: ^2.0.1 # ANDROID IOS LINUX MACOS WEB WINDOWS
stack_trace: ^1.10.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
supercharged: ^2.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
table_calendar: ^3.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
tautulli: ^2.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
tuple: ^2.0.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
url_launcher: ^6.0.3 # ANDROID IOS LINUX MACOS WEB WINDOWS
uuid: ^3.0.4 # ANDROID IOS LINUX MACOS WEB WINDOWS
wake_on_lan: ^2.0.1+1 # ANDROID IOS LINUX MACOS WINDOWS
window_size: # LINUX MACOS WINDOWS
badges: ^2.0.1
cloud_firestore: ^1.0.7
convert: ^3.0.1
dio: ^4.0.0
easy_localization: ^3.0.0
effective_dart: ^1.3.2
encrypt: ^5.0.0
expandable: ^5.0.1
file_picker: ^3.0.3
file_selector_macos: ^0.0.4
file_selector_platform_interface: ^2.0.2
firebase_analytics: ^8.1.2
firebase_auth: ^2.0.0
firebase_core: ^1.3.0
firebase_crashlytics: ^2.0.7
firebase_messaging: ^10.0.3
firebase_storage: ^9.0.0
flash: 1.5.2
fluro: ^2.0.3
flutter_spinkit: ^5.0.0
fl_chart: ^0.36.2
google_nav_bar: ^5.0.5
hive: ^2.0.4
hive_flutter: ^1.1.0
in_app_purchase: ^0.5.2
infinite_scroll_pagination: ^3.0.1+1
intl: ^0.17.0
modal_bottom_sheet: ^2.0.0
overseerr: ^0.0.1-pre.5
package_info_plus: ^1.0.3
path_provider: ^2.0.1
percent_indicator: ^3.0.1
provider: ^5.0.0
quick_actions: ^0.6.0+2
radarr: ^2.1.1
share_plus: ^2.1.4
sonarr: ^2.0.1
stack_trace: ^1.10.0
supercharged: ^2.0.0
table_calendar: ^3.0.1
tautulli: ^2.0.0
tuple: ^2.0.0
url_launcher: ^6.0.3
uuid: ^3.0.4
wake_on_lan: ^2.0.1+1
window_size:
git:
url: git://github.com/google/flutter-desktop-embedding.git
path: plugins/window_size
ref: 57a2cd88486105d3d813583339eb0e23c9bfd6d2
xml: ^5.1.0 # ANDROID IOS LINUX MACOS WEB WINDOWS
xml: ^5.1.2
dev_dependencies:
build_runner: ^1.12.2
coverage: ^1.0.2
coverage: ^1.0.3
flutter_launcher_icons: ^0.9.0
flutter_native_splash: ^1.1.8+4
flutter_native_splash: ^1.2.0
hive_generator: ^1.1.0
mockito: ^5.0.7
test: ^1.17.3
dependency_overrides:
args: ^2.1.1
flutter:
uses-material-design: true
assets:

View File

@@ -1,12 +0,0 @@
.DS_Store
.atom/
.idea
.packages
.dart_tool/
.pub/
build/
ios/.generated/
packages
pubspec.lock
.flutter-plugins
local.properties

View File

@@ -1,23 +0,0 @@
MIT License
Copyright (c) 2017 Brian Egan
Font Awesome Icons by @fontawesome - https://fontawesome.com
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,71 +0,0 @@
import 'package:flutter/widgets.dart';
import 'package:font_awesome_flutter/src/fa_icon.dart';
import 'package:font_awesome_flutter/src/icon_data.dart';
/// Special icon style which can have two colors
class FaDuotoneIcon extends StatelessWidget {
/// The icon to display. The available icons are described in
/// [FontAwesomeIcons]. Applicable icons start with "duotone".
final IconDataDuotone icon;
/// The font size of the icon.
///
/// Defaults to the current [IconTheme] size, if any. If there is no
/// [IconTheme], or it does not specify an explicit size, then it defaults to
/// 24.0.
///
/// If this [FaIcon] is being placed inside an [IconButton], then use
/// [IconButton.iconSize] instead, so that the [IconButton] can make the
/// splash area the appropriate size as well. The [IconButton] uses an
/// [IconTheme] to pass down the size to the [FaIcon].
final double? size;
/// Color used for the icon's main body
final Color? primaryColor;
/// Color used for the icon's accents
final Color? secondaryColor;
/// Semantic label for the icon.
///
/// Announced in accessibility modes (e.g TalkBack/VoiceOver).
/// This label does not show in the UI.
///
/// See also:
///
/// * [Semantics.label], which is set to [semanticLabel] in the underlying
/// [Semantics] widget.
final String? semanticLabel;
const FaDuotoneIcon(
this.icon, {
Key? key,
this.size,
this.primaryColor,
this.secondaryColor,
this.semanticLabel,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Semantics(
label: semanticLabel,
child: Stack(
children: <Widget>[
FaIcon(
icon,
size: size,
color: primaryColor,
key: Key("primaryGlyph"),
),
FaIcon(
icon.secondary,
size: size,
color: secondaryColor,
key: Key("secondaryGlyph"),
),
],
),
);
}
}

View File

@@ -1,148 +0,0 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
/// Creates an Icon Widget that works for non-material Icons, such as the
/// Font Awesome Icons.
///
/// The default `Icon` Widget from the Material package assumes all Icons are
/// square in size and wraps all Icons in a square SizedBox Widget. Icons from
/// the FontAwesome package are often wider than they are tall, which causes
/// alignment and cutoff issues.
///
/// This Widget does not wrap the icons in a fixed square box, which allows the
/// icons to render based on their size.
class FaIcon extends StatelessWidget {
/// Creates an icon.
///
/// The [size] and [color] default to the value given by the current [IconTheme].
const FaIcon(
this.icon, {
Key? key,
this.size,
this.color,
this.semanticLabel,
this.textDirection,
}) : assert(icon != null),
super(key: key);
/// The icon to display. The available icons are described in
/// [FontAwesomeIcons].
final IconData? icon;
/// The font size of the icon.
///
/// Defaults to the current [IconTheme] size, if any. If there is no
/// [IconTheme], or it does not specify an explicit size, then it defaults to
/// 24.0.
///
/// If this [FaIcon] is being placed inside an [IconButton], then use
/// [IconButton.iconSize] instead, so that the [IconButton] can make the
/// splash area the appropriate size as well. The [IconButton] uses an
/// [IconTheme] to pass down the size to the [FaIcon].
final double? size;
/// The color to use when drawing the icon.
///
/// Defaults to the current [IconTheme] color, if any.
///
/// The given color will be adjusted by the opacity of the current
/// [IconTheme], if any.
final Color? color;
/// Semantic label for the icon.
///
/// Announced in accessibility modes (e.g TalkBack/VoiceOver).
/// This label does not show in the UI.
///
/// See also:
///
/// * [Semantics.label], which is set to [semanticLabel] in the underlying
/// [Semantics] widget.
final String? semanticLabel;
/// The text direction to use for rendering the icon.
///
/// If this is null, the ambient [Directionality] is used instead.
///
/// Some icons follow the reading direction. For example, "back" buttons point
/// left in left-to-right environments and right in right-to-left
/// environments. Such icons have their [IconData.matchTextDirection] field
/// set to true, and the [FaIcon] widget uses the [textDirection] to determine
/// the orientation in which to draw the icon.
///
/// This property has no effect if the [icon]'s [IconData.matchTextDirection]
/// field is false, but for consistency a text direction value must always be
/// specified, either directly using this property or using [Directionality].
final TextDirection? textDirection;
@override
Widget build(BuildContext context) {
assert(this.textDirection != null || debugCheckHasDirectionality(context));
final TextDirection textDirection =
this.textDirection ?? Directionality.of(context);
final IconThemeData iconTheme = IconTheme.of(context);
final double? iconSize = size ?? iconTheme.size;
if (icon == null) {
return Semantics(
label: semanticLabel,
child: SizedBox(width: iconSize, height: iconSize),
);
}
final double iconOpacity = iconTheme.opacity ?? 1.0;
Color iconColor = color ?? iconTheme.color!;
if (iconOpacity != 1.0)
iconColor = iconColor.withOpacity(iconColor.opacity * iconOpacity);
Widget iconWidget = RichText(
overflow: TextOverflow.visible, // Never clip.
textDirection:
textDirection, // Since we already fetched it for the assert...
text: TextSpan(
text: String.fromCharCode(icon!.codePoint),
style: TextStyle(
inherit: false,
color: iconColor,
fontSize: iconSize,
fontFamily: icon!.fontFamily,
package: icon!.fontPackage,
),
),
);
if (icon!.matchTextDirection) {
switch (textDirection) {
case TextDirection.rtl:
iconWidget = Transform(
transform: Matrix4.identity()..scale(-1.0, 1.0, 1.0),
alignment: Alignment.center,
transformHitTests: false,
child: iconWidget,
);
break;
case TextDirection.ltr:
break;
}
}
return Semantics(
label: semanticLabel,
child: ExcludeSemantics(
child: iconWidget,
),
);
}
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties.add(
IconDataProperty('icon', icon, ifNull: '<empty>', showName: false));
properties.add(DoubleProperty('size', size, defaultValue: null));
properties.add(ColorProperty('color', color, defaultValue: null));
}
}

View File

@@ -1,85 +0,0 @@
library font_awesome_flutter;
import 'package:flutter/widgets.dart';
/// [IconData] for a font awesome brand icon from a code point
///
/// Code points can be obtained from fontawesome.com
class IconDataBrands extends IconData {
const IconDataBrands(int codePoint)
: super(
codePoint,
fontFamily: 'FontAwesomeBrands',
fontPackage: 'font_awesome_flutter',
);
}
/// [IconData] for a font awesome solid icon from a code point
///
/// Code points can be obtained from fontawesome.com
class IconDataSolid extends IconData {
const IconDataSolid(int codePoint)
: super(
codePoint,
fontFamily: 'FontAwesomeSolid',
fontPackage: 'font_awesome_flutter',
);
}
/// [IconData] for a font awesome regular icon from a code point
///
/// Code points can be obtained from fontawesome.com
class IconDataRegular extends IconData {
const IconDataRegular(int codePoint)
: super(
codePoint,
fontFamily: 'FontAwesomeRegular',
fontPackage: 'font_awesome_flutter',
);
}
/// [IconData] for a font awesome light icon from a code point. Only works if
/// light icons (font awesome pro) have been installed.
///
/// Code points can be obtained from fontawesome.com
class IconDataLight extends IconData {
const IconDataLight(int codePoint)
: super(
codePoint,
fontFamily: 'FontAwesomeLight',
fontPackage: 'font_awesome_flutter',
);
}
/// [IconData] for a font awesome duotone icon from a code point. Only works if
/// duotone icons (font awesome pro) have been installed.
///
/// Code points can be obtained from fontawesome.com. Each duotone icon consists
/// of a primary [codePoint] and a [secondary].
class IconDataDuotone extends IconData {
/// Secondary glyph of the duotone icon
///
/// Due to tree-shaking restraints [secondary] cannot be the codepoint itself,
/// but has to be an [IconData] object.
final IconData? secondary;
const IconDataDuotone(int codePoint, {this.secondary})
: super(
codePoint,
fontFamily: 'FontAwesomeDuotone',
fontPackage: 'font_awesome_flutter',
);
}
/// [IconData] for a font awesome thin icon from a code point. Only works if
/// thin icons (font awesome pro, v6+) have been installed.
///
/// Code points can be obtained from fontawesome.com
class IconDataThin extends IconData {
const IconDataThin(int codePoint)
: super(
codePoint,
fontFamily: 'FontAwesomeThin',
fontPackage: 'font_awesome_flutter',
);
}

View File

@@ -1,49 +0,0 @@
name: font_awesome_flutter
description: The Font Awesome Icon pack available as Flutter Icons. Provides 1500 additional icons to use in your apps.
maintainer: Michael Spiss (@michaelspiss)
homepage: https://github.com/fluttercommunity/font_awesome_flutter
version: 9.0.0
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
dev_dependencies:
recase: ^4.0.0-nullsafety
flutter_test:
sdk: flutter
version: ^2.0.0
flutter:
fonts:
- family: FontAwesomeBrands
fonts:
- asset: lib/fonts/fa-brands-400.ttf
weight: 400
- family: FontAwesomeRegular
fonts:
- asset: lib/fonts/fa-regular-400.ttf
weight: 400
- family: FontAwesomeSolid
fonts:
- asset: lib/fonts/fa-solid-900.ttf
weight: 900
# Uncomment the following lines to support pro icons
- family: FontAwesomeLight
fonts:
- asset: lib/fonts/fa-light-300.ttf
weight: 300
# Leave commented out if you don't own duotone icons
- family: FontAwesomeDuotone
fonts:
- asset: lib/fonts/fa-duotone-900.ttf
weight: 900
# Thin style is available in font awesome pro 6 and beyond
# Leave commented out if you don't own version 6
- family: FontAwesomeThin
fonts:
- asset: lib/fonts/fa-thin-100.ttf
weight: 100

View File

@@ -1,87 +0,0 @@
import 'dart:convert';
import 'dart:io';
import 'package:recase/recase.dart';
const Map<String, String> nameAdjustments = {
"500px": "fiveHundredPx",
"360-degrees": "threeHundredSixtyDegrees",
"1": "one",
"2": "two",
"3": "three",
"4": "four",
"5": "five",
"6": "six",
"7": "seven",
"8": "eight",
"9": "nine",
"0": "zero",
};
void main(List<String> arguments) {
var file = new File(arguments.first);
if (!file.existsSync()) {
print('Cannot find the file "${arguments.first}".');
}
var content = file.readAsStringSync();
Map<String, dynamic> icons = json.decode(content);
Map<String, String> iconDefinitions = {};
for (String iconName in icons.keys) {
var icon = icons[iconName];
// At least one icon does not have a glyph in the font files. This property
// is marked with "private": true in icons.json
if ((icon as Map<String, dynamic>).containsKey('private') &&
icon['private']) continue;
List<String> styles = (icon['styles'] as List).cast<String>();
if (styles.length > 1) {
if (styles.contains('regular')) {
styles.remove('regular');
iconDefinitions[iconName] = generateExampleIcon(iconName);
}
for (String style in styles) {
String name = '${style}_$iconName';
iconDefinitions[name] = generateExampleIcon(name);
}
} else {
iconDefinitions[iconName] = generateExampleIcon(iconName);
}
}
List<String> generatedOutput = [
'',
"import 'package:font_awesome_flutter/font_awesome_flutter.dart';",
"import 'package:font_awesome_flutter_example/example_icon.dart';",
'',
'// THIS FILE IS AUTOMATICALLY GENERATED!',
'',
'final icons = <ExampleIcon>[',
];
generatedOutput.addAll(iconDefinitions.values);
generatedOutput.add('];');
File output = new File('example/lib/icons.dart');
output.writeAsStringSync(generatedOutput.join('\n'));
}
String generateExampleIcon(String iconName) {
if (nameAdjustments.containsKey(iconName)) {
iconName = nameAdjustments[iconName]!;
}
iconName = new ReCase(iconName).camelCase;
if (iconName.contains('duotone')) {
return " ExampleIcon(null, FontAwesomeIcons.$iconName, '$iconName'),";
} else {
return " ExampleIcon(FontAwesomeIcons.$iconName, null, '$iconName'),";
}
}

View File

@@ -1,204 +0,0 @@
import 'dart:convert';
import 'dart:io';
import 'package:recase/recase.dart';
import 'package:version/version.dart';
const Map<String, String> nameAdjustments = {
"500px": "fiveHundredPx",
"360-degrees": "threeHundredSixtyDegrees",
"1": "one",
"2": "two",
"3": "three",
"4": "four",
"5": "five",
"6": "six",
"7": "seven",
"8": "eight",
"9": "nine",
"0": "zero",
};
void main(List<String> arguments) {
var file = new File(arguments.first);
if (!file.existsSync()) {
print('Cannot find the file "${arguments.first}".');
}
var content = file.readAsStringSync();
Map<String, dynamic> icons = json.decode(content);
Map<String, String> iconDefinitions = {};
bool hasDuotone = false;
// figure out current version
Version highestVersion = Version.parse("0.0.0");
for (String iconName in icons.keys) {
var icon = icons[iconName];
// At least one icon does not have a glyph in the font files. This property
// is marked with "private": true in icons.json
if ((icon as Map<String, dynamic>).containsKey('private') &&
icon['private']) continue;
// compute highest version
var changes = (icon["changes"] as List);
List<Version> versions = changes.map((v) {
// since font awesome does not adhere to semver standards
var partsCount = v.split(".").length;
if (partsCount == 1) {
return v + ".0.0";
} else if (partsCount == 2) {
return v + ".0";
} else if (partsCount == 3) {
return v;
} else {
return "0.0.0";
}
}).map((v) {
try {
return Version.parse(v);
} on FormatException {
return Version.parse("0.0.0");
}
}).toList(growable: true)
..add(highestVersion)
..sort();
highestVersion = versions.last;
var unicode = icon['unicode'];
List<String> styles = (icon['styles'] as List).cast<String>();
if (styles.length > 1) {
if (styles.contains('regular')) {
styles.remove('regular');
iconDefinitions[iconName] = generateIconDefinition(
iconName,
'regular',
unicode,
icon["search"]["terms"],
icon["label"],
);
}
if (styles.contains('duotone')) {
hasDuotone = true;
}
for (String style in styles) {
String name = '${style}_$iconName';
iconDefinitions[name] = generateIconDefinition(
name,
style,
unicode,
icon["search"]["terms"],
icon["label"],
);
}
} else {
iconDefinitions[iconName] = generateIconDefinition(
iconName,
styles.first,
unicode,
icon["search"]["terms"],
icon["label"],
);
}
}
List<String> generatedOutput = [
'library font_awesome_flutter;',
'',
"import 'package:flutter/widgets.dart';",
"import 'package:font_awesome_flutter/src/icon_data.dart';",
"export 'package:font_awesome_flutter/src/fa_icon.dart';",
"export 'package:font_awesome_flutter/src/icon_data.dart';",
"export 'package:font_awesome_flutter/src/fa_duotone_icon.dart';",
];
if (hasDuotone) {
generatedOutput
.add("export 'package:font_awesome_flutter/src/fa_duotone_icon.dart';");
}
generatedOutput.addAll([
'',
'// THIS FILE IS AUTOMATICALLY GENERATED!',
'',
'/// Icons based on font awesome $highestVersion',
'class FontAwesomeIcons {',
]);
generatedOutput.addAll(iconDefinitions.values);
generatedOutput.add('}');
File output = new File('lib/font_awesome_flutter.dart');
output.writeAsStringSync(generatedOutput.join('\n'));
}
String generateIconDocumentation(
String iconName, String style, List searchTerms, String iconLabel) {
searchTerms = searchTerms;
var searchTermsString = searchTerms.toString();
searchTermsString =
searchTermsString.substring(1, searchTermsString.length - 1);
iconName = iconName.replaceFirst("solid_", "");
var doc = '/// ${style.sentenceCase} $iconLabel icon\n'
'///\n'
'/// https://fontawesome.com/icons/$iconName?style=$style';
if (searchTermsString.length != 0) {
doc += '\n/// $searchTermsString';
}
return doc;
}
String generateIconDefinition(String iconName, String style, String unicode,
List searchTerms, String iconLabel) {
if (style == 'duotone') {
return generateDuotoneIconDefinition(
iconName, unicode, searchTerms, iconLabel);
}
String doc =
generateIconDocumentation(iconName, style, searchTerms, iconLabel);
iconName = normalizeIconName(iconName);
String iconDataSource = styleToDataSource(style);
return '$doc\nstatic const IconData $iconName = const $iconDataSource(0x$unicode);';
}
String generateDuotoneIconDefinition(String iconName, String primaryUnicode,
List searchTerms, String iconLabel) {
String doc =
generateIconDocumentation(iconName, "duotone", searchTerms, iconLabel);
iconName = normalizeIconName(iconName);
String secondaryUnicode = (int.parse(primaryUnicode, radix: 16) + 0x100000)
.toRadixString(16)
.toString();
return '$doc\nstatic const IconDataDuotone $iconName = const IconDataDuotone(0x$primaryUnicode, secondary: const IconDataDuotone(0x$secondaryUnicode),);';
}
String normalizeIconName(String iconName) {
iconName = nameAdjustments[iconName] ?? iconName;
return new ReCase(iconName).camelCase;
}
String styleToDataSource(String style) {
style = '${style[0].toUpperCase()}${style.substring(1)}';
return 'IconData$style';
}

View File

@@ -1,25 +0,0 @@
@echo off
if exist icons.json (
echo Custom icons.json found, using local data only.
dart .\tool\generate_font.dart .\icons.json
dart .\tool\generate_example.dart .\icons.json
) else (
echo Updating free icons to newest version.
pushd lib\fonts
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/webfonts/fa-brands-400.ttf', 'fa-brands-400.ttf')"
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/webfonts/fa-regular-400.ttf', 'fa-regular-400.ttf')"
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/webfonts/fa-solid-900.ttf', 'fa-solid-900.ttf')"
popd
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/metadata/icons.json', 'icons.json')"
dart .\tool\generate_font.dart .\icons.json
dart .\tool\generate_example.dart .\icons.json
del "icons.json" /f /q
)
dartfmt -w .\lib\font_awesome_flutter.dart & ^
dartfmt -w .\example\lib\icons.dart

View File

@@ -1,29 +0,0 @@
#!/usr/bin/env bash
if [ -e ./icons.json ];
then
echo "Custom icons.json found, using local data only."
dart ./tool/generate_font.dart ./icons.json
dart ./tool/generate_example.dart ./icons.json
dartfmt -w ./lib/font_awesome_flutter.dart
dartfmt -w ./example/lib/icons.dart
else
echo "Updating icons to newest version."
pushd lib/fonts/
curl -O -L "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/webfonts/fa-brands-400.ttf"
curl -O -L "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/webfonts/fa-regular-400.ttf"
curl -O -L "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/webfonts/fa-solid-900.ttf"
popd
curl -o /tmp/icons.json "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/metadata/icons.json"
dart ./tool/generate_font.dart /tmp/icons.json
dart ./tool/generate_example.dart /tmp/icons.json
dartfmt -w ./lib/font_awesome_flutter.dart
dartfmt -w ./example/lib/icons.dart
rm /tmp/icons.json
fi