Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 2 additions & 11 deletions miner-app/lib/features/setup/rewards_address_setup_screen.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'dart:io';

import 'package:flash/flash_helper.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
Expand Down Expand Up @@ -82,9 +83,7 @@ class _RewardsAddressSetupScreenState extends State<RewardsAddressSetupScreen> {
print('Rewards address saved: $address');

if (mounted) {
ScaffoldMessenger.of(
context,
).showSnackBar(const SnackBar(content: Text('Rewards address saved successfully!')));
context.showSuccessBar(content: Text('Rewards address saved successfully!'));
// Navigate to the main mining screen
context.go('/miner_dashboard');
}
Expand Down Expand Up @@ -131,14 +130,6 @@ class _RewardsAddressSetupScreenState extends State<RewardsAddressSetupScreen> {
Container(
width: 40, // spacer for alignment
),
// const Text(
// 'Scan QR Code',
// style: TextStyle(
// color: Colors.white,
// fontSize: 20,
// fontWeight: FontWeight.bold,
// ),
// ),
Positioned(
right: 0,
top: 0,
Expand Down
4 changes: 3 additions & 1 deletion miner-app/lib/src/services/chain_rpc_client.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'dart:async';
import 'dart:convert';

import 'package:http/http.dart' as http;

class ChainInfo {
Expand Down Expand Up @@ -196,7 +197,8 @@ class ChainRpcClient {

/// Execute a JSON-RPC call
Future<dynamic> _rpcCall(String method, [List<dynamic>? params]) async {
final request = {'jsonrpc': '2.0', 'id': _requestId++, 'method': method, if (params != null) 'params': params};
final request = {'jsonrpc': '2.0', 'id': _requestId++, 'method': method};
if (params != null) request['params'] = params;

// Only print RPC calls when debugging connection issues
// print('DEBUG: Making RPC call: $method with request: ${json.encode(request)}');
Expand Down
3 changes: 3 additions & 0 deletions mobile-app/assets/navbar/Lightning.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions mobile-app/assets/navbar/lightning_icon_off.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions mobile-app/assets/navbar/lightning_icon_on.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mobile-app/assets/quests/quests_top_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 changes: 65 additions & 0 deletions mobile-app/lib/features/components/inner_shadow_container.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import 'package:flutter/material.dart';

class InnerShadowContainer extends StatelessWidget {
final Widget child;
final List<BoxShadow> shadows;
final BorderRadius borderRadius;

const InnerShadowContainer({
super.key,
required this.child,
required this.shadows,
this.borderRadius = BorderRadius.zero,
});

factory InnerShadowContainer.standard({required Widget child}) {
return InnerShadowContainer(
shadows: const [
BoxShadow(color: Color(0x19FFFFFF), offset: Offset(-2, -2), blurRadius: 12, spreadRadius: 2),
BoxShadow(color: Color(0x19FFFFFF), offset: Offset(2, 2), blurRadius: 12, spreadRadius: 2),
],
borderRadius: BorderRadius.circular(4),
child: child,
);
}

@override
Widget build(BuildContext context) {
return CustomPaint(foregroundPainter: _InnerShadowPainter(shadows, borderRadius), child: child);
}
}

class _InnerShadowPainter extends CustomPainter {
final List<BoxShadow> shadows;
final BorderRadius borderRadius;

_InnerShadowPainter(this.shadows, this.borderRadius);

@override
void paint(Canvas canvas, Size size) {
final rect = Rect.fromLTWH(0, 0, size.width, size.height);
final rrect = borderRadius.toRRect(rect);

canvas.clipRRect(rrect);

for (final shadow in shadows) {
final paint = Paint()
..color = shadow.color
..maskFilter = MaskFilter.blur(BlurStyle.normal, shadow.blurSigma);

final outerRect = rect.inflate(shadow.blurRadius + shadow.spreadRadius + 20);

final path = Path()
..fillType = PathFillType.evenOdd
..addRect(outerRect)
..addRRect(rrect.shift(-shadow.offset));

canvas.drawPath(path, paint);
}
}

@override
bool shouldRepaint(covariant _InnerShadowPainter oldDelegate) {
return oldDelegate.shadows != shadows || oldDelegate.borderRadius != borderRadius;
}
}
6 changes: 5 additions & 1 deletion mobile-app/lib/features/components/scaffold_base.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class ScaffoldBase extends StatelessWidget {
final double dim;
final bool extendBodyBehindAppBar;
final bool extendBodyBehindNavBar;
final Color? backgroundColor;

// Default constructor - static content
const ScaffoldBase({
Expand All @@ -30,6 +31,7 @@ class ScaffoldBase extends StatelessWidget {
this.decorations,
this.dim = 0.25,
this.padding = const EdgeInsets.symmetric(horizontal: 24.0),
this.backgroundColor,
required Widget this.child,
}) : slivers = null,
scrollController = null,
Expand All @@ -46,6 +48,7 @@ class ScaffoldBase extends StatelessWidget {
this.decorations,
this.dim = 0.25,
this.padding = const EdgeInsets.symmetric(horizontal: 24.0),
this.backgroundColor,
required ScrollController this.scrollController,
this.scrollPhysics = const AlwaysScrollableScrollPhysics(),
required Widget this.child,
Expand All @@ -62,6 +65,7 @@ class ScaffoldBase extends StatelessWidget {
this.decorations,
this.dim = 0.25,
this.padding = const EdgeInsets.symmetric(horizontal: 24.0),
this.backgroundColor,
required ScrollController this.scrollController,
this.scrollPhysics = const AlwaysScrollableScrollPhysics(),
required RefreshCallback this.onRefresh,
Expand All @@ -73,7 +77,7 @@ class ScaffoldBase extends StatelessWidget {
return Scaffold(
extendBodyBehindAppBar: extendBodyBehindAppBar,
appBar: appBar,
backgroundColor: context.themeColors.background,
backgroundColor: backgroundColor ?? context.themeColors.background,
body: Stack(
children: [
if (decorations != null) ...decorations!,
Expand Down
12 changes: 3 additions & 9 deletions mobile-app/lib/features/main/screens/navbar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ class _NavbarState extends ConsumerState<Navbar> {
NavItem('assets/navbar/history_icon_off.svg', 'assets/navbar/history_icon_on.svg', 'History'),
NavItem('assets/navbar/floating_button.svg', 'assets/navbar/floating_button.svg', 'Send'),
NavItem('assets/navbar/settings_icon_off.svg', 'assets/navbar/settings_icon_on.svg', 'Settings'),
NavItem('assets/navbar/qcat_navbar_icon.png', 'assets/navbar/qcat_navbar_icon.png', 'Quests'),
NavItem('assets/navbar/lightning_icon_off.svg', 'assets/navbar/lightning_icon_on.svg', 'Quests'),
];

@override
Expand Down Expand Up @@ -139,12 +139,8 @@ class _NavbarState extends ConsumerState<Navbar> {

// Handle quest screen visibility
if (newIndex == 3) {
// quests screen index - make video visible
// quests screen index
(_questsScreenKey.currentState as dynamic)?.refreshStatsData();
(_questsScreenKey.currentState as dynamic)?.setVideoVisibility(true);
} else if (_selectedIndex == 3) {
// leaving quests screen - hide video
(_questsScreenKey.currentState as dynamic)?.setVideoVisibility(false);
}

setState(() {
Expand Down Expand Up @@ -215,15 +211,13 @@ class _NavbarState extends ConsumerState<Navbar> {
}

Widget _buildBody() {
bool playPromoVideo = _selectedIndex == 3;

return IndexedStack(
index: _selectedIndex,
children: [
const WalletMain(),
const TransactionsScreen(),
const SettingsScreen(),
QuestsScreen(key: _questsScreenKey, playPromoVideo: playPromoVideo),
QuestsScreen(key: _questsScreenKey),
],
);
}
Expand Down
Loading
Loading