503 lines
22 KiB
Dart
503 lines
22 KiB
Dart
|
|
import 'package:example/data/settings/ui_settings.dart';
|
|||
|
|
import 'package:example/generated/assets.dart';
|
|||
|
|
import 'package:example/generated/l10n.dart';
|
|||
|
|
import 'package:example/pages/root/root_model.dart';
|
|||
|
|
import 'package:example/pages/widgets/guru_demo_page.dart';
|
|||
|
|
import 'package:flutter/material.dart';
|
|||
|
|
import 'package:get/get.dart';
|
|||
|
|
import 'package:guru_utils/extensions/extensions.dart';
|
|||
|
|
import 'package:guru_widgets/guru_widgets.dart';
|
|||
|
|
import 'package:guru_popup/guru_popup.dart';
|
|||
|
|
import '../../console/console_button.dart';
|
|||
|
|
import 'dialog_controller.dart';
|
|||
|
|
import 'package:guru_widgets/theme/guru_theme.dart';
|
|||
|
|
import 'package:guru_widgets/pages/settings/guru_settings_page.dart';
|
|||
|
|
import 'package:guru_widgets/appbar/guru_app_bar.dart';
|
|||
|
|
import 'package:guru_widgets/theme/guru_theme.dart';
|
|||
|
|
|
|||
|
|
class DialogPage extends GetWidget<DialogController> {
|
|||
|
|
DialogPage({Key? key}) : super(key: key);
|
|||
|
|
|
|||
|
|
final RootDesignSpec designSpec = RootDesignSpec.get();
|
|||
|
|
|
|||
|
|
final _divider = const HorizontalDivider(
|
|||
|
|
height: 0.3,
|
|||
|
|
indent: 16,
|
|||
|
|
endIndent: 16,
|
|||
|
|
thickness: 0.5,
|
|||
|
|
color: Colors.white30,
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
Widget buildEntranceItem(String text,
|
|||
|
|
{String? leadingAsset, VoidCallback? onTap, TextStyle? style}) {
|
|||
|
|
final List<Widget> leadingWidgets = [];
|
|||
|
|
if (leadingAsset != null) {
|
|||
|
|
leadingWidgets.addAll([
|
|||
|
|
Image.asset(leadingAsset,
|
|||
|
|
width: designSpec.itemIconSize, height: designSpec.itemIconSize),
|
|||
|
|
SizedSpacer(width: designSpec.itemIconEndSpacing)
|
|||
|
|
]);
|
|||
|
|
}
|
|||
|
|
return Material(
|
|||
|
|
color: const Color(0xFF1D1D1D),
|
|||
|
|
child: Ink(
|
|||
|
|
height: designSpec.itemHeight,
|
|||
|
|
child: InkWell(
|
|||
|
|
onTap: () {
|
|||
|
|
onTap?.call();
|
|||
|
|
},
|
|||
|
|
child: Padding(
|
|||
|
|
padding: EdgeInsetsDirectional.only(
|
|||
|
|
start: designSpec.itemStartSpacing,
|
|||
|
|
end: designSpec.entryItemEndSpacing),
|
|||
|
|
child: Row(
|
|||
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|||
|
|
children: [
|
|||
|
|
...leadingWidgets,
|
|||
|
|
Expanded(
|
|||
|
|
flex: 1,
|
|||
|
|
child: AutoSizeText(text,
|
|||
|
|
minFontSize: 10,
|
|||
|
|
style: style ??
|
|||
|
|
TextStyle(
|
|||
|
|
fontSize: designSpec.itemTextFontSize,
|
|||
|
|
fontWeight: GuruTheme.fwMedium,
|
|||
|
|
color: Colors.white)),
|
|||
|
|
),
|
|||
|
|
Image.asset(Assets.imagesIcArrowRight,
|
|||
|
|
width: designSpec.entryItemIconSize,
|
|||
|
|
height: designSpec.entryItemIconSize,
|
|||
|
|
color: Colors.white),
|
|||
|
|
],
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Widget buildBody(BuildContext context) {
|
|||
|
|
return Column(
|
|||
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|||
|
|
children: [
|
|||
|
|
const SizedSpacer(height: 16),
|
|||
|
|
const Padding(
|
|||
|
|
padding: EdgeInsets.only(left: 12),
|
|||
|
|
child: Text('Daily challenge',
|
|||
|
|
style: TextStyle(color: Colors.white, fontSize: 18))),
|
|||
|
|
const SizedSpacer(height: 8),
|
|||
|
|
buildEntranceItem("Daily challenge", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
title: 'Daily Challenge',
|
|||
|
|
illustration: Image.asset(
|
|||
|
|
"assets/images/daily_challenge/ic_dialog_main.png"),
|
|||
|
|
summary: "Well done! You've unlocked the Daily Challenge!",
|
|||
|
|
primaryButtonAction: 'Check it out');
|
|||
|
|
}),
|
|||
|
|
const SizedSpacer(height: 16),
|
|||
|
|
buildEntranceItem(
|
|||
|
|
"Cancelable Loading(+8s-Error; +5s-Loading; +15s-complete)",
|
|||
|
|
onTap: () async {
|
|||
|
|
final BehaviorSubject<String?> subject = BehaviorSubject.seeded(null);
|
|||
|
|
final completer = GuruPopup.instance
|
|||
|
|
.showCancelableLoading(errorStream: subject.stream);
|
|||
|
|
await Future.delayed(const Duration(seconds: 8));
|
|||
|
|
subject.add("Oops! Please check your Internet connection.");
|
|||
|
|
await Future.delayed(const Duration(seconds: 5));
|
|||
|
|
subject.add(null);
|
|||
|
|
await Future.delayed(const Duration(seconds: 15));
|
|||
|
|
completer?.complete();
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Simple Loading(+5s-complete)", onTap: () async {
|
|||
|
|
final completer = GuruPopup.instance.showSimpleLoading();
|
|||
|
|
await Future.delayed(const Duration(seconds: 5));
|
|||
|
|
completer.complete();
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Feedback Loading(+5s-complete)", onTap: () async {
|
|||
|
|
final successStream = Stream.fromFuture(
|
|||
|
|
Future.delayed(const Duration(seconds: 4)).then((_) => true));
|
|||
|
|
final completer = GuruPopup.instance.showFeedbackLoading(
|
|||
|
|
successStream: successStream,
|
|||
|
|
feedbackText: "short feedback text");
|
|||
|
|
await Future.delayed(const Duration(seconds: 7));
|
|||
|
|
completer.complete();
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("no title + no summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showPurchaseStatusDialog();
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("no title + no summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset("assets/images/pic_problems.png"),
|
|||
|
|
primaryButtonAction: "OK");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("no title + summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset("assets/images/pic_problems.png"),
|
|||
|
|
primaryButtonAction: "Contact Support",
|
|||
|
|
summary: "Having problems purc");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("only title", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset("assets/images/pic_problems.png"),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "Main Title",
|
|||
|
|
positionedBuilders: [
|
|||
|
|
(context, designSpec) {
|
|||
|
|
final top = designSpec.measuredMetrics.measureVertical(80.0);
|
|||
|
|
final size = designSpec.measuredMetrics.measureHeight(480.0);
|
|||
|
|
return Positioned(
|
|||
|
|
top: top,
|
|||
|
|
width: size,
|
|||
|
|
height: size,
|
|||
|
|
child: Container(
|
|||
|
|
color: Colors.red,
|
|||
|
|
));
|
|||
|
|
}
|
|||
|
|
]);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + subtitle", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: S.of(context).settings,
|
|||
|
|
title: S.of(context).settings,
|
|||
|
|
subtitle: S.of(context).removeBannerAndPopupAds);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "Main Title",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("two line title + summary", onTap: () async {
|
|||
|
|
final String title = S.of(context).settings +
|
|||
|
|
S.of(context).settings +
|
|||
|
|
S.of(context).settings +
|
|||
|
|
S.of(context).settings;
|
|||
|
|
final String summary = S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds;
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: S.of(context).settings,
|
|||
|
|
secondaryButtonText: S.of(context).settings,
|
|||
|
|
title: title,
|
|||
|
|
subtitle: title,
|
|||
|
|
summary: summary);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + subtitle + summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "Main Title",
|
|||
|
|
subtitle: "This is a Subtitle",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("2 lines title + long sub title + summary",
|
|||
|
|
onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title:
|
|||
|
|
"This is a Main Title, two lines text Too long to reduce the size",
|
|||
|
|
subtitle: "This is a sub title, Too long to reduce the size",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + subtitle + summary + secondaryButton",
|
|||
|
|
onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "Main Title",
|
|||
|
|
subtitle: "This is a Subtitle",
|
|||
|
|
secondaryButtonText: "Secondary Button",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("two title + subtitle + summary + secondaryButton",
|
|||
|
|
onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "This is two lines Main Title",
|
|||
|
|
subtitle: "This is a Subtitle, This is a Subtitle",
|
|||
|
|
secondaryButtonText: "Secondary Button",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary + secondaryButton", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "Main Title",
|
|||
|
|
secondaryButtonText: "Secondary Button",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("two title + summary + secondaryButton",
|
|||
|
|
onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title:
|
|||
|
|
"This is two lines Main Title,This is two lines Main Title",
|
|||
|
|
secondaryButtonText: "Secondary Button",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary + customButton1", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonChild: const GuruButton(
|
|||
|
|
size: Size(271, 48),
|
|||
|
|
action: "Action",
|
|||
|
|
leading: Assets.imagesIcAds,
|
|||
|
|
tintLeading: true,
|
|||
|
|
),
|
|||
|
|
title: "Main Title",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary + customButton2", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
primaryButtonInfo: "×100",
|
|||
|
|
primaryButtonLeading: Assets.imagesIcAds,
|
|||
|
|
primaryButtonTrailing: Assets.imagesIcCoin,
|
|||
|
|
title: "Main Title",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary + customButton3", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showStandardDialog(
|
|||
|
|
illustration: Image.asset(Assets.imagesIcIllustration),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
primaryButtonInfo: "×100",
|
|||
|
|
primaryButtonLeading: Assets.imagesIcAds,
|
|||
|
|
primaryButtonTrailing: Assets.imagesIcCoin,
|
|||
|
|
primaryButtonSummary: "Button Summary",
|
|||
|
|
title: "Main Title",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines, according to the language situation adapted.");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Confirm Dialog + no title", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showConfirmDialog(
|
|||
|
|
summary: "A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Confirm Dialog", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showConfirmDialog(
|
|||
|
|
title: 'title',
|
|||
|
|
summary: "A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive",
|
|||
|
|
);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Confirm Dialog + adBtn", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showConfirmDialog(
|
|||
|
|
title: 'title',
|
|||
|
|
summary: "A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive",
|
|||
|
|
positiveButtonLeading: Assets.imagesIcAds);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Two Lines title + Confirm Dialog", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showConfirmDialog(
|
|||
|
|
title:
|
|||
|
|
'This is title, This is title, This is title,This is title,This is title',
|
|||
|
|
summary:
|
|||
|
|
"A message should be a short, complete sentence.A message should be a short, complete sentence.A message should be a short, complete sentence.A message should be a short, complete sentence.A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive",
|
|||
|
|
);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Alert Dialog + no Title", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showAlertDialog(
|
|||
|
|
summary: "A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("Alert Dialog", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showAlertDialog(
|
|||
|
|
title: 'title',
|
|||
|
|
summary: "A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("two lines title + Alert Dialog", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showAlertDialog(
|
|||
|
|
title: 'This is title, This is title, This is title',
|
|||
|
|
summary:
|
|||
|
|
"A message should be a short, complete sentence.A message should be a short, complete sentence.",
|
|||
|
|
negativeButtonText: "Negative",
|
|||
|
|
positiveButtonText: "Positive");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showSpotlightDialog(
|
|||
|
|
Image.asset('assets/images/demo.png'),
|
|||
|
|
primaryButtonAction: "PLAY NOW",
|
|||
|
|
title: "Classic Solitaire",
|
|||
|
|
summary: "The Most Addictive Classic Solitairecard vames!");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary + customButton3", onTap: () async {
|
|||
|
|
final String title = S.of(context).settings +
|
|||
|
|
S.of(context).settings +
|
|||
|
|
S.of(context).settings +
|
|||
|
|
S.of(context).settings;
|
|||
|
|
final String summary = S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds;
|
|||
|
|
await GuruPopup.instance.showSpotlightDialog(
|
|||
|
|
Image.asset('assets/images/demo.png'),
|
|||
|
|
primaryButtonAction: S.of(context).settings,
|
|||
|
|
title: title,
|
|||
|
|
summary: summary,
|
|||
|
|
secondaryButtonText: S.of(context).settings);
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("title + summary + SecondaryButton", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showSpotlightDialog(
|
|||
|
|
Image.asset('assets/images/demo.png'),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
title: "Main Title",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines",
|
|||
|
|
secondaryButtonText: "Secondary Button");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("summary + SecondaryButton", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showSpotlightDialog(
|
|||
|
|
Image.asset('assets/images/demo.png'),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines",
|
|||
|
|
secondaryButtonText: "Secondary Button");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("summary", onTap: () async {
|
|||
|
|
await GuruPopup.instance.showSpotlightDialog(
|
|||
|
|
Image.asset('assets/images/demo.png'),
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
summary:
|
|||
|
|
"This is a summary, the number of lines between 1-3 lines");
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("extend dialog", onTap: () async {
|
|||
|
|
final String title = S.of(context).settings +
|
|||
|
|
S.of(context).settings +
|
|||
|
|
S.of(context).settings +
|
|||
|
|
S.of(context).settings;
|
|||
|
|
final String summary = S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds +
|
|||
|
|
S.of(context).removeBannerAndPopupAds;
|
|||
|
|
await GuruPopup.instance
|
|||
|
|
.showExtendDialog(Image.asset('assets/images/pic.png'),
|
|||
|
|
title: title,
|
|||
|
|
primaryButtonAction: "Action",
|
|||
|
|
summary: summary,
|
|||
|
|
contentBackground: const BoxDecoration(
|
|||
|
|
gradient: LinearGradient(
|
|||
|
|
colors: [
|
|||
|
|
Color.fromRGBO(45, 24, 77, 0),
|
|||
|
|
Color.fromRGBO(45, 24, 77, 1),
|
|||
|
|
Color.fromRGBO(52, 28, 89, 1),
|
|||
|
|
Color.fromRGBO(45, 24, 77, 1)
|
|||
|
|
],
|
|||
|
|
begin: Alignment.topCenter,
|
|||
|
|
end: Alignment.bottomCenter,
|
|||
|
|
)));
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
buildEntranceItem("paused dialog", onTap: () async {
|
|||
|
|
// await GuruPopup.instance.showPausedDialog(
|
|||
|
|
// items: [
|
|||
|
|
// SwitchSetting(
|
|||
|
|
// enabledTitle: "Sound Effects",
|
|||
|
|
// leading: "assets/images/ic_sound.png",
|
|||
|
|
// settingData: UiSettings.instance.checkedTileBol,
|
|||
|
|
// onChanged: ((value) {
|
|||
|
|
// UiSettings.instance.checkedTileBol.set(value);
|
|||
|
|
// // controller.changeValue(value);
|
|||
|
|
// })
|
|||
|
|
// )
|
|||
|
|
// ]
|
|||
|
|
// );
|
|||
|
|
}),
|
|||
|
|
_divider,
|
|||
|
|
],
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@override
|
|||
|
|
Widget build(BuildContext context) {
|
|||
|
|
return GuruDemoPage(
|
|||
|
|
child: Scaffold(
|
|||
|
|
backgroundColor: const Color(0xFF121212),
|
|||
|
|
appBar: GuruAppBar(
|
|||
|
|
title: 'Guru Standard Dialog',
|
|||
|
|
backgroundColor: Colors.transparent,
|
|||
|
|
size: GuruAppBarSize.small,
|
|||
|
|
leadingType: LeadingType.back,
|
|||
|
|
actions: [
|
|||
|
|
IconButton(
|
|||
|
|
padding: const EdgeInsets.all(0),
|
|||
|
|
splashRadius:
|
|||
|
|
GuruThemeDesignSpec.get().appBarDesignSpec.actionIconSize,
|
|||
|
|
icon: ImageIcon(
|
|||
|
|
const AssetImage("assets/images/Ic_Award.png"),
|
|||
|
|
size: GuruThemeDesignSpec.get().appBarDesignSpec.actionIconSize,
|
|||
|
|
color: Colors.white,
|
|||
|
|
),
|
|||
|
|
onPressed: () {},
|
|||
|
|
)
|
|||
|
|
],
|
|||
|
|
),
|
|||
|
|
body: Stack(children: [
|
|||
|
|
SingleChildScrollView(
|
|||
|
|
child: Align(
|
|||
|
|
alignment: Alignment.topCenter, child: buildBody(context))),
|
|||
|
|
ConsoleButton()
|
|||
|
|
]),
|
|||
|
|
),
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|