mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-19 05:58:50 +02:00
* fix: SectionStandardList using BuildContext as param * refactor: deprecated backgroundColor -> colorScheme.background * refactor: themeBase and current themes * refactor: accentTextTheme.titleLarge.color -> dialogTheme.backgroundColor * refactor: gradient background * refactor: text themes using the same color as primaryColor * refactor: accentTextTheme.bodySmall.color -> cardColor * refactor: text themes using same dialogBackgroundColor * refactor: scrollbarTheme * refactor: create SyncIndicatorTheme * refactor: SectionDivider * refactor: base_page improvements and simplify * refactor: collapsible_standart_list improvements * refactor: accentTextTheme.bodyLarge.backgroundColor -> KeyboardTheme.keyboardBarColor * refactor: create PinCodeTheme for accentTextTheme.bodyMedium * refactor: create SupportPageTheme for accentTextTheme.displayLarge.backgroundColor and fix cases that use it * refactor: accentTextTheme.displayLarge.color -> disabledColor * refactor: create ExchangePageTheme * refactor: create DashboardPageTheme and use textColor * refactor: create NewWalletTheme for accentTextTheme.displayMedium * refactor: create BalancePageTheme for accentTextTheme.displaySmall.backgroundColor * refactor: create AddressTheme for accentTextTheme.displaySmall.color * refactor: create IndicatorDotTheme * refactor: create CakeMenuTheme * refactor: create FilterTheme * refactor: create WalletListTheme * refactor: accentTextTheme.bodySmall.decorationColor -> InfoTheme.textColor * refactor: accentTextTheme.titleLarge.backgroundColor -> PickerTheme.dividerColor * refactor: primaryTextTheme.bodyLarge.backgroundColor -> AlertTheme.leftButtonTextColor * refactor: primaryTextTheme.displayLarge.backgroundColor -> OrderTheme.iconColor * refactor: create SendPageTheme * fix: missing migrated styles * refactor: primaryTextTheme.labelSmall.decorationColor -> PlaceholderTheme.color * refactor: create TransactionTradeTheme * refactor: create CakeTextTheme * refactor: create AccountListTheme * refactor: create ReceivePageTheme * refactor: create QRCodeTheme * refactor: move remaining items to CakeTextTheme and some missing fixes * feat(display_settings): add new theme selector * feat: additional themes * fix: conflict error * fix(lag): move colorScheme initialization to constructor * feat: add backdropColor to alert and picker backdrop filters * fix: merge fixes * fix: send template page missing new colors * fix: anonpay pages title and icon colors * fix: merge fixes * fix: unspent coins page * fix: also fix exchange template * fix: missing checkbox * fix: fixes for high contrast theme * Merge branch 'main' into CW-396-additional-themes * fix: merge fixes * fix: .gitignore and rm added files * Fix review comments --------- Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
143 lines
5.0 KiB
Dart
143 lines
5.0 KiB
Dart
import 'dart:convert';
|
|
import 'package:cake_wallet/src/widgets/alert_background.dart';
|
|
import 'package:cake_wallet/src/widgets/alert_close_button.dart';
|
|
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
|
import 'package:cake_wallet/wallet_type_utils.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
|
class ReleaseNotesScreen extends StatelessWidget {
|
|
const ReleaseNotesScreen({
|
|
required this.title,
|
|
});
|
|
|
|
final String title;
|
|
|
|
Future<List<String>> _loadStrings() async {
|
|
String notesContent = await rootBundle.loadString(
|
|
isMoneroOnly ? 'assets/text/Monerocom_Release_Notes.txt' : 'assets/text/Release_Notes.txt');
|
|
return LineSplitter().convert(notesContent);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Stack(
|
|
alignment: Alignment.center,
|
|
children: [
|
|
AlertBackground(
|
|
child: AlertDialog(
|
|
insetPadding: EdgeInsets.only(left: 16, right: 16, bottom: 48),
|
|
elevation: 0.0,
|
|
contentPadding: EdgeInsets.zero,
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(30))),
|
|
content: Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(30.0),
|
|
gradient: LinearGradient(colors: [
|
|
Theme.of(context).extension<DashboardPageTheme>()!.firstGradientBackgroundColor,
|
|
Theme.of(context).extension<DashboardPageTheme>()!.secondGradientBackgroundColor,
|
|
], begin: Alignment.centerLeft, end: Alignment.centerRight)),
|
|
child: Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 24.0),
|
|
child: Stack(
|
|
children: [
|
|
SingleChildScrollView(
|
|
child: Padding(
|
|
padding: const EdgeInsets.only(top: 16.0),
|
|
child: Container(
|
|
alignment: Alignment.bottomCenter,
|
|
child: DefaultTextStyle(
|
|
style: TextStyle(
|
|
decoration: TextDecoration.none,
|
|
fontSize: 24.0,
|
|
fontWeight: FontWeight.bold,
|
|
fontFamily: 'Lato',
|
|
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
|
|
),
|
|
child: Text(title),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
SingleChildScrollView(
|
|
child: Padding(
|
|
padding: EdgeInsets.only(top: 48, bottom: 16),
|
|
child: Container(
|
|
width: double.maxFinite,
|
|
child: Column(
|
|
children: <Widget>[
|
|
ConstrainedBox(
|
|
constraints: BoxConstraints(
|
|
maxHeight: MediaQuery.of(context).size.height * 0.7,
|
|
),
|
|
child: _getNotesWidget(),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
AlertCloseButton(
|
|
bottom: 30,
|
|
)
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget _getNotesWidget() {
|
|
return FutureBuilder<List<String>>(
|
|
future: _loadStrings(),
|
|
builder: (BuildContext context, AsyncSnapshot<List<String>> snapshot) {
|
|
if (snapshot.hasData) {
|
|
return ListView.builder(
|
|
shrinkWrap: true,
|
|
itemCount: snapshot.data!.length,
|
|
itemBuilder: (BuildContext context, int index) {
|
|
return _getNoteItemWidget(snapshot.data![index], context);
|
|
},
|
|
);
|
|
} else if (snapshot.hasError) {
|
|
return Text('Error: ${snapshot.error}');
|
|
} else {
|
|
return Center(child: CircularProgressIndicator());
|
|
}
|
|
},
|
|
);
|
|
}
|
|
|
|
Widget _getNoteItemWidget(String myString, BuildContext context) {
|
|
return Column(
|
|
children: [
|
|
DefaultTextStyle(
|
|
style: TextStyle(
|
|
decoration: TextDecoration.none,
|
|
fontSize: 16.0,
|
|
fontFamily: 'Lato',
|
|
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
|
|
),
|
|
child: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.only(right: 8.0),
|
|
child: Text('•'),
|
|
),
|
|
Expanded(
|
|
child: Text(myString),
|
|
),
|
|
],
|
|
)),
|
|
SizedBox(
|
|
height: 16.0,
|
|
)
|
|
],
|
|
);
|
|
}
|
|
}
|