diff --git a/analysis_options.yaml b/analysis_options.yaml
index 770b6979..029e023b 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -8,6 +8,9 @@
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
+analyzer:
+ exclude:
+ - lib/**.g.dart
linter:
# The lint rules applied to this project can be customized in the
@@ -31,6 +34,6 @@ linter:
- avoid_redundant_argument_values
- unnecessary_parenthesis
- always_declare_return_types
-
+ - require_trailing_commas
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml
new file mode 100644
index 00000000..a3653cb1
--- /dev/null
+++ b/android/app/src/main/res/values-night-v31/styles.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
index 8c708bcb..dbc9ea9f 100644
--- a/android/app/src/main/res/values-night/styles.xml
+++ b/android/app/src/main/res/values-night/styles.xml
@@ -7,6 +7,8 @@
- @drawable/launch_background
- false
- false
+ - false
+ - shortEdges
+
+
+
+
diff --git a/assets/fonts/Inter-Black.ttf b/assets/fonts/Inter-Black.ttf
index 37742709..b27822ba 100644
Binary files a/assets/fonts/Inter-Black.ttf and b/assets/fonts/Inter-Black.ttf differ
diff --git a/assets/fonts/Inter-Bold.ttf b/assets/fonts/Inter-Bold.ttf
index 76a215cc..fe23eeb9 100644
Binary files a/assets/fonts/Inter-Bold.ttf and b/assets/fonts/Inter-Bold.ttf differ
diff --git a/assets/fonts/Inter-ExtraBold.ttf b/assets/fonts/Inter-ExtraBold.ttf
index 7ae3a4e8..874b1b0d 100644
Binary files a/assets/fonts/Inter-ExtraBold.ttf and b/assets/fonts/Inter-ExtraBold.ttf differ
diff --git a/assets/fonts/Inter-ExtraLight.ttf b/assets/fonts/Inter-ExtraLight.ttf
index 131929e5..c993e822 100644
Binary files a/assets/fonts/Inter-ExtraLight.ttf and b/assets/fonts/Inter-ExtraLight.ttf differ
diff --git a/assets/fonts/Inter-Light.ttf b/assets/fonts/Inter-Light.ttf
index b9c460dc..71188f5c 100644
Binary files a/assets/fonts/Inter-Light.ttf and b/assets/fonts/Inter-Light.ttf differ
diff --git a/assets/fonts/Inter-Medium.ttf b/assets/fonts/Inter-Medium.ttf
index 06ae9e9c..a01f3777 100644
Binary files a/assets/fonts/Inter-Medium.ttf and b/assets/fonts/Inter-Medium.ttf differ
diff --git a/assets/fonts/Inter-Regular.ttf b/assets/fonts/Inter-Regular.ttf
index cc73944a..5e4851f0 100644
Binary files a/assets/fonts/Inter-Regular.ttf and b/assets/fonts/Inter-Regular.ttf differ
diff --git a/assets/fonts/Inter-SemiBold.ttf b/assets/fonts/Inter-SemiBold.ttf
index 278ceaa3..ecc7041e 100644
Binary files a/assets/fonts/Inter-SemiBold.ttf and b/assets/fonts/Inter-SemiBold.ttf differ
diff --git a/assets/fonts/Inter-Thin.ttf b/assets/fonts/Inter-Thin.ttf
index e12ed497..fe77243f 100644
Binary files a/assets/fonts/Inter-Thin.ttf and b/assets/fonts/Inter-Thin.ttf differ
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 186821bb..93395104 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -3,38 +3,38 @@ PODS:
- Flutter
- device_info_plus (0.0.1):
- Flutter
- - Firebase/Analytics (10.10.0):
+ - Firebase/Analytics (10.15.0):
- Firebase/Core
- - Firebase/Core (10.10.0):
+ - Firebase/Core (10.15.0):
- Firebase/CoreOnly
- - FirebaseAnalytics (~> 10.10.0)
- - Firebase/CoreOnly (10.10.0):
- - FirebaseCore (= 10.10.0)
- - Firebase/Crashlytics (10.10.0):
+ - FirebaseAnalytics (~> 10.15.0)
+ - Firebase/CoreOnly (10.15.0):
+ - FirebaseCore (= 10.15.0)
+ - Firebase/Crashlytics (10.15.0):
- Firebase/CoreOnly
- - FirebaseCrashlytics (~> 10.10.0)
- - Firebase/Performance (10.10.0):
+ - FirebaseCrashlytics (~> 10.15.0)
+ - Firebase/Performance (10.15.0):
- Firebase/CoreOnly
- - FirebasePerformance (~> 10.10.0)
- - firebase_analytics (10.4.3):
- - Firebase/Analytics (= 10.10.0)
+ - FirebasePerformance (~> 10.15.0)
+ - firebase_analytics (10.6.0):
+ - Firebase/Analytics (= 10.15.0)
- firebase_core
- Flutter
- - firebase_core (2.14.0):
- - Firebase/CoreOnly (= 10.10.0)
+ - firebase_core (2.18.0):
+ - Firebase/CoreOnly (= 10.15.0)
- Flutter
- - firebase_crashlytics (3.3.3):
- - Firebase/Crashlytics (= 10.10.0)
+ - firebase_crashlytics (3.4.0):
+ - Firebase/Crashlytics (= 10.15.0)
- firebase_core
- Flutter
- - firebase_performance (0.9.2-3):
- - Firebase/Performance (= 10.10.0)
+ - firebase_performance (0.9.3):
+ - Firebase/Performance (= 10.15.0)
- firebase_core
- Flutter
- - FirebaseABTesting (10.11.0):
+ - FirebaseABTesting (10.16.0):
- FirebaseCore (~> 10.0)
- - FirebaseAnalytics (10.10.0):
- - FirebaseAnalytics/AdIdSupport (= 10.10.0)
+ - FirebaseAnalytics (10.15.0):
+ - FirebaseAnalytics/AdIdSupport (= 10.15.0)
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
@@ -42,24 +42,24 @@ PODS:
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- - FirebaseAnalytics/AdIdSupport (10.10.0):
+ - FirebaseAnalytics/AdIdSupport (10.15.0):
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- - GoogleAppMeasurement (= 10.10.0)
+ - GoogleAppMeasurement (= 10.15.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- - FirebaseCore (10.10.0):
+ - FirebaseCore (10.15.0):
- FirebaseCoreInternal (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/Logger (~> 7.8)
- - FirebaseCoreExtension (10.11.0):
+ - FirebaseCoreExtension (10.16.0):
- FirebaseCore (~> 10.0)
- - FirebaseCoreInternal (10.11.0):
+ - FirebaseCoreInternal (10.16.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)"
- - FirebaseCrashlytics (10.10.0):
+ - FirebaseCrashlytics (10.15.0):
- FirebaseCore (~> 10.5)
- FirebaseInstallations (~> 10.0)
- FirebaseSessions (~> 10.5)
@@ -67,12 +67,12 @@ PODS:
- GoogleUtilities/Environment (~> 7.8)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (~> 2.1)
- - FirebaseInstallations (10.11.0):
+ - FirebaseInstallations (10.16.0):
- FirebaseCore (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8)
- PromisesObjC (~> 2.1)
- - FirebasePerformance (10.10.0):
+ - FirebasePerformance (10.15.0):
- FirebaseCore (~> 10.5)
- FirebaseInstallations (~> 10.0)
- FirebaseRemoteConfig (~> 10.0)
@@ -82,13 +82,13 @@ PODS:
- GoogleUtilities/ISASwizzler (~> 7.8)
- GoogleUtilities/MethodSwizzler (~> 7.8)
- nanopb (< 2.30910.0, >= 2.30908.0)
- - FirebaseRemoteConfig (10.11.0):
+ - FirebaseRemoteConfig (10.16.0):
- FirebaseABTesting (~> 10.0)
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- "GoogleUtilities/NSData+zlib (~> 7.8)"
- - FirebaseSessions (10.11.0):
+ - FirebaseSessions (10.16.0):
- FirebaseCore (~> 10.5)
- FirebaseCoreExtension (~> 10.0)
- FirebaseInstallations (~> 10.0)
@@ -104,49 +104,49 @@ PODS:
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- - GoogleAppMeasurement (10.10.0):
- - GoogleAppMeasurement/AdIdSupport (= 10.10.0)
+ - GoogleAppMeasurement (10.15.0):
+ - GoogleAppMeasurement/AdIdSupport (= 10.15.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- - GoogleAppMeasurement/AdIdSupport (10.10.0):
- - GoogleAppMeasurement/WithoutAdIdSupport (= 10.10.0)
+ - GoogleAppMeasurement/AdIdSupport (10.15.0):
+ - GoogleAppMeasurement/WithoutAdIdSupport (= 10.15.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- - GoogleAppMeasurement/WithoutAdIdSupport (10.10.0):
+ - GoogleAppMeasurement/WithoutAdIdSupport (10.15.0):
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- - GoogleDataTransport (9.2.3):
+ - GoogleDataTransport (9.2.5):
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2)
- - GoogleUtilities/AppDelegateSwizzler (7.11.1):
+ - GoogleUtilities/AppDelegateSwizzler (7.11.5):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- - GoogleUtilities/Environment (7.11.1):
+ - GoogleUtilities/Environment (7.11.5):
- PromisesObjC (< 3.0, >= 1.2)
- - GoogleUtilities/ISASwizzler (7.11.1)
- - GoogleUtilities/Logger (7.11.1):
+ - GoogleUtilities/ISASwizzler (7.11.5)
+ - GoogleUtilities/Logger (7.11.5):
- GoogleUtilities/Environment
- - GoogleUtilities/MethodSwizzler (7.11.1):
+ - GoogleUtilities/MethodSwizzler (7.11.5):
- GoogleUtilities/Logger
- - GoogleUtilities/Network (7.11.1):
+ - GoogleUtilities/Network (7.11.5):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- - "GoogleUtilities/NSData+zlib (7.11.1)"
- - GoogleUtilities/Reachability (7.11.1):
+ - "GoogleUtilities/NSData+zlib (7.11.5)"
+ - GoogleUtilities/Reachability (7.11.5):
- GoogleUtilities/Logger
- - GoogleUtilities/UserDefaults (7.11.1):
+ - GoogleUtilities/UserDefaults (7.11.5):
- GoogleUtilities/Logger
- in_app_review (0.2.0):
- Flutter
@@ -160,9 +160,9 @@ PODS:
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- - PromisesObjC (2.2.0)
- - PromisesSwift (2.2.0):
- - PromisesObjC (= 2.2.0)
+ - PromisesObjC (2.3.1)
+ - PromisesSwift (2.3.1):
+ - PromisesObjC (= 2.3.1)
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
@@ -171,7 +171,7 @@ PODS:
- FMDB (>= 2.7.5)
- url_launcher_ios (0.0.1):
- Flutter
- - wakelock (0.0.1):
+ - wakelock_plus (0.0.1):
- Flutter
- webview_flutter_wkwebview (0.0.1):
- Flutter
@@ -192,7 +192,7 @@ DEPENDENCIES:
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- - wakelock (from `.symlinks/plugins/wakelock/ios`)
+ - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
SPEC REPOS:
@@ -247,48 +247,48 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/sqflite/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
- wakelock:
- :path: ".symlinks/plugins/wakelock/ios"
+ wakelock_plus:
+ :path: ".symlinks/plugins/wakelock_plus/ios"
webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
SPEC CHECKSUMS:
advanced_in_app_review: fe8fd50b8670cb3dbe67e4c26ca643f7aea8dbb8
- device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
- Firebase: facd334e557a979bd03a0b58d90fd56b52b8aba0
- firebase_analytics: 1a5ad75876257318ba5fdc6bf7aae73b6e98d0cf
- firebase_core: 85b6664038311940ad60584eaabc73103c61f5de
- firebase_crashlytics: cd12245f604099a4ef6557fb36490abe309a118a
- firebase_performance: 1e6496ae6464861c0ed1bcda8c0d9b7440469502
- FirebaseABTesting: 3f6b711718feb87346dc05f8c964601bc8fb2cf6
- FirebaseAnalytics: 7bc7de519111dae802f5bc0c9c083918f8b8870d
- FirebaseCore: d027ff503d37edb78db98429b11f580a24a7df2a
- FirebaseCoreExtension: cacdad57fdb60e0b86dcbcac058ec78237946759
- FirebaseCoreInternal: 9e46c82a14a3b3a25be4e1e151ce6d21536b89c0
- FirebaseCrashlytics: bc8f3bed7f4d04be79d87391455efb4c9b163131
- FirebaseInstallations: 2a2c6859354cbec0a228a863d4daf6de7c74ced4
- FirebasePerformance: 7ae687b2d6e9656ecd62847053d61adcc96ba544
- FirebaseRemoteConfig: 5f907cd5cf6f64d026c8bfd196a1086cbe1e95e2
- FirebaseSessions: a62ba5c45284adb7714f4126cfbdb32b17c260bd
+ device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
+ Firebase: 66043bd4579e5b73811f96829c694c7af8d67435
+ firebase_analytics: 6b016f3d8e86fec024f1a495834ae30d44fe4fe2
+ firebase_core: 49fd2395e3fbbf63f453888c8e9f42f541f4c11c
+ firebase_crashlytics: af0e347e4ab14d45da977c485568b0f0f1e697bb
+ firebase_performance: 1ecc6dc781c1cc9be43837ca5b9cdc517b55dfe6
+ FirebaseABTesting: 03f0a8b88cf618350527f2c6a2234e29b9c65064
+ FirebaseAnalytics: 47cef43728f81a839cf1306576bdd77ffa2eac7e
+ FirebaseCore: 2cec518b43635f96afe7ac3a9c513e47558abd2e
+ FirebaseCoreExtension: 2dbc745b337eb99d2026a7a309ae037bd873f45e
+ FirebaseCoreInternal: 26233f705cc4531236818a07ac84d20c333e505a
+ FirebaseCrashlytics: a83f26fb922a3fe181eb738fb4dcf0c92bba6455
+ FirebaseInstallations: b822f91a61f7d1ba763e5ccc9d4f2e6f2ed3b3ee
+ FirebasePerformance: b7988bc06c87e9c3b9e6b1ae854cd460b646ebd6
+ FirebaseRemoteConfig: 17ec974c6cac5cdc6cf8297062c2219851857f06
+ FirebaseSessions: 96e7781e545929cde06dd91088ddbb0841391b43
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
- GoogleAppMeasurement: bbbfd4bcb2b40ae9b772c3b0823a58c1e3d618f9
- GoogleDataTransport: f0308f5905a745f94fb91fea9c6cbaf3831cb1bd
- GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749
+ GoogleAppMeasurement: 722db6550d1e6d552b08398b69a975ac61039338
+ GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2
+ GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084
in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
- package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
- path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8
- PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef
- PromisesSwift: cf9eb58666a43bbe007302226e510b16c1e10959
- shared_preferences_foundation: e2dae3258e06f44cc55f49d42024fd8dd03c590c
+ package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
+ path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
+ PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4
+ PromisesSwift: 28dca69a9c40779916ac2d6985a0192a5cb4a265
+ shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
- wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f
+ wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47
webview_flutter_wkwebview: 2e2d318f21a5e036e2c3f26171342e95908bd60a
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
-COCOAPODS: 1.11.3
+COCOAPODS: 1.13.0
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 120ffc53..2fc87b86 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -159,7 +159,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1300;
+ LastUpgradeCheck = 1430;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index c87d15a3..a6b826db 100644
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@
[];
- emoteToUrl.addAll(result.channelEmotes
- .map((emote) => Emote.fromBTTV(emote, EmoteType.bttvChannel)));
- emoteToUrl.addAll(result.sharedEmotes
- .map((emote) => Emote.fromBTTV(emote, EmoteType.bttvShared)));
+ emoteToUrl.addAll(
+ result.channelEmotes
+ .map((emote) => Emote.fromBTTV(emote, EmoteType.bttvChannel)),
+ );
+ emoteToUrl.addAll(
+ result.sharedEmotes
+ .map((emote) => Emote.fromBTTV(emote, EmoteType.bttvShared)),
+ );
return emoteToUrl;
} else {
@@ -62,7 +66,7 @@ class BTTVApi {
return {
for (final badge in badgeObjects)
- badge.providerId: ChatBadge.fromBTTV(badge)
+ badge.providerId: ChatBadge.fromBTTV(badge),
};
} else {
return Future.error('Failed to get BTTV badges');
diff --git a/lib/apis/twitch_api.dart b/lib/apis/twitch_api.dart
index 9c653970..26687c40 100644
--- a/lib/apis/twitch_api.dart
+++ b/lib/apis/twitch_api.dart
@@ -17,8 +17,9 @@ class TwitchApi {
const TwitchApi(this._client);
/// Returns a list of all Twitch global emotes.
- Future> getEmotesGlobal(
- {required Map headers}) async {
+ Future> getEmotesGlobal({
+ required Map headers,
+ }) async {
final url = Uri.parse('https://api.twitch.tv/helix/chat/emotes/global');
final response = await _client.get(url, headers: headers);
@@ -72,7 +73,8 @@ class TwitchApi {
required Map headers,
}) async {
final url = Uri.parse(
- 'https://api.twitch.tv/helix/chat/emotes/set?emote_set_id=$setId');
+ 'https://api.twitch.tv/helix/chat/emotes/set?emote_set_id=$setId',
+ );
final response = await _client.get(url, headers: headers);
if (response.statusCode == 200) {
@@ -97,8 +99,9 @@ class TwitchApi {
}
/// Returns a map of global Twitch badges to their [Emote] object.
- Future