mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-24 00:10:47 +00:00
c66381f813
* sync with resources * separated `ExpandableSectionList` as widget * fixed generic type * implemented `FilmsScreen` (wip) * made `SliverScreen` title a widget * [`FilmEditScreen`] wip * [`FilmEditScreen`] added validation * fixed title overflow for `SliverScreen` * [`FilmEditScreen`] separated add and edit blocs * [`FilmEditScreen`] split into separate components * added bottom widget to `SliverScreen` * implemented films list tabs fo `FilmsScreen` * added films screen to navigation * replaced explicit routes names with enum values * implemented CRUD for custom films * added placeholder for empty custom films list * added `FilmsStorageService` * fixed unit tests * fixed integration tests * lint * fixed golden tests * added iap stub methods * added custom films to features list * use 2.0.0 resouces * fixed film picket tests * migrated to iap 1.0.1 * autofocus film name field * wait for the film to edited * migrated to iap 1.1.0 * typo * wait for storage initialization * migrated to iap 1.1.1 * fixed films initialization * added conditions to films model `updateShouldNotifyDependent` * typo * fixed select film discard notify * covered films model `updateShouldNotifyDependent`
40 lines
834 B
Dart
40 lines
834 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:lightmeter/res/dimens.dart';
|
|
|
|
double dialogTextHeight(
|
|
BuildContext context,
|
|
String text,
|
|
TextStyle? style,
|
|
double textPadding,
|
|
) =>
|
|
textHeight(
|
|
text,
|
|
style,
|
|
MediaQuery.sizeOf(context).width - Dimens.dialogMargin.horizontal - textPadding,
|
|
);
|
|
|
|
double textHeight(
|
|
String text,
|
|
TextStyle? style,
|
|
double maxWidth,
|
|
) =>
|
|
textSize(text, style, maxWidth).height;
|
|
|
|
Size textSize(
|
|
String text,
|
|
TextStyle? style,
|
|
double maxWidth,
|
|
) {
|
|
final TextPainter titlePainter = TextPainter(
|
|
text: TextSpan(
|
|
text: text,
|
|
style: style,
|
|
),
|
|
textDirection: TextDirection.ltr,
|
|
)..layout(maxWidth: maxWidth);
|
|
return titlePainter.size;
|
|
}
|
|
|
|
extension TextLineHeight on TextStyle {
|
|
double get lineHeight => fontSize! * height!;
|
|
}
|