diff --git a/assets_builder/build_themes.dart b/assets_builder/build_themes.dart new file mode 100644 index 000000000..7cd470d38 --- /dev/null +++ b/assets_builder/build_themes.dart @@ -0,0 +1,65 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:json5/json5.dart'; +import 'package:miria/model/color_theme.dart'; +import 'package:miria/model/misskey_theme.dart'; + +void main() { + final themes = [ + "l-light", + "d-dark", + "l-coffee", + "d-persimmon", + "l-apricot", + "d-astro", + "l-rainy", + "d-future", + "l-botanical", + "d-botanical", + "l-vivid", + "d-green-lime", + "l-cherry", + "d-green-orange", + "l-sushi", + "d-cherry", + "l-u0", + "d-ice", + "d-u0", + ] + .map( + (name) => ColorTheme.misskey( + MisskeyTheme.fromJson( + JSON5.parse( + File( + "assets_builder/misskey/packages/frontend/src/themes/$name.json5", + ).readAsStringSync(), + ), + ), + ), + ) + .map( + (theme) => 'ColorTheme(' + 'id: "${theme.id}", ' + 'name: "${theme.name}", ' + 'isDarkTheme: ${theme.isDarkTheme}, ' + 'primary: ${theme.primary}, ' + 'primaryDarken: ${theme.primaryDarken}, ' + 'primaryLighten: ${theme.primaryLighten}, ' + 'background: ${theme.background}, ' + 'foreground: ${theme.foreground}, ' + 'renote: ${theme.renote}, ' + 'mention: ${theme.mention}, ' + 'hashtag: ${theme.hashtag}, ' + 'link: ${theme.link}, ' + 'divider: ${theme.divider}, ' + 'buttonBackground: ${theme.buttonBackground}, ' + 'panel: ${theme.panel}, ' + 'panelBackground: ${theme.panelBackground}, ' + ')', + ) + .toList(); + // ignore: avoid_print + print(themes); + runApp(MaterialApp(home: Scaffold(body: SelectableText(themes.toString())))); +} diff --git a/lib/extensions/color_extension.dart b/lib/extensions/color_extension.dart index 8f197af83..3b0b8cc45 100644 --- a/lib/extensions/color_extension.dart +++ b/lib/extensions/color_extension.dart @@ -19,4 +19,21 @@ extension ColorExtension on Color { return hslLight.toColor(); } + + Color spin(double amount) { + final hsl = HSLColor.fromColor(this); + final hslSpinned = hsl.withHue((hsl.hue + amount) % 360); + + return hslSpinned.toColor(); + } + + Color saturate([double amount = .1]) { + assert(amount >= 0 && amount <= 1); + + final hsl = HSLColor.fromColor(this); + final hslSaturated = + hsl.withSaturation((hsl.saturation + amount).clamp(0.0, 1.0)); + + return hslSaturated.toColor(); + } } diff --git a/lib/model/color_theme.dart b/lib/model/color_theme.dart index 9ce2a1c61..d2dcd90a5 100644 --- a/lib/model/color_theme.dart +++ b/lib/model/color_theme.dart @@ -1,6 +1,8 @@ import 'dart:ui'; import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:miria/extensions/color_extension.dart'; +import 'package:miria/model/misskey_theme.dart'; part 'color_theme.freezed.dart'; @@ -24,4 +26,293 @@ class ColorTheme with _$ColorTheme { required Color panel, required Color panelBackground, }) = _ColorTheme; + + factory ColorTheme.misskey(MisskeyTheme theme) { + final isDarkTheme = theme.base == "dark"; + final props = { + ...isDarkTheme ? defaultDarkThemeProps : defaultLightThemeProps + }; + props.addAll(theme.props); + props + .cast() + .removeWhere((key, value) => value.startsWith('"')); + + // https://github.com/misskey-dev/misskey/blob/13.14.1/packages/frontend/src/scripts/theme.ts#L98-L124 + Color getColor(String val) { + if (val[0] == "@") { + return getColor(props[val.substring(1)]!); + } else if (val[0] == r"$") { + return getColor(props[val]!); + } else if (val[0] == ":") { + final parts = val.split("<"); + final func = parts.removeAt(0).substring(1); + final arg = double.parse(parts.removeAt(0)); + final color = getColor(parts.join("<")); + + return switch (func) { + "darken" => color.darken(arg / 100), + "lighten" => color.lighten(arg / 100), + "alpha" => color.withOpacity(arg), + "hue" => color.spin(arg), + "saturate" => color.saturate(arg / 100), + _ => color, + }; + } + + final input = val.trim(); + + if (input.startsWith("rgb(") && input.endsWith(")")) { + final rgb = input + .substring(4, input.length - 1) + .split(RegExp(r"[, ]+")) + .map(int.parse) + .toList(); + return Color.fromRGBO(rgb[0], rgb[1], rgb[2], 1); + } + + if (input.startsWith("rgba(") && input.endsWith(")")) { + final rgbo = input.substring(5, input.length - 1).split(","); + final rgb = rgbo.sublist(0, 3).map(int.parse).toList(); + final opacity = double.parse(rgbo[3]); + return Color.fromRGBO(rgb[0], rgb[1], rgb[2], opacity); + } + + final code = (input.startsWith("#") ? input.substring(1) : input); + + if (code.length == 3) { + final rgb = code + .split("") + .map((c) => int.parse(c, radix: 16)) + .map((i) => i * 16 + i) + .toList(); + return Color.fromRGBO(rgb[0], rgb[1], rgb[2], 1); + } + if (code.length == 4) { + final argb = code + .split("") + .map((c) => int.parse(c, radix: 16)) + .map((i) => i * 16 + i) + .toList(); + return Color.fromARGB(argb[0], argb[1], argb[2], argb[3]); + } + if (code.length == 6) { + return Color(int.parse(code, radix: 16) + 0xFF000000); + } + if (code.length == 8) { + return Color( + int.parse( + "${code.substring(6)}${code.substring(0, 6)}", + radix: 16, + ), + ); + } + + throw FormatException("invalid color format", val); + } + + final colors = props.map( + (key, value) => MapEntry(key, getColor(value)), + ); + + return ColorTheme( + id: theme.id, + name: theme.name, + isDarkTheme: isDarkTheme, + primary: colors["accent"]!, + primaryDarken: colors["accentDarken"]!, + primaryLighten: colors["accentLighten"]!, + background: colors["bg"]!, + foreground: colors["fg"]!, + renote: colors["renote"]!, + mention: colors["mention"]!, + hashtag: colors["hashtag"]!, + link: colors["link"]!, + divider: colors["divider"]!, + buttonBackground: colors["buttonBg"]!, + panel: colors["panel"]!, + panelBackground: colors["panelHeaderBg"]!, + ); + } } + +// misskey/packages/frontend/src/themes/_light.json5 +const defaultLightThemeProps = { + "accent": '#86b300', + "accentDarken": ':darken<10<@accent', + "accentLighten": ':lighten<10<@accent', + "accentedBg": ':alpha<0.15<@accent', + "focus": ':alpha<0.3<@accent', + "bg": '#fff', + "acrylicBg": ':alpha<0.5<@bg', + "fg": '#5f5f5f', + "fgTransparentWeak": ':alpha<0.75<@fg', + "fgTransparent": ':alpha<0.5<@fg', + "fgHighlighted": ':darken<3<@fg', + "fgOnAccent": '#fff', + "fgOnWhite": '#333', + "divider": 'rgba(0, 0, 0, 0.1)', + "indicator": '@accent', + "panel": ':lighten<3<@bg', + "panelHighlight": ':darken<3<@panel', + "panelHeaderBg": ':lighten<3<@panel', + "panelHeaderFg": '@fg', + "panelHeaderDivider": 'rgba(0, 0, 0, 0)', + "panelBorder": '" solid 1px var(--divider)', + "acrylicPanel": ':alpha<0.5<@panel', + "windowHeader": ':alpha<0.85<@panel', + "popup": ':lighten<3<@panel', + "shadow": 'rgba(0, 0, 0, 0.1)', + "header": ':alpha<0.7<@panel', + "navBg": '@panel', + "navFg": '@fg', + "navHoverFg": ':darken<17<@fg', + "navActive": '@accent', + "navIndicator": '@indicator', + "link": '#44a4c1', + "hashtag": '#ff9156', + "mention": '@accent', + "mentionMe": '@mention', + "renote": '#229e82', + "modalBg": 'rgba(0, 0, 0, 0.3)', + "scrollbarHandle": 'rgba(0, 0, 0, 0.2)', + "scrollbarHandleHover": 'rgba(0, 0, 0, 0.4)', + "dateLabelFg": '@fg', + "infoBg": '#e5f5ff', + "infoFg": '#72818a', + "infoWarnBg": '#fff0db', + "infoWarnFg": '#8f6e31', + "switchBg": 'rgba(0, 0, 0, 0.15)', + "cwBg": '#b1b9c1', + "cwFg": '#fff', + "cwHoverBg": '#bbc4ce', + "buttonBg": 'rgba(0, 0, 0, 0.05)', + "buttonHoverBg": 'rgba(0, 0, 0, 0.1)', + "buttonGradateA": '@accent', + "buttonGradateB": ':hue<20<@accent', + "switchOffBg": 'rgba(0, 0, 0, 0.1)', + "switchOffFg": '@panel', + "switchOnBg": '@accent', + "switchOnFg": '@fgOnAccent', + "inputBorder": 'rgba(0, 0, 0, 0.1)', + "inputBorderHover": 'rgba(0, 0, 0, 0.2)', + "listItemHoverBg": 'rgba(0, 0, 0, 0.03)', + "driveFolderBg": ':alpha<0.3<@accent', + "wallpaperOverlay": 'rgba(255, 255, 255, 0.5)', + "badge": '#31b1ce', + "messageBg": '@bg', + "success": '#86b300', + "error": '#ec4137', + "warn": '#ecb637', + "codeString": '#b98710', + "codeNumber": '#0fbbbb', + "codeBoolean": '#62b70c', + "deckBg": ':darken<3<@bg', + "htmlThemeColor": '@bg', + "X2": ':darken<2<@panel', + "X3": 'rgba(0, 0, 0, 0.05)', + "X4": 'rgba(0, 0, 0, 0.1)', + "X5": 'rgba(0, 0, 0, 0.05)', + "X6": 'rgba(0, 0, 0, 0.25)', + "X7": 'rgba(0, 0, 0, 0.05)', + "X8": ':lighten<5<@accent', + "X9": ':darken<5<@accent', + "X10": ':alpha<0.4<@accent', + "X11": 'rgba(0, 0, 0, 0.1)', + "X12": 'rgba(0, 0, 0, 0.1)', + "X13": 'rgba(0, 0, 0, 0.15)', + "X14": ':alpha<0.5<@navBg', + "X15": ':alpha<0<@panel', + "X16": ':alpha<0.7<@panel', + "X17": ':alpha<0.8<@bg', +}; + +// misskey/packages/frontend/src/themes/_dark.json5 +const defaultDarkThemeProps = { + "accent": '#86b300', + "accentDarken": ':darken<10<@accent', + "accentLighten": ':lighten<10<@accent', + "accentedBg": ':alpha<0.15<@accent', + "focus": ':alpha<0.3<@accent', + "bg": '#000', + "acrylicBg": ':alpha<0.5<@bg', + "fg": '#dadada', + "fgTransparentWeak": ':alpha<0.75<@fg', + "fgTransparent": ':alpha<0.5<@fg', + "fgHighlighted": ':lighten<3<@fg', + "fgOnAccent": '#fff', + "fgOnWhite": '#333', + "divider": 'rgba(255, 255, 255, 0.1)', + "indicator": '@accent', + "panel": ':lighten<3<@bg', + "panelHighlight": ':lighten<3<@panel', + "panelHeaderBg": ':lighten<3<@panel', + "panelHeaderFg": '@fg', + "panelHeaderDivider": 'rgba(0, 0, 0, 0)', + "panelBorder": '" solid 1px var(--divider)', + "acrylicPanel": ':alpha<0.5<@panel', + "windowHeader": ':alpha<0.85<@panel', + "popup": ':lighten<3<@panel', + "shadow": 'rgba(0, 0, 0, 0.3)', + "header": ':alpha<0.7<@panel', + "navBg": '@panel', + "navFg": '@fg', + "navHoverFg": ':lighten<17<@fg', + "navActive": '@accent', + "navIndicator": '@indicator', + "link": '#44a4c1', + "hashtag": '#ff9156', + "mention": '@accent', + "mentionMe": '@mention', + "renote": '#229e82', + "modalBg": 'rgba(0, 0, 0, 0.5)', + "scrollbarHandle": 'rgba(255, 255, 255, 0.2)', + "scrollbarHandleHover": 'rgba(255, 255, 255, 0.4)', + "dateLabelFg": '@fg', + "infoBg": '#253142', + "infoFg": '#fff', + "infoWarnBg": '#42321c', + "infoWarnFg": '#ffbd3e', + "switchBg": 'rgba(255, 255, 255, 0.15)', + "cwBg": '#687390', + "cwFg": '#393f4f', + "cwHoverBg": '#707b97', + "buttonBg": 'rgba(255, 255, 255, 0.05)', + "buttonHoverBg": 'rgba(255, 255, 255, 0.1)', + "buttonGradateA": '@accent', + "buttonGradateB": ':hue<20<@accent', + "switchOffBg": 'rgba(255, 255, 255, 0.1)', + "switchOffFg": ':alpha<0.8<@fg', + "switchOnBg": '@accentedBg', + "switchOnFg": '@accent', + "inputBorder": 'rgba(255, 255, 255, 0.1)', + "inputBorderHover": 'rgba(255, 255, 255, 0.2)', + "listItemHoverBg": 'rgba(255, 255, 255, 0.03)', + "driveFolderBg": ':alpha<0.3<@accent', + "wallpaperOverlay": 'rgba(0, 0, 0, 0.5)', + "badge": '#31b1ce', + "messageBg": '@bg', + "success": '#86b300', + "error": '#ec4137', + "warn": '#ecb637', + "codeString": '#ffb675', + "codeNumber": '#cfff9e', + "codeBoolean": '#c59eff', + "deckBg": '#000', + "htmlThemeColor": '@bg', + "X2": ':darken<2<@panel', + "X3": 'rgba(255, 255, 255, 0.05)', + "X4": 'rgba(255, 255, 255, 0.1)', + "X5": 'rgba(255, 255, 255, 0.05)', + "X6": 'rgba(255, 255, 255, 0.15)', + "X7": 'rgba(255, 255, 255, 0.05)', + "X8": ':lighten<5<@accent', + "X9": ':darken<5<@accent', + "X10": ':alpha<0.4<@accent', + "X11": 'rgba(0, 0, 0, 0.3)', + "X12": 'rgba(255, 255, 255, 0.1)', + "X13": 'rgba(255, 255, 255, 0.15)', + "X14": ':alpha<0.5<@navBg', + "X15": ':alpha<0<@panel', + "X16": ':alpha<0.7<@panel', + "X17": ':alpha<0.8<@bg', +}; diff --git a/lib/model/misskey_theme.dart b/lib/model/misskey_theme.dart new file mode 100644 index 000000000..a32378ab7 --- /dev/null +++ b/lib/model/misskey_theme.dart @@ -0,0 +1,19 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'misskey_theme.freezed.dart'; +part 'misskey_theme.g.dart'; + +@freezed +class MisskeyTheme with _$MisskeyTheme { + const factory MisskeyTheme({ + required String id, + required String name, + String? author, + String? desc, + String? base, + required Map props, + }) = _MisskeyTheme; + + factory MisskeyTheme.fromJson(Map json) => + _$MisskeyThemeFromJson(json); +} diff --git a/lib/model/misskey_theme.freezed.dart b/lib/model/misskey_theme.freezed.dart new file mode 100644 index 000000000..eb3a9d8da --- /dev/null +++ b/lib/model/misskey_theme.freezed.dart @@ -0,0 +1,262 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'misskey_theme.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + +MisskeyTheme _$MisskeyThemeFromJson(Map json) { + return _MisskeyTheme.fromJson(json); +} + +/// @nodoc +mixin _$MisskeyTheme { + String get id => throw _privateConstructorUsedError; + String get name => throw _privateConstructorUsedError; + String? get author => throw _privateConstructorUsedError; + String? get desc => throw _privateConstructorUsedError; + String? get base => throw _privateConstructorUsedError; + Map get props => throw _privateConstructorUsedError; + + Map toJson() => throw _privateConstructorUsedError; + @JsonKey(ignore: true) + $MisskeyThemeCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $MisskeyThemeCopyWith<$Res> { + factory $MisskeyThemeCopyWith( + MisskeyTheme value, $Res Function(MisskeyTheme) then) = + _$MisskeyThemeCopyWithImpl<$Res, MisskeyTheme>; + @useResult + $Res call( + {String id, + String name, + String? author, + String? desc, + String? base, + Map props}); +} + +/// @nodoc +class _$MisskeyThemeCopyWithImpl<$Res, $Val extends MisskeyTheme> + implements $MisskeyThemeCopyWith<$Res> { + _$MisskeyThemeCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? id = null, + Object? name = null, + Object? author = freezed, + Object? desc = freezed, + Object? base = freezed, + Object? props = null, + }) { + return _then(_value.copyWith( + id: null == id + ? _value.id + : id // ignore: cast_nullable_to_non_nullable + as String, + name: null == name + ? _value.name + : name // ignore: cast_nullable_to_non_nullable + as String, + author: freezed == author + ? _value.author + : author // ignore: cast_nullable_to_non_nullable + as String?, + desc: freezed == desc + ? _value.desc + : desc // ignore: cast_nullable_to_non_nullable + as String?, + base: freezed == base + ? _value.base + : base // ignore: cast_nullable_to_non_nullable + as String?, + props: null == props + ? _value.props + : props // ignore: cast_nullable_to_non_nullable + as Map, + ) as $Val); + } +} + +/// @nodoc +abstract class _$$_MisskeyThemeCopyWith<$Res> + implements $MisskeyThemeCopyWith<$Res> { + factory _$$_MisskeyThemeCopyWith( + _$_MisskeyTheme value, $Res Function(_$_MisskeyTheme) then) = + __$$_MisskeyThemeCopyWithImpl<$Res>; + @override + @useResult + $Res call( + {String id, + String name, + String? author, + String? desc, + String? base, + Map props}); +} + +/// @nodoc +class __$$_MisskeyThemeCopyWithImpl<$Res> + extends _$MisskeyThemeCopyWithImpl<$Res, _$_MisskeyTheme> + implements _$$_MisskeyThemeCopyWith<$Res> { + __$$_MisskeyThemeCopyWithImpl( + _$_MisskeyTheme _value, $Res Function(_$_MisskeyTheme) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? id = null, + Object? name = null, + Object? author = freezed, + Object? desc = freezed, + Object? base = freezed, + Object? props = null, + }) { + return _then(_$_MisskeyTheme( + id: null == id + ? _value.id + : id // ignore: cast_nullable_to_non_nullable + as String, + name: null == name + ? _value.name + : name // ignore: cast_nullable_to_non_nullable + as String, + author: freezed == author + ? _value.author + : author // ignore: cast_nullable_to_non_nullable + as String?, + desc: freezed == desc + ? _value.desc + : desc // ignore: cast_nullable_to_non_nullable + as String?, + base: freezed == base + ? _value.base + : base // ignore: cast_nullable_to_non_nullable + as String?, + props: null == props + ? _value._props + : props // ignore: cast_nullable_to_non_nullable + as Map, + )); + } +} + +/// @nodoc +@JsonSerializable() +class _$_MisskeyTheme implements _MisskeyTheme { + const _$_MisskeyTheme( + {required this.id, + required this.name, + this.author, + this.desc, + this.base, + required final Map props}) + : _props = props; + + factory _$_MisskeyTheme.fromJson(Map json) => + _$$_MisskeyThemeFromJson(json); + + @override + final String id; + @override + final String name; + @override + final String? author; + @override + final String? desc; + @override + final String? base; + final Map _props; + @override + Map get props { + if (_props is EqualUnmodifiableMapView) return _props; + // ignore: implicit_dynamic_type + return EqualUnmodifiableMapView(_props); + } + + @override + String toString() { + return 'MisskeyTheme(id: $id, name: $name, author: $author, desc: $desc, base: $base, props: $props)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$_MisskeyTheme && + (identical(other.id, id) || other.id == id) && + (identical(other.name, name) || other.name == name) && + (identical(other.author, author) || other.author == author) && + (identical(other.desc, desc) || other.desc == desc) && + (identical(other.base, base) || other.base == base) && + const DeepCollectionEquality().equals(other._props, _props)); + } + + @JsonKey(ignore: true) + @override + int get hashCode => Object.hash(runtimeType, id, name, author, desc, base, + const DeepCollectionEquality().hash(_props)); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$_MisskeyThemeCopyWith<_$_MisskeyTheme> get copyWith => + __$$_MisskeyThemeCopyWithImpl<_$_MisskeyTheme>(this, _$identity); + + @override + Map toJson() { + return _$$_MisskeyThemeToJson( + this, + ); + } +} + +abstract class _MisskeyTheme implements MisskeyTheme { + const factory _MisskeyTheme( + {required final String id, + required final String name, + final String? author, + final String? desc, + final String? base, + required final Map props}) = _$_MisskeyTheme; + + factory _MisskeyTheme.fromJson(Map json) = + _$_MisskeyTheme.fromJson; + + @override + String get id; + @override + String get name; + @override + String? get author; + @override + String? get desc; + @override + String? get base; + @override + Map get props; + @override + @JsonKey(ignore: true) + _$$_MisskeyThemeCopyWith<_$_MisskeyTheme> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/lib/model/misskey_theme.g.dart b/lib/model/misskey_theme.g.dart new file mode 100644 index 000000000..6de4110fc --- /dev/null +++ b/lib/model/misskey_theme.g.dart @@ -0,0 +1,27 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'misskey_theme.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +_$_MisskeyTheme _$$_MisskeyThemeFromJson(Map json) => + _$_MisskeyTheme( + id: json['id'] as String, + name: json['name'] as String, + author: json['author'] as String?, + desc: json['desc'] as String?, + base: json['base'] as String?, + props: Map.from(json['props'] as Map), + ); + +Map _$$_MisskeyThemeToJson(_$_MisskeyTheme instance) => + { + 'id': instance.id, + 'name': instance.name, + 'author': instance.author, + 'desc': instance.desc, + 'base': instance.base, + 'props': instance.props, + }; diff --git a/lib/router/app_router.gr.dart b/lib/router/app_router.gr.dart index 872b5a2a8..1b01caa42 100644 --- a/lib/router/app_router.gr.dart +++ b/lib/router/app_router.gr.dart @@ -15,13 +15,13 @@ abstract class _$AppRouter extends RootStackRouter { @override final Map pagesMap = { - NotesAfterRenoteRoute.name: (routeData) { - final args = routeData.argsAs(); + AntennaNotesRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NotesAfterRenotePage( + child: AntennaNotesPage( key: args.key, - note: args.note, + antenna: args.antenna, account: args.account, ), ); @@ -36,33 +36,27 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - AntennaNotesRoute.name: (routeData) { - final args = routeData.argsAs(); + ChannelsRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: AntennaNotesPage( + child: ChannelsPage( key: args.key, - antenna: args.antenna, account: args.account, ), ); }, - NotificationRoute.name: (routeData) { - final args = routeData.argsAs(); + ChannelDetailRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NotificationPage( + child: ChannelDetailPage( key: args.key, account: args.account, + channelId: args.channelId, ), ); }, - LoginRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const LoginPage(), - ); - }, ClipDetailRoute.name: (routeData) { final args = routeData.argsAs(); return AutoRoutePage( @@ -84,19 +78,45 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - NoteCreateRoute.name: (routeData) { - final args = routeData.argsAs(); + ExploreRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NoteCreatePage( + child: ExplorePage( key: args.key, - initialAccount: args.initialAccount, - initialText: args.initialText, - initialMediaFiles: args.initialMediaFiles, - channel: args.channel, - reply: args.reply, - renote: args.renote, - deletedNote: args.deletedNote, + account: args.account, + ), + ); + }, + ExploreRoleUsersRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( + routeData: routeData, + child: ExploreRoleUsersPage( + key: args.key, + item: args.item, + account: args.account, + ), + ); + }, + FavoritedNoteRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( + routeData: routeData, + child: FavoritedNotePage( + key: args.key, + account: args.account, + ), + ); + }, + FederationRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( + routeData: routeData, + child: FederationPage( + key: args.key, + account: args.account, + host: args.host, ), ); }, @@ -111,35 +131,56 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - UserFolloweeRoute.name: (routeData) { - final args = routeData.argsAs(); + LoginRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: UserFolloweePage( + child: const LoginPage(), + ); + }, + NotesAfterRenoteRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( + routeData: routeData, + child: NotesAfterRenotePage( key: args.key, - userId: args.userId, + note: args.note, account: args.account, ), ); }, - UserRoute.name: (routeData) { - final args = routeData.argsAs(); + NoteCreateRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: UserPage( + child: NoteCreatePage( key: args.key, - userId: args.userId, + initialAccount: args.initialAccount, + initialText: args.initialText, + initialMediaFiles: args.initialMediaFiles, + channel: args.channel, + reply: args.reply, + renote: args.renote, + deletedNote: args.deletedNote, + ), + ); + }, + NoteDetailRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( + routeData: routeData, + child: NoteDetailPage( + key: args.key, + note: args.note, account: args.account, ), ); }, - UserFollowerRoute.name: (routeData) { - final args = routeData.argsAs(); + NotificationRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: UserFollowerPage( + child: NotificationPage( key: args.key, - userId: args.userId, account: args.account, ), ); @@ -156,133 +197,110 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - SplashRoute.name: (routeData) { + SearchRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const SplashPage(), + child: SearchPage( + key: args.key, + initialSearchText: args.initialSearchText, + account: args.account, + ), ); }, - SeveralAccountGeneralSettingsRoute.name: (routeData) { - final args = routeData.argsAs(); + AccountListRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: SeveralAccountGeneralSettingsPage( - key: args.key, - account: args.account, - ), + child: const AccountListPage(), ); }, - SeveralAccountSettingsRoute.name: (routeData) { - final args = routeData.argsAs(); + AppInfoRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: SeveralAccountSettingsPage( - key: args.key, - account: args.account, - ), + child: const AppInfoPage(), ); }, - InstanceMuteRoute.name: (routeData) { - final args = routeData.argsAs(); + GeneralSettingsRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: InstanceMutePage( - key: args.key, - account: args.account, - ), + child: const GeneralSettingsPage(), ); }, - HardMuteRoute.name: (routeData) { - final args = routeData.argsAs(); + ImportExportRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: HardMutePage( - key: args.key, - account: args.account, - ), + child: const ImportExportPage(), ); }, - ReactionDeckRoute.name: (routeData) { - final args = routeData.argsAs(); + SettingsRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: ReactionDeckPage( - key: args.key, - account: args.account, - ), + child: const SettingsPage(), ); }, - UsersListTimelineRoute.name: (routeData) { - final args = routeData.argsAs(); + TabSettingsListRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: UsersListTimelinePage( - args.account, - args.listId, - key: args.key, - ), + child: const TabSettingsListPage(), ); }, - UsersListRoute.name: (routeData) { - final args = routeData.argsAs(); + TabSettingsRoute.name: (routeData) { + final args = routeData.argsAs( + orElse: () => const TabSettingsRouteArgs()); return AutoRoutePage( routeData: routeData, - child: UsersListPage( - args.account, + child: TabSettingsPage( key: args.key, + tabIndex: args.tabIndex, ), ); }, - ChannelDetailRoute.name: (routeData) { - final args = routeData.argsAs(); + HardMuteRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ChannelDetailPage( + child: HardMutePage( key: args.key, account: args.account, - channelId: args.channelId, ), ); }, - ChannelsRoute.name: (routeData) { - final args = routeData.argsAs(); + InstanceMuteRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ChannelsPage( + child: InstanceMutePage( key: args.key, account: args.account, ), ); }, - FederationRoute.name: (routeData) { - final args = routeData.argsAs(); + ReactionDeckRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: FederationPage( + child: ReactionDeckPage( key: args.key, account: args.account, - host: args.host, ), ); }, - NoteDetailRoute.name: (routeData) { - final args = routeData.argsAs(); + SeveralAccountGeneralSettingsRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NoteDetailPage( + child: SeveralAccountGeneralSettingsPage( key: args.key, - note: args.note, account: args.account, ), ); }, - SearchRoute.name: (routeData) { - final args = routeData.argsAs(); + SeveralAccountSettingsRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: SearchPage( + child: SeveralAccountSettingsPage( key: args.key, - initialSearchText: args.initialSearchText, account: args.account, ), ); @@ -299,90 +317,72 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - ImportExportRoute.name: (routeData) { + SplashRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: const ImportExportPage(), + child: const SplashPage(), ); }, - GeneralSettingsRoute.name: (routeData) { + TimeLineRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const GeneralSettingsPage(), + child: TimeLinePage( + key: args.key, + initialTabSetting: args.initialTabSetting, + ), ); }, - TabSettingsRoute.name: (routeData) { - final args = routeData.argsAs( - orElse: () => const TabSettingsRouteArgs()); + UsersListRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: TabSettingsPage( + child: UsersListPage( + args.account, key: args.key, - tabIndex: args.tabIndex, ), ); }, - TabSettingsListRoute.name: (routeData) { + UsersListTimelineRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const TabSettingsListPage(), + child: UsersListTimelinePage( + args.account, + args.listId, + key: args.key, + ), ); }, - AppInfoRoute.name: (routeData) { + UserFolloweeRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const AppInfoPage(), - ); - }, - SettingsRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const SettingsPage(), - ); - }, - AccountListRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const AccountListPage(), - ); - }, - ExploreRoleUsersRoute.name: (routeData) { - final args = routeData.argsAs(); - return AutoRoutePage( - routeData: routeData, - child: ExploreRoleUsersPage( + child: UserFolloweePage( key: args.key, - item: args.item, + userId: args.userId, account: args.account, ), ); }, - ExploreRoute.name: (routeData) { - final args = routeData.argsAs(); + UserFollowerRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ExplorePage( + child: UserFollowerPage( key: args.key, + userId: args.userId, account: args.account, ), ); }, - TimeLineRoute.name: (routeData) { - final args = routeData.argsAs(); - return AutoRoutePage( - routeData: routeData, - child: TimeLinePage( - key: args.key, - initialTabSetting: args.initialTabSetting, - ), - ); - }, - FavoritedNoteRoute.name: (routeData) { - final args = routeData.argsAs(); + UserRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: FavoritedNotePage( + child: UserPage( key: args.key, + userId: args.userId, account: args.account, ), ); @@ -391,45 +391,45 @@ abstract class _$AppRouter extends RootStackRouter { } /// generated route for -/// [NotesAfterRenotePage] -class NotesAfterRenoteRoute extends PageRouteInfo { - NotesAfterRenoteRoute({ +/// [AntennaNotesPage] +class AntennaNotesRoute extends PageRouteInfo { + AntennaNotesRoute({ Key? key, - required Note note, + required Antenna antenna, required Account account, List? children, }) : super( - NotesAfterRenoteRoute.name, - args: NotesAfterRenoteRouteArgs( + AntennaNotesRoute.name, + args: AntennaNotesRouteArgs( key: key, - note: note, + antenna: antenna, account: account, ), initialChildren: children, ); - static const String name = 'NotesAfterRenoteRoute'; + static const String name = 'AntennaNotesRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NotesAfterRenoteRouteArgs { - const NotesAfterRenoteRouteArgs({ +class AntennaNotesRouteArgs { + const AntennaNotesRouteArgs({ this.key, - required this.note, + required this.antenna, required this.account, }); final Key? key; - final Note note; + final Antenna antenna; final Account account; @override String toString() { - return 'NotesAfterRenoteRouteArgs{key: $key, note: $note, account: $account}'; + return 'AntennaNotesRouteArgs{key: $key, antenna: $antenna, account: $account}'; } } @@ -472,100 +472,86 @@ class AntennaRouteArgs { } /// generated route for -/// [AntennaNotesPage] -class AntennaNotesRoute extends PageRouteInfo { - AntennaNotesRoute({ +/// [ChannelsPage] +class ChannelsRoute extends PageRouteInfo { + ChannelsRoute({ Key? key, - required Antenna antenna, required Account account, List? children, }) : super( - AntennaNotesRoute.name, - args: AntennaNotesRouteArgs( + ChannelsRoute.name, + args: ChannelsRouteArgs( key: key, - antenna: antenna, account: account, ), initialChildren: children, ); - static const String name = 'AntennaNotesRoute'; + static const String name = 'ChannelsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class AntennaNotesRouteArgs { - const AntennaNotesRouteArgs({ +class ChannelsRouteArgs { + const ChannelsRouteArgs({ this.key, - required this.antenna, required this.account, }); final Key? key; - final Antenna antenna; - final Account account; @override String toString() { - return 'AntennaNotesRouteArgs{key: $key, antenna: $antenna, account: $account}'; + return 'ChannelsRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [NotificationPage] -class NotificationRoute extends PageRouteInfo { - NotificationRoute({ +/// [ChannelDetailPage] +class ChannelDetailRoute extends PageRouteInfo { + ChannelDetailRoute({ Key? key, required Account account, + required String channelId, List? children, }) : super( - NotificationRoute.name, - args: NotificationRouteArgs( + ChannelDetailRoute.name, + args: ChannelDetailRouteArgs( key: key, account: account, + channelId: channelId, ), initialChildren: children, ); - static const String name = 'NotificationRoute'; + static const String name = 'ChannelDetailRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NotificationRouteArgs { - const NotificationRouteArgs({ +class ChannelDetailRouteArgs { + const ChannelDetailRouteArgs({ this.key, required this.account, + required this.channelId, }); final Key? key; final Account account; + final String channelId; + @override String toString() { - return 'NotificationRouteArgs{key: $key, account: $account}'; + return 'ChannelDetailRouteArgs{key: $key, account: $account, channelId: $channelId}'; } } -/// generated route for -/// [LoginPage] -class LoginRoute extends PageRouteInfo { - const LoginRoute({List? children}) - : super( - LoginRoute.name, - initialChildren: children, - ); - - static const String name = 'LoginRoute'; - - static const PageInfo page = PageInfo(name); -} - /// generated route for /// [ClipDetailPage] class ClipDetailRoute extends PageRouteInfo { @@ -648,370 +634,402 @@ class ClipListRouteArgs { } /// generated route for -/// [NoteCreatePage] -class NoteCreateRoute extends PageRouteInfo { - NoteCreateRoute({ +/// [ExplorePage] +class ExploreRoute extends PageRouteInfo { + ExploreRoute({ Key? key, - required Account initialAccount, - String? initialText, - List? initialMediaFiles, - CommunityChannel? channel, - Note? reply, - Note? renote, - Note? deletedNote, + required Account account, List? children, }) : super( - NoteCreateRoute.name, - args: NoteCreateRouteArgs( + ExploreRoute.name, + args: ExploreRouteArgs( key: key, - initialAccount: initialAccount, - initialText: initialText, - initialMediaFiles: initialMediaFiles, - channel: channel, - reply: reply, - renote: renote, - deletedNote: deletedNote, + account: account, ), initialChildren: children, ); - static const String name = 'NoteCreateRoute'; + static const String name = 'ExploreRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NoteCreateRouteArgs { - const NoteCreateRouteArgs({ +class ExploreRouteArgs { + const ExploreRouteArgs({ this.key, - required this.initialAccount, - this.initialText, - this.initialMediaFiles, - this.channel, - this.reply, - this.renote, - this.deletedNote, + required this.account, }); final Key? key; - final Account initialAccount; - - final String? initialText; - - final List? initialMediaFiles; - - final CommunityChannel? channel; - - final Note? reply; - - final Note? renote; - - final Note? deletedNote; + final Account account; @override String toString() { - return 'NoteCreateRouteArgs{key: $key, initialAccount: $initialAccount, initialText: $initialText, initialMediaFiles: $initialMediaFiles, channel: $channel, reply: $reply, renote: $renote, deletedNote: $deletedNote}'; + return 'ExploreRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [HashtagPage] -class HashtagRoute extends PageRouteInfo { - HashtagRoute({ +/// [ExploreRoleUsersPage] +class ExploreRoleUsersRoute extends PageRouteInfo { + ExploreRoleUsersRoute({ Key? key, - required String hashtag, + required RolesListResponse item, required Account account, List? children, }) : super( - HashtagRoute.name, - args: HashtagRouteArgs( + ExploreRoleUsersRoute.name, + args: ExploreRoleUsersRouteArgs( key: key, - hashtag: hashtag, + item: item, account: account, ), initialChildren: children, ); - static const String name = 'HashtagRoute'; + static const String name = 'ExploreRoleUsersRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class HashtagRouteArgs { - const HashtagRouteArgs({ +class ExploreRoleUsersRouteArgs { + const ExploreRoleUsersRouteArgs({ this.key, - required this.hashtag, + required this.item, required this.account, }); final Key? key; - final String hashtag; + final RolesListResponse item; final Account account; @override String toString() { - return 'HashtagRouteArgs{key: $key, hashtag: $hashtag, account: $account}'; + return 'ExploreRoleUsersRouteArgs{key: $key, item: $item, account: $account}'; } } /// generated route for -/// [UserFolloweePage] -class UserFolloweeRoute extends PageRouteInfo { - UserFolloweeRoute({ +/// [FavoritedNotePage] +class FavoritedNoteRoute extends PageRouteInfo { + FavoritedNoteRoute({ Key? key, - required String userId, required Account account, List? children, }) : super( - UserFolloweeRoute.name, - args: UserFolloweeRouteArgs( + FavoritedNoteRoute.name, + args: FavoritedNoteRouteArgs( key: key, - userId: userId, account: account, ), initialChildren: children, ); - static const String name = 'UserFolloweeRoute'; + static const String name = 'FavoritedNoteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UserFolloweeRouteArgs { - const UserFolloweeRouteArgs({ +class FavoritedNoteRouteArgs { + const FavoritedNoteRouteArgs({ this.key, - required this.userId, required this.account, }); final Key? key; - final String userId; - final Account account; @override String toString() { - return 'UserFolloweeRouteArgs{key: $key, userId: $userId, account: $account}'; + return 'FavoritedNoteRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [UserPage] -class UserRoute extends PageRouteInfo { - UserRoute({ +/// [FederationPage] +class FederationRoute extends PageRouteInfo { + FederationRoute({ Key? key, - required String userId, required Account account, + required String host, List? children, }) : super( - UserRoute.name, - args: UserRouteArgs( + FederationRoute.name, + args: FederationRouteArgs( key: key, - userId: userId, account: account, + host: host, ), initialChildren: children, ); - static const String name = 'UserRoute'; + static const String name = 'FederationRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UserRouteArgs { - const UserRouteArgs({ +class FederationRouteArgs { + const FederationRouteArgs({ this.key, - required this.userId, required this.account, + required this.host, }); final Key? key; - final String userId; - final Account account; + final String host; + @override String toString() { - return 'UserRouteArgs{key: $key, userId: $userId, account: $account}'; + return 'FederationRouteArgs{key: $key, account: $account, host: $host}'; } } /// generated route for -/// [UserFollowerPage] -class UserFollowerRoute extends PageRouteInfo { - UserFollowerRoute({ +/// [HashtagPage] +class HashtagRoute extends PageRouteInfo { + HashtagRoute({ Key? key, - required String userId, + required String hashtag, required Account account, List? children, }) : super( - UserFollowerRoute.name, - args: UserFollowerRouteArgs( + HashtagRoute.name, + args: HashtagRouteArgs( key: key, - userId: userId, + hashtag: hashtag, account: account, ), initialChildren: children, ); - static const String name = 'UserFollowerRoute'; + static const String name = 'HashtagRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UserFollowerRouteArgs { - const UserFollowerRouteArgs({ +class HashtagRouteArgs { + const HashtagRouteArgs({ this.key, - required this.userId, + required this.hashtag, required this.account, }); final Key? key; - final String userId; + final String hashtag; final Account account; @override String toString() { - return 'UserFollowerRouteArgs{key: $key, userId: $userId, account: $account}'; + return 'HashtagRouteArgs{key: $key, hashtag: $hashtag, account: $account}'; } } /// generated route for -/// [PhotoEditPage] -class PhotoEditRoute extends PageRouteInfo { - PhotoEditRoute({ - required Account account, - required MisskeyPostFile file, - required void Function(Uint8List) onSubmit, +/// [LoginPage] +class LoginRoute extends PageRouteInfo { + const LoginRoute({List? children}) + : super( + LoginRoute.name, + initialChildren: children, + ); + + static const String name = 'LoginRoute'; + + static const PageInfo page = PageInfo(name); +} + +/// generated route for +/// [NotesAfterRenotePage] +class NotesAfterRenoteRoute extends PageRouteInfo { + NotesAfterRenoteRoute({ Key? key, + required Note note, + required Account account, List? children, }) : super( - PhotoEditRoute.name, - args: PhotoEditRouteArgs( - account: account, - file: file, - onSubmit: onSubmit, + NotesAfterRenoteRoute.name, + args: NotesAfterRenoteRouteArgs( key: key, + note: note, + account: account, ), initialChildren: children, ); - static const String name = 'PhotoEditRoute'; + static const String name = 'NotesAfterRenoteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class PhotoEditRouteArgs { - const PhotoEditRouteArgs({ - required this.account, - required this.file, - required this.onSubmit, +class NotesAfterRenoteRouteArgs { + const NotesAfterRenoteRouteArgs({ this.key, + required this.note, + required this.account, }); - final Account account; - - final MisskeyPostFile file; + final Key? key; - final void Function(Uint8List) onSubmit; + final Note note; - final Key? key; + final Account account; @override String toString() { - return 'PhotoEditRouteArgs{account: $account, file: $file, onSubmit: $onSubmit, key: $key}'; + return 'NotesAfterRenoteRouteArgs{key: $key, note: $note, account: $account}'; } } /// generated route for -/// [SplashPage] -class SplashRoute extends PageRouteInfo { - const SplashRoute({List? children}) - : super( - SplashRoute.name, +/// [NoteCreatePage] +class NoteCreateRoute extends PageRouteInfo { + NoteCreateRoute({ + Key? key, + required Account initialAccount, + String? initialText, + List? initialMediaFiles, + CommunityChannel? channel, + Note? reply, + Note? renote, + Note? deletedNote, + List? children, + }) : super( + NoteCreateRoute.name, + args: NoteCreateRouteArgs( + key: key, + initialAccount: initialAccount, + initialText: initialText, + initialMediaFiles: initialMediaFiles, + channel: channel, + reply: reply, + renote: renote, + deletedNote: deletedNote, + ), initialChildren: children, ); - static const String name = 'SplashRoute'; + static const String name = 'NoteCreateRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); +} + +class NoteCreateRouteArgs { + const NoteCreateRouteArgs({ + this.key, + required this.initialAccount, + this.initialText, + this.initialMediaFiles, + this.channel, + this.reply, + this.renote, + this.deletedNote, + }); + + final Key? key; + + final Account initialAccount; + + final String? initialText; + + final List? initialMediaFiles; + + final CommunityChannel? channel; + + final Note? reply; + + final Note? renote; + + final Note? deletedNote; + + @override + String toString() { + return 'NoteCreateRouteArgs{key: $key, initialAccount: $initialAccount, initialText: $initialText, initialMediaFiles: $initialMediaFiles, channel: $channel, reply: $reply, renote: $renote, deletedNote: $deletedNote}'; + } } /// generated route for -/// [SeveralAccountGeneralSettingsPage] -class SeveralAccountGeneralSettingsRoute - extends PageRouteInfo { - SeveralAccountGeneralSettingsRoute({ +/// [NoteDetailPage] +class NoteDetailRoute extends PageRouteInfo { + NoteDetailRoute({ Key? key, + required Note note, required Account account, List? children, }) : super( - SeveralAccountGeneralSettingsRoute.name, - args: SeveralAccountGeneralSettingsRouteArgs( + NoteDetailRoute.name, + args: NoteDetailRouteArgs( key: key, + note: note, account: account, ), initialChildren: children, ); - static const String name = 'SeveralAccountGeneralSettingsRoute'; + static const String name = 'NoteDetailRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class SeveralAccountGeneralSettingsRouteArgs { - const SeveralAccountGeneralSettingsRouteArgs({ +class NoteDetailRouteArgs { + const NoteDetailRouteArgs({ this.key, + required this.note, required this.account, }); final Key? key; + final Note note; + final Account account; @override String toString() { - return 'SeveralAccountGeneralSettingsRouteArgs{key: $key, account: $account}'; + return 'NoteDetailRouteArgs{key: $key, note: $note, account: $account}'; } } /// generated route for -/// [SeveralAccountSettingsPage] -class SeveralAccountSettingsRoute - extends PageRouteInfo { - SeveralAccountSettingsRoute({ +/// [NotificationPage] +class NotificationRoute extends PageRouteInfo { + NotificationRoute({ Key? key, required Account account, List? children, }) : super( - SeveralAccountSettingsRoute.name, - args: SeveralAccountSettingsRouteArgs( + NotificationRoute.name, + args: NotificationRouteArgs( key: key, account: account, ), initialChildren: children, ); - static const String name = 'SeveralAccountSettingsRoute'; + static const String name = 'NotificationRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class SeveralAccountSettingsRouteArgs { - const SeveralAccountSettingsRouteArgs({ +class NotificationRouteArgs { + const NotificationRouteArgs({ this.key, required this.account, }); @@ -1022,272 +1040,284 @@ class SeveralAccountSettingsRouteArgs { @override String toString() { - return 'SeveralAccountSettingsRouteArgs{key: $key, account: $account}'; + return 'NotificationRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [InstanceMutePage] -class InstanceMuteRoute extends PageRouteInfo { - InstanceMuteRoute({ - Key? key, +/// [PhotoEditPage] +class PhotoEditRoute extends PageRouteInfo { + PhotoEditRoute({ required Account account, + required MisskeyPostFile file, + required void Function(Uint8List) onSubmit, + Key? key, List? children, }) : super( - InstanceMuteRoute.name, - args: InstanceMuteRouteArgs( - key: key, + PhotoEditRoute.name, + args: PhotoEditRouteArgs( account: account, + file: file, + onSubmit: onSubmit, + key: key, ), initialChildren: children, ); - static const String name = 'InstanceMuteRoute'; + static const String name = 'PhotoEditRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class InstanceMuteRouteArgs { - const InstanceMuteRouteArgs({ - this.key, +class PhotoEditRouteArgs { + const PhotoEditRouteArgs({ required this.account, + required this.file, + required this.onSubmit, + this.key, }); - final Key? key; - final Account account; + final MisskeyPostFile file; + + final void Function(Uint8List) onSubmit; + + final Key? key; + @override String toString() { - return 'InstanceMuteRouteArgs{key: $key, account: $account}'; + return 'PhotoEditRouteArgs{account: $account, file: $file, onSubmit: $onSubmit, key: $key}'; } } /// generated route for -/// [HardMutePage] -class HardMuteRoute extends PageRouteInfo { - HardMuteRoute({ +/// [SearchPage] +class SearchRoute extends PageRouteInfo { + SearchRoute({ Key? key, + String? initialSearchText, required Account account, List? children, }) : super( - HardMuteRoute.name, - args: HardMuteRouteArgs( + SearchRoute.name, + args: SearchRouteArgs( key: key, + initialSearchText: initialSearchText, account: account, ), initialChildren: children, ); - static const String name = 'HardMuteRoute'; + static const String name = 'SearchRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class HardMuteRouteArgs { - const HardMuteRouteArgs({ +class SearchRouteArgs { + const SearchRouteArgs({ this.key, + this.initialSearchText, required this.account, }); final Key? key; + final String? initialSearchText; + final Account account; @override String toString() { - return 'HardMuteRouteArgs{key: $key, account: $account}'; + return 'SearchRouteArgs{key: $key, initialSearchText: $initialSearchText, account: $account}'; } } /// generated route for -/// [ReactionDeckPage] -class ReactionDeckRoute extends PageRouteInfo { - ReactionDeckRoute({ - Key? key, - required Account account, - List? children, - }) : super( - ReactionDeckRoute.name, - args: ReactionDeckRouteArgs( - key: key, - account: account, - ), +/// [AccountListPage] +class AccountListRoute extends PageRouteInfo { + const AccountListRoute({List? children}) + : super( + AccountListRoute.name, + initialChildren: children, + ); + + static const String name = 'AccountListRoute'; + + static const PageInfo page = PageInfo(name); +} + +/// generated route for +/// [AppInfoPage] +class AppInfoRoute extends PageRouteInfo { + const AppInfoRoute({List? children}) + : super( + AppInfoRoute.name, + initialChildren: children, + ); + + static const String name = 'AppInfoRoute'; + + static const PageInfo page = PageInfo(name); +} + +/// generated route for +/// [GeneralSettingsPage] +class GeneralSettingsRoute extends PageRouteInfo { + const GeneralSettingsRoute({List? children}) + : super( + GeneralSettingsRoute.name, initialChildren: children, ); - static const String name = 'ReactionDeckRoute'; + static const String name = 'GeneralSettingsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class ReactionDeckRouteArgs { - const ReactionDeckRouteArgs({ - this.key, - required this.account, - }); - - final Key? key; +/// generated route for +/// [ImportExportPage] +class ImportExportRoute extends PageRouteInfo { + const ImportExportRoute({List? children}) + : super( + ImportExportRoute.name, + initialChildren: children, + ); - final Account account; + static const String name = 'ImportExportRoute'; - @override - String toString() { - return 'ReactionDeckRouteArgs{key: $key, account: $account}'; - } + static const PageInfo page = PageInfo(name); } /// generated route for -/// [UsersListTimelinePage] -class UsersListTimelineRoute extends PageRouteInfo { - UsersListTimelineRoute({ - required Account account, - required String listId, - Key? key, - List? children, - }) : super( - UsersListTimelineRoute.name, - args: UsersListTimelineRouteArgs( - account: account, - listId: listId, - key: key, - ), +/// [SettingsPage] +class SettingsRoute extends PageRouteInfo { + const SettingsRoute({List? children}) + : super( + SettingsRoute.name, initialChildren: children, ); - static const String name = 'UsersListTimelineRoute'; + static const String name = 'SettingsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class UsersListTimelineRouteArgs { - const UsersListTimelineRouteArgs({ - required this.account, - required this.listId, - this.key, - }); - - final Account account; - - final String listId; +/// generated route for +/// [TabSettingsListPage] +class TabSettingsListRoute extends PageRouteInfo { + const TabSettingsListRoute({List? children}) + : super( + TabSettingsListRoute.name, + initialChildren: children, + ); - final Key? key; + static const String name = 'TabSettingsListRoute'; - @override - String toString() { - return 'UsersListTimelineRouteArgs{account: $account, listId: $listId, key: $key}'; - } + static const PageInfo page = PageInfo(name); } /// generated route for -/// [UsersListPage] -class UsersListRoute extends PageRouteInfo { - UsersListRoute({ - required Account account, +/// [TabSettingsPage] +class TabSettingsRoute extends PageRouteInfo { + TabSettingsRoute({ Key? key, + int? tabIndex, List? children, }) : super( - UsersListRoute.name, - args: UsersListRouteArgs( - account: account, + TabSettingsRoute.name, + args: TabSettingsRouteArgs( key: key, + tabIndex: tabIndex, ), initialChildren: children, ); - static const String name = 'UsersListRoute'; + static const String name = 'TabSettingsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UsersListRouteArgs { - const UsersListRouteArgs({ - required this.account, +class TabSettingsRouteArgs { + const TabSettingsRouteArgs({ this.key, + this.tabIndex, }); - final Account account; - final Key? key; + final int? tabIndex; + @override String toString() { - return 'UsersListRouteArgs{account: $account, key: $key}'; + return 'TabSettingsRouteArgs{key: $key, tabIndex: $tabIndex}'; } } /// generated route for -/// [ChannelDetailPage] -class ChannelDetailRoute extends PageRouteInfo { - ChannelDetailRoute({ +/// [HardMutePage] +class HardMuteRoute extends PageRouteInfo { + HardMuteRoute({ Key? key, required Account account, - required String channelId, List? children, }) : super( - ChannelDetailRoute.name, - args: ChannelDetailRouteArgs( + HardMuteRoute.name, + args: HardMuteRouteArgs( key: key, account: account, - channelId: channelId, ), initialChildren: children, ); - static const String name = 'ChannelDetailRoute'; + static const String name = 'HardMuteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ChannelDetailRouteArgs { - const ChannelDetailRouteArgs({ +class HardMuteRouteArgs { + const HardMuteRouteArgs({ this.key, required this.account, - required this.channelId, }); final Key? key; final Account account; - final String channelId; - @override String toString() { - return 'ChannelDetailRouteArgs{key: $key, account: $account, channelId: $channelId}'; + return 'HardMuteRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [ChannelsPage] -class ChannelsRoute extends PageRouteInfo { - ChannelsRoute({ +/// [InstanceMutePage] +class InstanceMuteRoute extends PageRouteInfo { + InstanceMuteRoute({ Key? key, required Account account, List? children, }) : super( - ChannelsRoute.name, - args: ChannelsRouteArgs( + InstanceMuteRoute.name, + args: InstanceMuteRouteArgs( key: key, account: account, ), initialChildren: children, ); - static const String name = 'ChannelsRoute'; + static const String name = 'InstanceMuteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ChannelsRouteArgs { - const ChannelsRouteArgs({ +class InstanceMuteRouteArgs { + const InstanceMuteRouteArgs({ this.key, required this.account, }); @@ -1298,135 +1328,123 @@ class ChannelsRouteArgs { @override String toString() { - return 'ChannelsRouteArgs{key: $key, account: $account}'; + return 'InstanceMuteRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [FederationPage] -class FederationRoute extends PageRouteInfo { - FederationRoute({ +/// [ReactionDeckPage] +class ReactionDeckRoute extends PageRouteInfo { + ReactionDeckRoute({ Key? key, required Account account, - required String host, List? children, }) : super( - FederationRoute.name, - args: FederationRouteArgs( + ReactionDeckRoute.name, + args: ReactionDeckRouteArgs( key: key, account: account, - host: host, ), initialChildren: children, ); - static const String name = 'FederationRoute'; + static const String name = 'ReactionDeckRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class FederationRouteArgs { - const FederationRouteArgs({ +class ReactionDeckRouteArgs { + const ReactionDeckRouteArgs({ this.key, required this.account, - required this.host, }); final Key? key; final Account account; - final String host; - @override String toString() { - return 'FederationRouteArgs{key: $key, account: $account, host: $host}'; + return 'ReactionDeckRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [NoteDetailPage] -class NoteDetailRoute extends PageRouteInfo { - NoteDetailRoute({ +/// [SeveralAccountGeneralSettingsPage] +class SeveralAccountGeneralSettingsRoute + extends PageRouteInfo { + SeveralAccountGeneralSettingsRoute({ Key? key, - required Note note, required Account account, List? children, }) : super( - NoteDetailRoute.name, - args: NoteDetailRouteArgs( + SeveralAccountGeneralSettingsRoute.name, + args: SeveralAccountGeneralSettingsRouteArgs( key: key, - note: note, account: account, ), initialChildren: children, ); - static const String name = 'NoteDetailRoute'; + static const String name = 'SeveralAccountGeneralSettingsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NoteDetailRouteArgs { - const NoteDetailRouteArgs({ +class SeveralAccountGeneralSettingsRouteArgs { + const SeveralAccountGeneralSettingsRouteArgs({ this.key, - required this.note, required this.account, }); final Key? key; - final Note note; - final Account account; @override String toString() { - return 'NoteDetailRouteArgs{key: $key, note: $note, account: $account}'; + return 'SeveralAccountGeneralSettingsRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [SearchPage] -class SearchRoute extends PageRouteInfo { - SearchRoute({ +/// [SeveralAccountSettingsPage] +class SeveralAccountSettingsRoute + extends PageRouteInfo { + SeveralAccountSettingsRoute({ Key? key, - String? initialSearchText, required Account account, List? children, }) : super( - SearchRoute.name, - args: SearchRouteArgs( + SeveralAccountSettingsRoute.name, + args: SeveralAccountSettingsRouteArgs( key: key, - initialSearchText: initialSearchText, account: account, ), initialChildren: children, ); - static const String name = 'SearchRoute'; + static const String name = 'SeveralAccountSettingsRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class SearchRouteArgs { - const SearchRouteArgs({ +class SeveralAccountSettingsRouteArgs { + const SeveralAccountSettingsRouteArgs({ this.key, - this.initialSearchText, required this.account, }); final Key? key; - final String? initialSearchText; - final Account account; @override String toString() { - return 'SearchRouteArgs{key: $key, initialSearchText: $initialSearchText, account: $account}'; + return 'SeveralAccountSettingsRouteArgs{key: $key, account: $account}'; } } @@ -1475,280 +1493,262 @@ class SharingAccountSelectRouteArgs { } /// generated route for -/// [ImportExportPage] -class ImportExportRoute extends PageRouteInfo { - const ImportExportRoute({List? children}) - : super( - ImportExportRoute.name, - initialChildren: children, - ); - - static const String name = 'ImportExportRoute'; - - static const PageInfo page = PageInfo(name); -} - -/// generated route for -/// [GeneralSettingsPage] -class GeneralSettingsRoute extends PageRouteInfo { - const GeneralSettingsRoute({List? children}) +/// [SplashPage] +class SplashRoute extends PageRouteInfo { + const SplashRoute({List? children}) : super( - GeneralSettingsRoute.name, + SplashRoute.name, initialChildren: children, ); - static const String name = 'GeneralSettingsRoute'; + static const String name = 'SplashRoute'; static const PageInfo page = PageInfo(name); } /// generated route for -/// [TabSettingsPage] -class TabSettingsRoute extends PageRouteInfo { - TabSettingsRoute({ +/// [TimeLinePage] +class TimeLineRoute extends PageRouteInfo { + TimeLineRoute({ Key? key, - int? tabIndex, + required TabSetting initialTabSetting, List? children, }) : super( - TabSettingsRoute.name, - args: TabSettingsRouteArgs( + TimeLineRoute.name, + args: TimeLineRouteArgs( key: key, - tabIndex: tabIndex, + initialTabSetting: initialTabSetting, ), initialChildren: children, ); - static const String name = 'TabSettingsRoute'; + static const String name = 'TimeLineRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class TabSettingsRouteArgs { - const TabSettingsRouteArgs({ +class TimeLineRouteArgs { + const TimeLineRouteArgs({ this.key, - this.tabIndex, + required this.initialTabSetting, }); final Key? key; - final int? tabIndex; + final TabSetting initialTabSetting; @override String toString() { - return 'TabSettingsRouteArgs{key: $key, tabIndex: $tabIndex}'; + return 'TimeLineRouteArgs{key: $key, initialTabSetting: $initialTabSetting}'; } } /// generated route for -/// [TabSettingsListPage] -class TabSettingsListRoute extends PageRouteInfo { - const TabSettingsListRoute({List? children}) - : super( - TabSettingsListRoute.name, - initialChildren: children, - ); - - static const String name = 'TabSettingsListRoute'; - - static const PageInfo page = PageInfo(name); -} - -/// generated route for -/// [AppInfoPage] -class AppInfoRoute extends PageRouteInfo { - const AppInfoRoute({List? children}) - : super( - AppInfoRoute.name, +/// [UsersListPage] +class UsersListRoute extends PageRouteInfo { + UsersListRoute({ + required Account account, + Key? key, + List? children, + }) : super( + UsersListRoute.name, + args: UsersListRouteArgs( + account: account, + key: key, + ), initialChildren: children, ); - static const String name = 'AppInfoRoute'; + static const String name = 'UsersListRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -/// generated route for -/// [SettingsPage] -class SettingsRoute extends PageRouteInfo { - const SettingsRoute({List? children}) - : super( - SettingsRoute.name, - initialChildren: children, - ); - - static const String name = 'SettingsRoute'; - - static const PageInfo page = PageInfo(name); -} +class UsersListRouteArgs { + const UsersListRouteArgs({ + required this.account, + this.key, + }); -/// generated route for -/// [AccountListPage] -class AccountListRoute extends PageRouteInfo { - const AccountListRoute({List? children}) - : super( - AccountListRoute.name, - initialChildren: children, - ); + final Account account; - static const String name = 'AccountListRoute'; + final Key? key; - static const PageInfo page = PageInfo(name); + @override + String toString() { + return 'UsersListRouteArgs{account: $account, key: $key}'; + } } /// generated route for -/// [ExploreRoleUsersPage] -class ExploreRoleUsersRoute extends PageRouteInfo { - ExploreRoleUsersRoute({ - Key? key, - required RolesListResponse item, +/// [UsersListTimelinePage] +class UsersListTimelineRoute extends PageRouteInfo { + UsersListTimelineRoute({ required Account account, + required String listId, + Key? key, List? children, }) : super( - ExploreRoleUsersRoute.name, - args: ExploreRoleUsersRouteArgs( - key: key, - item: item, + UsersListTimelineRoute.name, + args: UsersListTimelineRouteArgs( account: account, + listId: listId, + key: key, ), initialChildren: children, ); - static const String name = 'ExploreRoleUsersRoute'; + static const String name = 'UsersListTimelineRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ExploreRoleUsersRouteArgs { - const ExploreRoleUsersRouteArgs({ - this.key, - required this.item, +class UsersListTimelineRouteArgs { + const UsersListTimelineRouteArgs({ required this.account, + required this.listId, + this.key, }); - final Key? key; + final Account account; - final RolesListResponse item; + final String listId; - final Account account; + final Key? key; @override String toString() { - return 'ExploreRoleUsersRouteArgs{key: $key, item: $item, account: $account}'; + return 'UsersListTimelineRouteArgs{account: $account, listId: $listId, key: $key}'; } } /// generated route for -/// [ExplorePage] -class ExploreRoute extends PageRouteInfo { - ExploreRoute({ +/// [UserFolloweePage] +class UserFolloweeRoute extends PageRouteInfo { + UserFolloweeRoute({ Key? key, + required String userId, required Account account, List? children, }) : super( - ExploreRoute.name, - args: ExploreRouteArgs( + UserFolloweeRoute.name, + args: UserFolloweeRouteArgs( key: key, + userId: userId, account: account, ), initialChildren: children, ); - static const String name = 'ExploreRoute'; + static const String name = 'UserFolloweeRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ExploreRouteArgs { - const ExploreRouteArgs({ +class UserFolloweeRouteArgs { + const UserFolloweeRouteArgs({ this.key, + required this.userId, required this.account, }); final Key? key; + final String userId; + final Account account; @override String toString() { - return 'ExploreRouteArgs{key: $key, account: $account}'; + return 'UserFolloweeRouteArgs{key: $key, userId: $userId, account: $account}'; } } /// generated route for -/// [TimeLinePage] -class TimeLineRoute extends PageRouteInfo { - TimeLineRoute({ +/// [UserFollowerPage] +class UserFollowerRoute extends PageRouteInfo { + UserFollowerRoute({ Key? key, - required TabSetting initialTabSetting, + required String userId, + required Account account, List? children, }) : super( - TimeLineRoute.name, - args: TimeLineRouteArgs( + UserFollowerRoute.name, + args: UserFollowerRouteArgs( key: key, - initialTabSetting: initialTabSetting, + userId: userId, + account: account, ), initialChildren: children, ); - static const String name = 'TimeLineRoute'; + static const String name = 'UserFollowerRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class TimeLineRouteArgs { - const TimeLineRouteArgs({ +class UserFollowerRouteArgs { + const UserFollowerRouteArgs({ this.key, - required this.initialTabSetting, + required this.userId, + required this.account, }); final Key? key; - final TabSetting initialTabSetting; + final String userId; + + final Account account; @override String toString() { - return 'TimeLineRouteArgs{key: $key, initialTabSetting: $initialTabSetting}'; + return 'UserFollowerRouteArgs{key: $key, userId: $userId, account: $account}'; } } /// generated route for -/// [FavoritedNotePage] -class FavoritedNoteRoute extends PageRouteInfo { - FavoritedNoteRoute({ +/// [UserPage] +class UserRoute extends PageRouteInfo { + UserRoute({ Key? key, + required String userId, required Account account, List? children, }) : super( - FavoritedNoteRoute.name, - args: FavoritedNoteRouteArgs( + UserRoute.name, + args: UserRouteArgs( key: key, + userId: userId, account: account, ), initialChildren: children, ); - static const String name = 'FavoritedNoteRoute'; + static const String name = 'UserRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class FavoritedNoteRouteArgs { - const FavoritedNoteRouteArgs({ +class UserRouteArgs { + const UserRouteArgs({ this.key, + required this.userId, required this.account, }); final Key? key; + final String userId; + final Account account; @override String toString() { - return 'FavoritedNoteRouteArgs{key: $key, account: $account}'; + return 'UserRouteArgs{key: $key, userId: $userId, account: $account}'; } } diff --git a/lib/view/settings_page/general_settings_page/general_settings_page.dart b/lib/view/settings_page/general_settings_page/general_settings_page.dart index 8014fca14..97505e4ae 100644 --- a/lib/view/settings_page/general_settings_page/general_settings_page.dart +++ b/lib/view/settings_page/general_settings_page/general_settings_page.dart @@ -203,7 +203,7 @@ class GeneralSettingsPageState extends ConsumerState { .where((element) => !element.isDarkTheme)) DropdownMenuItem( value: element.id, - child: Text(element.name), + child: Text("${element.name}っぽいの"), ) ], value: lightModeTheme, @@ -222,7 +222,7 @@ class GeneralSettingsPageState extends ConsumerState { .where((element) => element.isDarkTheme)) DropdownMenuItem( value: element.id, - child: Text(element.name), + child: Text("${element.name}っぽいの"), ) ], value: darkModeTheme, diff --git a/lib/view/themes/built_in_color_themes.dart b/lib/view/themes/built_in_color_themes.dart index b243ed727..91d645fa2 100644 --- a/lib/view/themes/built_in_color_themes.dart +++ b/lib/view/themes/built_in_color_themes.dart @@ -16,332 +16,344 @@ import 'package:miria/model/color_theme.dart'; const builtInColorThemes = [ ColorTheme( id: "4eea646f-7afa-4645-83e9-83af0333cd37", - name: "Mi Lightっぽいの", + name: "Mi Light", isDarkTheme: false, - primary: Color.fromRGBO(134, 179, 0, 1), - primaryDarken: Color.fromRGBO(96, 128, 0, 1), - primaryLighten: Color.fromRGBO(172, 230, 0, 1), - background: Color.fromRGBO(249, 249, 249, 1), - foreground: Color.fromRGBO(103, 103, 103, 1), - renote: Color.fromRGBO(34, 158, 130, 1), - mention: Color.fromRGBO(134, 179, 0, 1), - hashtag: Color.fromRGBO(255, 145, 86, 1), - link: Color.fromRGBO(68, 164, 193, 1), - divider: Color.fromRGBO(232, 232, 232, 1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(255, 255, 255, 1), - panelBackground: Color.fromRGBO(255, 255, 255, 1), + primary: Color(0xff86b300), + primaryDarken: Color(0xff608000), + primaryLighten: Color(0xfface600), + background: Color(0xfff9f9f9), + foreground: Color(0xff676767), + renote: Color(0xff229e82), + mention: Color(0xff86b300), + hashtag: Color(0xffff9156), + link: Color(0xff44a4c1), + divider: Color(0xffe8e8e8), + buttonBackground: Color(0x0c000000), + panel: Color(0xffffffff), + panelBackground: Color(0xffffffff), ), ColorTheme( id: "8050783a-7f63-445a-b270-36d0f6ba1677", - name: "Mi Darkっぽいの", + name: "Mi Dark", isDarkTheme: true, - primary: Color.fromRGBO(134, 179, 0, 1), - primaryDarken: Color.fromRGBO(96, 128, 0, 1), - primaryLighten: Color.fromRGBO(172, 230, 0, 1), - background: Color.fromRGBO(35, 35, 35, 1), - foreground: Color.fromRGBO(199, 209, 216, 1), - renote: Color.fromRGBO(134, 179, 0, 1), - mention: Color.fromRGBO(218, 109, 53, 1), - hashtag: Color.fromRGBO(76, 184, 212, 1), - link: Color.fromRGBO(134, 179, 0, 1), - divider: Color.fromRGBO(255, 255, 255, 0.14), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(45, 45, 45, 1), - panelBackground: Color.fromRGBO(53, 53, 53, 1), + primary: Color(0xff86b300), + primaryDarken: Color(0xff608000), + primaryLighten: Color(0xfface600), + background: Color(0xff232323), + foreground: Color(0xffc7d1d8), + renote: Color(0xff86b300), + mention: Color(0xffda6d35), + hashtag: Color(0xff4cb8d4), + link: Color(0xff86b300), + divider: Color(0x23ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff2d2d2d), + panelBackground: Color(0xff353535), ), ColorTheme( id: "6ed80faa-74f0-42c2-98e4-a64d9e138eab", - name: "Mi Coffee Lightっぽいの", + name: "Mi Coffee Light", isDarkTheme: false, - primary: Color.fromRGBO(159, 137, 137, 1), - primaryDarken: Color.fromRGBO(135, 110, 110, 1), - primaryLighten: Color.fromRGBO(182, 165, 165, 1), - background: Color.fromRGBO(245, 243, 243, 1), - foreground: Color.fromRGBO(127, 102, 102, 1), - renote: Color.fromRGBO(160, 172, 125, 1), - mention: Color.fromRGBO(159, 137, 137, 1), - hashtag: Color.fromRGBO(159, 137, 137, 1), - link: Color.fromRGBO(137, 151, 159, 1), - divider: Color.fromRGBO(87, 68, 68, 0.1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(255, 255, 255, 1), - panelBackground: Color.fromRGBO(255, 255, 255, 1), + primary: Color(0xff9f8989), + primaryDarken: Color(0xff876e6e), + primaryLighten: Color(0xffb6a5a5), + background: Color(0xfff5f3f3), + foreground: Color(0xff7f6666), + renote: Color(0xffa0ac7d), + mention: Color(0xff9f8989), + hashtag: Color(0xff9f8989), + link: Color(0xff89979f), + divider: Color(0x19574444), + buttonBackground: Color(0x0c000000), + panel: Color(0xffffffff), + panelBackground: Color(0xffffffff), ), ColorTheme( id: "c503d768-7c70-4db2-a4e6-08264304bc8d", - name: "Mi Persimmon Darkっぽいの", + name: "Mi Persimmon Dark", isDarkTheme: true, - primary: Color.fromRGBO(206, 102, 65, 1), - primaryDarken: Color.fromRGBO(175, 79, 45, 1), - primaryLighten: Color.fromRGBO(216, 135, 106, 1), - background: Color.fromRGBO(31, 33, 31, 1), - foreground: Color.fromRGBO(205, 216, 199, 1), - renote: Color.fromRGBO(206, 102, 65, 1), - mention: Color.fromRGBO(206, 102, 65, 1), - hashtag: Color.fromRGBO(104, 186, 208, 1), - link: Color.fromRGBO(161, 199, 88, 1), - divider: Color.fromRGBO(255, 255, 255, 0.14), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(41, 43, 41, 1), - panelBackground: Color.fromRGBO(48, 51, 48, 1), + primary: Color(0xffce6641), + primaryDarken: Color(0xffaf4f2d), + primaryLighten: Color(0xffd8876a), + background: Color(0xff1f211f), + foreground: Color(0xffcdd8c7), + renote: Color(0xffce6641), + mention: Color(0xffce6641), + hashtag: Color(0xff68bad0), + link: Color(0xffa1c758), + divider: Color(0x23ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff292b29), + panelBackground: Color(0xff303330), ), ColorTheme( id: "0ff48d43-aab3-46e7-ab12-8492110d2e2b", - name: "Mi Apricot Lightっぽいの", + name: "Mi Apricot Light", isDarkTheme: false, - primary: Color.fromRGBO(234, 154, 82, 1), - primaryDarken: Color.fromRGBO(228, 127, 37, 1), - primaryLighten: Color.fromRGBO(240, 181, 127, 1), - background: Color.fromRGBO(230, 229, 226, 1), - foreground: Color.fromRGBO(149, 143, 139, 1), - renote: Color.fromRGBO(234, 154, 82, 1), - mention: Color.fromRGBO(234, 154, 82, 1), - hashtag: Color.fromRGBO(234, 154, 82, 1), - link: Color.fromRGBO(234, 154, 82, 1), - divider: Color.fromRGBO(0, 0, 0, 0.1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(238, 236, 232, 1), - panelBackground: Color.fromRGBO(244, 243, 241, 1), + primary: Color(0xffea9a52), + primaryDarken: Color(0xffe47f25), + primaryLighten: Color(0xfff0b57f), + background: Color(0xffe6e5e2), + foreground: Color(0xff958f8b), + renote: Color(0xffea9a52), + mention: Color(0xffea9a52), + hashtag: Color(0xffea9a52), + link: Color(0xffea9a52), + divider: Color(0x19000000), + buttonBackground: Color(0x0c000000), + panel: Color(0xffeeece8), + panelBackground: Color(0xfff5f3f1), ), ColorTheme( id: "080a01c5-377d-4fbb-88cc-6bb5d04977ea", - name: "Mi Astro Darkっぽいの", + name: "Mi Astro Dark", isDarkTheme: true, - primary: Color.fromRGBO(129, 192, 139, 1), - primaryDarken: Color.fromRGBO(95, 175, 108, 1), - primaryLighten: Color.fromRGBO(163, 209, 170, 1), - background: Color.fromRGBO(35, 33, 37, 1), - foreground: Color.fromRGBO(239, 218, 185, 1), - renote: Color.fromRGBO(101, 156, 200, 1), - mention: Color.fromRGBO(255, 209, 82, 1), - hashtag: Color.fromRGBO(255, 145, 86, 1), - link: Color.fromRGBO(120, 176, 160, 1), - divider: Color.fromRGBO(255, 255, 255, 0.1), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(42, 39, 43, 1), - panelBackground: Color.fromRGBO(50, 46, 51, 1), + primary: Color(0xff81c08b), + primaryDarken: Color(0xff5faf6c), + primaryLighten: Color(0xffa3d1aa), + background: Color(0xff232125), + foreground: Color(0xffefdab9), + renote: Color(0xff659cc8), + mention: Color(0xffffd152), + hashtag: Color(0xffff9156), + link: Color(0xff78b0a0), + divider: Color(0x19ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff2a272b), + panelBackground: Color(0xff322e33), ), ColorTheme( id: "a58a0abb-ff8c-476a-8dec-0ad7837e7e96", - name: "Mi Rainy Lightっぽいの", + name: "Mi Rainy Light", isDarkTheme: false, - primary: Color.fromRGBO(93, 176, 218, 1), - primaryDarken: Color.fromRGBO(51, 156, 209, 1), - primaryLighten: Color.fromRGBO(135, 196, 227, 1), - background: Color.fromRGBO(246, 248, 249, 1), - foreground: Color.fromRGBO(99, 107, 113, 1), - renote: Color.fromRGBO(93, 176, 218, 1), - mention: Color.fromRGBO(93, 176, 218, 1), - hashtag: Color.fromRGBO(93, 176, 218, 1), - link: Color.fromRGBO(93, 176, 218, 1), - divider: Color.fromRGBO(230, 233, 234, 1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(255, 255, 255, 1), - panelBackground: Color.fromRGBO(255, 255, 255, 1), + primary: Color(0xff5db0da), + primaryDarken: Color(0xff339cd1), + primaryLighten: Color(0xff87c4e3), + background: Color(0xfff6f8f9), + foreground: Color(0xff636b71), + renote: Color(0xff5db0da), + mention: Color(0xff5db0da), + hashtag: Color(0xff5db0da), + link: Color(0xff5db0da), + divider: Color(0xffe6e9ea), + buttonBackground: Color(0x0c000000), + panel: Color(0xffffffff), + panelBackground: Color(0xffffffff), ), ColorTheme( - id: "32a637ef-b47a-4775-bb7b-bacbb823f865", - name: "Mi Future Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(99, 226, 183, 1), - primaryDarken: Color.fromRGBO(56, 218, 163, 1), - primaryLighten: Color.fromRGBO(142, 234, 203, 1), - background: Color.fromRGBO(16, 16, 20, 1), - foreground: Color.fromRGBO(213, 213, 214, 1), - renote: Color.fromRGBO(99, 226, 183, 1), - mention: Color.fromRGBO(242, 201, 125, 1), - hashtag: Color.fromRGBO(112, 192, 232, 1), - link: Color.fromRGBO(232, 128, 128, 1), - divider: Color.fromRGBO(255, 255, 255, 0.1), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(24, 24, 28, 1), - panelBackground: Color.fromRGBO(31, 31, 36, 1)), + id: "32a637ef-b47a-4775-bb7b-bacbb823f865", + name: "Mi Future Dark", + isDarkTheme: true, + primary: Color(0xff63e2b7), + primaryDarken: Color(0xff38daa3), + primaryLighten: Color(0xff8eeacb), + background: Color(0xff101014), + foreground: Color(0xffd5d5d6), + renote: Color(0xff63e2b7), + mention: Color(0xfff2c97d), + hashtag: Color(0xff70c0e8), + link: Color(0xffe88080), + divider: Color(0x19ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff18181c), + panelBackground: Color(0xff1f1f24), + ), ColorTheme( - id: "1100673c-f902-4ccd-93aa-7cb88be56178", - name: "Mi Botanical Lightっぽいの", - isDarkTheme: false, - primary: Color.fromRGBO(119, 181, 140, 1), - primaryDarken: Color.fromRGBO(88, 161, 113, 1), - primaryLighten: Color.fromRGBO(152, 199, 168, 1), - background: Color.fromRGBO(226, 222, 218, 1), - foreground: Color.fromRGBO(61, 61, 61, 1), - renote: Color.fromRGBO(34, 158, 146, 1), - mention: Color.fromRGBO(218, 109, 53, 1), - hashtag: Color.fromRGBO(76, 184, 212, 1), - link: Color.fromRGBO(119, 181, 140, 1), - divider: Color.fromRGBO(207, 207, 207, 1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(235, 231, 229, 1), - panelBackground: Color.fromRGBO(235, 231, 229, 1)), + id: "1100673c-f902-4ccd-93aa-7cb88be56178", + name: "Mi Botanical Light", + isDarkTheme: false, + primary: Color(0xff77b58c), + primaryDarken: Color(0xff58a171), + primaryLighten: Color(0xff98c7a8), + background: Color(0xffe2deda), + foreground: Color(0xff3d3d3d), + renote: Color(0xff229e92), + mention: Color(0xffda6d35), + hashtag: Color(0xff4cb8d4), + link: Color(0xff77b58c), + divider: Color(0xffcfcfcf), + buttonBackground: Color(0x0c000000), + panel: Color(0xffebe7e5), + panelBackground: Color(0xffebe7e5), + ), ColorTheme( - id: "504debaf-4912-6a4c-5059-1db08a76b737", - name: "Mi Botanical Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(148, 179, 0, 1), - primaryDarken: Color.fromRGBO(106, 128, 0, 1), - primaryLighten: Color.fromRGBO(190, 230, 0, 1), - background: Color.fromRGBO(37, 38, 36, 1), - foreground: Color.fromRGBO(216, 212, 119, 1), - renote: Color.fromRGBO(148, 179, 0, 1), - mention: Color.fromRGBO(212, 153, 76, 1), - hashtag: Color.fromRGBO(91, 203, 176, 1), - link: Color.fromRGBO(148, 179, 0, 1), - divider: Color.fromRGBO(255, 255, 255, 0.14), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(47, 47, 44, 1), - panelBackground: Color.fromRGBO(55, 55, 51, 1)), + id: "504debaf-4912-6a4c-5059-1db08a76b737", + name: "Mi Botanical Dark", + isDarkTheme: true, + primary: Color(0xff94b300), + primaryDarken: Color(0xff6a8000), + primaryLighten: Color(0xffbee600), + background: Color(0xff252624), + foreground: Color(0xffd8d4c7), + renote: Color(0xff94b300), + mention: Color(0xffd4994c), + hashtag: Color(0xff5bcbb0), + link: Color(0xff94b300), + divider: Color(0x23ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff2f2f2c), + panelBackground: Color(0xff373733), + ), ColorTheme( - id: "6128c2a9-5c54-43fe-a47d-17942356470b", - name: "Mi Vivid Lightっぽいの", - isDarkTheme: false, - primary: Color.fromRGBO(0, 140, 255, 1), - primaryDarken: Color.fromRGBO(0, 112, 204, 1), - primaryLighten: Color.fromRGBO(51, 163, 255, 1), - background: Color.fromRGBO(250, 250, 250, 1), - foreground: Color.fromRGBO(68, 68, 68, 1), - renote: Color.fromRGBO(0, 140, 255, 1), - mention: Color.fromRGBO(0, 140, 255, 1), - hashtag: Color.fromRGBO(146, 212, 0, 1), - link: Color.fromRGBO(255, 148, 0, 1), - divider: Color.fromRGBO(0, 0, 0, 0.08), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(255, 255, 255, 1), - panelBackground: Color.fromRGBO(255, 255, 255, 1)), + id: "6128c2a9-5c54-43fe-a47d-17942356470b", + name: "Mi Vivid Light", + isDarkTheme: false, + primary: Color(0xff008cff), + primaryDarken: Color(0xff0070cc), + primaryLighten: Color(0xff33a3ff), + background: Color(0xfffafafa), + foreground: Color(0xff444444), + renote: Color(0xff008cff), + mention: Color(0xff008cff), + hashtag: Color(0xff92d400), + link: Color(0xffff9400), + divider: Color(0x14000000), + buttonBackground: Color(0x0c000000), + panel: Color(0xffffffff), + panelBackground: Color(0xffffffff), + ), ColorTheme( - id: "02816013-8107-440f-877e-865083ffe194", - name: "Mi Green+Lime Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(180, 233, 0, 1), - primaryDarken: Color.fromRGBO(141, 182, 0, 1), - primaryLighten: Color.fromRGBO(204, 255, 29, 1), - background: Color.fromRGBO(12, 18, 16, 1), - foreground: Color.fromRGBO(222, 231, 228, 1), - renote: Color.fromRGBO(180, 233, 0, 1), - mention: Color.fromRGBO(180, 233, 0, 1), - hashtag: Color.fromRGBO(255, 145, 86, 1), - link: Color.fromRGBO(36, 215, 206, 1), - divider: Color.fromRGBO(231, 255, 251, 0.14), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(25, 35, 32, 1), - panelBackground: Color.fromRGBO(31, 44, 40, 1)), + id: "02816013-8107-440f-877e-865083ffe194", + name: "Mi Green+Lime Dark", + isDarkTheme: true, + primary: Color(0xffb4e900), + primaryDarken: Color(0xff8db600), + primaryLighten: Color(0xffccff1d), + background: Color(0xff0c1210), + foreground: Color(0xffdee7e4), + renote: Color(0xffb4e900), + mention: Color(0xffb4e900), + hashtag: Color(0xffff9156), + link: Color(0xff24d7ce), + divider: Color(0x24e7fffb), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff192320), + panelBackground: Color(0xff1f2c28), + ), ColorTheme( - id: "ac168876-f737-4074-a3fc-a370c732ef48", - name: "Mi Cherry Lightっぽいの", - isDarkTheme: false, - primary: Color.fromRGBO(219, 96, 114, 1), - primaryDarken: Color.fromRGBO(210, 54, 77, 1), - primaryLighten: Color.fromRGBO(228, 138, 151, 1), - background: Color.fromRGBO(254, 248, 249, 1), - foreground: Color.fromRGBO(152, 13, 26, 1), - renote: Color.fromRGBO(219, 96, 114, 1), - mention: Color.fromRGBO(219, 96, 114, 1), - hashtag: Color.fromRGBO(219, 96, 114, 1), - link: Color.fromRGBO(156, 187, 5, 1), - divider: Color.fromRGBO(134, 51, 51, 0.1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(255, 255, 255, 1), - panelBackground: Color.fromRGBO(255, 255, 255, 1)), + id: "ac168876-f737-4074-a3fc-a370c732ef48", + name: "Mi Cherry Light", + isDarkTheme: false, + primary: Color(0xffdb6072), + primaryDarken: Color(0xffd2364d), + primaryLighten: Color(0xffe48a97), + background: Color(0xfffef8f9), + foreground: Color(0xff980d1a), + renote: Color(0xffdb6072), + mention: Color(0xffdb6072), + hashtag: Color(0xffdb6072), + link: Color(0xff9cbb05), + divider: Color(0x19863333), + buttonBackground: Color(0x0c000000), + panel: Color(0xffffffff), + panelBackground: Color(0xffffffff), + ), ColorTheme( - id: "dc489603-27b5-424a-9b25-1ff6aec9824a", - name: "Mi Green+Orange Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(233, 127, 0, 1), - primaryDarken: Color.fromRGBO(182, 99, 0, 1), - primaryLighten: Color.fromRGBO(255, 152, 29, 1), - background: Color.fromRGBO(12, 18, 16, 1), - foreground: Color.fromRGBO(222, 231, 228, 1), - renote: Color.fromRGBO(233, 127, 0, 1), - mention: Color.fromRGBO(233, 127, 0, 1), - hashtag: Color.fromRGBO(255, 145, 86, 1), - link: Color.fromRGBO(36, 215, 206, 1), - divider: Color.fromRGBO(231, 255, 251, 0.14), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(25, 35, 32, 1), - panelBackground: Color.fromRGBO(31, 44, 40, 1)), + id: "dc489603-27b5-424a-9b25-1ff6aec9824a", + name: "Mi Green+Orange Dark", + isDarkTheme: true, + primary: Color(0xffe97f00), + primaryDarken: Color(0xffb66300), + primaryLighten: Color(0xffff981d), + background: Color(0xff0c1210), + foreground: Color(0xffdee7e4), + renote: Color(0xffe97f00), + mention: Color(0xffe97f00), + hashtag: Color(0xffff9156), + link: Color(0xff24d7ce), + divider: Color(0x24e7fffb), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff192320), + panelBackground: Color(0xff1f2c28), + ), ColorTheme( - id: "213273e5-7d20-d5f0-6e36-1b6a4f67115c", - name: "Mi Sushi Lightっぽいの", - isDarkTheme: false, - primary: Color.fromRGBO(227, 103, 73, 1), - primaryDarken: Color.fromRGBO(216, 69, 33, 1), - primaryLighten: Color.fromRGBO(234, 140, 117, 1), - background: Color.fromRGBO(240, 238, 233, 1), - foreground: Color.fromRGBO(95, 95, 95, 1), - renote: Color.fromRGBO(227, 103, 73, 1), - mention: Color.fromRGBO(227, 103, 73, 1), - hashtag: Color.fromRGBO(34, 158, 130, 1), - link: Color.fromRGBO(227, 103, 73, 1), - divider: Color.fromRGBO(0, 0, 0, 0.1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(246, 245, 242, 1), - panelBackground: Color.fromRGBO(252, 252, 251, 1)), + id: "213273e5-7d20-d5f0-6e36-1b6a4f67115c", + name: "Mi Sushi Light", + isDarkTheme: false, + primary: Color(0xffe36749), + primaryDarken: Color(0xffd84521), + primaryLighten: Color(0xffea8c75), + background: Color(0xfff0eee9), + foreground: Color(0xff5f5f5f), + renote: Color(0xffe36749), + mention: Color(0xffe36749), + hashtag: Color(0xff229e82), + link: Color(0xffe36749), + divider: Color(0x19000000), + buttonBackground: Color(0x0c000000), + panel: Color(0xfff6f5f2), + panelBackground: Color(0xfffcfcfb), + ), ColorTheme( - id: "ac168876-f737-4074-a3fc-a370c732ef48", - name: "Mi Cherry Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(255, 89, 117, 1), - primaryDarken: Color.fromRGBO(255, 38, 75, 1), - primaryLighten: Color.fromRGBO(255, 140, 159, 1), - background: Color.fromRGBO(28, 28, 37, 1), - foreground: Color.fromRGBO(236, 239, 244, 1), - renote: Color.fromRGBO(255, 89, 117, 1), - mention: Color.fromRGBO(255, 89, 117, 1), - hashtag: Color.fromRGBO(255, 89, 117, 1), - link: Color.fromRGBO(255, 89, 117, 1), - divider: Color.fromRGBO(63, 63, 80, 1), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(35, 35, 47, 1), - panelBackground: Color.fromRGBO(42, 42, 56, 1)), + id: "679b3b87-a4e9-4789-8696-b56c15cc33b0", + name: "Mi Cherry Dark", + isDarkTheme: true, + primary: Color(0xffff5975), + primaryDarken: Color(0xffff264b), + primaryLighten: Color(0xffff8c9f), + background: Color(0xff1c1c25), + foreground: Color(0xffeceff4), + renote: Color(0xffff5975), + mention: Color(0xffff5975), + hashtag: Color(0xffff5975), + link: Color(0xffff5975), + divider: Color(0xff3f3f50), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff23232f), + panelBackground: Color(0xff2a2a38), + ), ColorTheme( - id: "e2c940b5-6e9a-4c03-b738-261c720c426d", - name: "Mi U0 Lightっぽいの", - isDarkTheme: false, - primary: Color.fromRGBO(71, 131, 132, 1), - primaryDarken: Color.fromRGBO(53, 98, 99, 1), - primaryLighten: Color.fromRGBO(89, 164, 165, 1), - background: Color.fromRGBO(231, 231, 235, 1), - foreground: Color.fromRGBO(95, 95, 95, 1), - renote: Color.fromRGBO(71, 131, 132, 1), - mention: Color.fromRGBO(71, 131, 132, 1), - hashtag: Color.fromRGBO(31, 49, 52, 1), - link: Color.fromRGBO(71, 131, 132, 1), - divider: Color.fromRGBO(70, 70, 70, 0.1), - buttonBackground: Color.fromRGBO(0, 0, 0, 0.05), - panel: Color.fromRGBO(239, 239, 242, 1), - panelBackground: Color.fromRGBO(248, 248, 249, 1)), + id: "e2c940b5-6e9a-4c03-b738-261c720c426d", + name: "Mi U0 Light", + isDarkTheme: false, + primary: Color(0xff478384), + primaryDarken: Color(0xff356263), + primaryLighten: Color(0xff59a4a5), + background: Color(0xffe7e7eb), + foreground: Color(0xff5f5f5f), + renote: Color(0xff478384), + mention: Color(0xff478384), + hashtag: Color(0xff1f3134), + link: Color(0xff478384), + divider: Color(0x1a464646), + buttonBackground: Color(0x0d000000), + panel: Color(0xffefeff2), + panelBackground: Color(0xfff7f7f9), + ), ColorTheme( - id: "66e7e5a9-cd43-42cd-837d-12f47841fa34", - name: "Mi Ice Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(71, 191, 232, 1), - primaryDarken: Color.fromRGBO(28, 174, 224, 1), - primaryLighten: Color.fromRGBO(116, 207, 238, 1), - background: Color.fromRGBO(33, 37, 38, 1), - foreground: Color.fromRGBO(218, 218, 218, 1), - renote: Color.fromRGBO(34, 158, 130, 1), - mention: Color.fromRGBO(71, 191, 232, 1), - hashtag: Color.fromRGBO(255, 145, 86, 1), - link: Color.fromRGBO(68, 164, 193, 1), - divider: Color.fromRGBO(255, 255, 255, 0.1), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(40, 45, 46, 1), - panelBackground: Color.fromRGBO(47, 53, 54, 1)), + id: "66e7e5a9-cd43-42cd-837d-12f47841fa34", + name: "Mi Ice Dark", + isDarkTheme: true, + primary: Color(0xff47bfe8), + primaryDarken: Color(0xff1caee0), + primaryLighten: Color(0xff74cfee), + background: Color(0xff212526), + foreground: Color(0xffdadada), + renote: Color(0xff229e82), + mention: Color(0xff47bfe8), + hashtag: Color(0xffff9156), + link: Color(0xff44a4c1), + divider: Color(0x19ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff282d2e), + panelBackground: Color(0xff2f3536), + ), ColorTheme( - id: "7a5bc13b-df8f-4d44-8e94-4452f0c634bb", - name: "Mi U0 Darkっぽいの", - isDarkTheme: true, - primary: Color.fromRGBO(0, 164, 151, 1), - primaryDarken: Color.fromRGBO(0, 113, 104, 1), - primaryLighten: Color.fromRGBO(0, 215, 198, 1), - background: Color.fromRGBO(23, 36, 38, 1), - foreground: Color.fromRGBO(218, 218, 218, 1), - renote: Color.fromRGBO(0, 164, 151, 1), - mention: Color.fromRGBO(0, 164, 151, 1), - hashtag: Color.fromRGBO(230, 180, 34, 1), - link: Color.fromRGBO(0, 164, 151, 1), - divider: Color.fromRGBO(255, 255, 255, 0.1), - buttonBackground: Color.fromRGBO(255, 255, 255, 0.05), - panel: Color.fromRGBO(29, 45, 48, 1), - panelBackground: Color.fromRGBO(35, 54, 57, 1)), + id: "7a5bc13b-df8f-4d44-8e94-4452f0c634bb", + name: "Mi U0 Dark", + isDarkTheme: true, + primary: Color(0xff00a497), + primaryDarken: Color(0xff007168), + primaryLighten: Color(0xff00d7c6), + background: Color(0xff172426), + foreground: Color(0xffdadada), + renote: Color(0xff00a497), + mention: Color(0xff00a497), + hashtag: Color(0xffe6b422), + link: Color(0xff00a497), + divider: Color(0x19ffffff), + buttonBackground: Color(0x0cffffff), + panel: Color(0xff1d2d30), + panelBackground: Color(0xff23363a), + ) ];