Skip to content

Commit 789cb07

Browse files
Implement signing feature (#1003)
* Implement signing feature * Update app/lib/jrouter.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * Update app/lib/apps/sign/sign.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * Update app/lib/screens/signing/signing.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * Update app/lib/screens/signing/signing.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * Update app/lib/screens/signing/signing.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * Update app/lib/screens/signing/sign_with_text.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * Update app/lib/screens/signing/sign_with_text.dart Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com> * add (hex encoded) faded && update qrcode logic * update sign_with_url to try to fetch content first * add optional field for destination url * add signing in registered screen * apply pr comments * create base class for signing screens * update signing icon && remove unused import * move sendSignedData to signing_service file * handle not loading wallets * move all wallets logic to signing mixin * Update styling of snackbars * increase size of spinning && remove background color from error * update CircularProgressIndicator to be consistent with app --------- Co-authored-by: AhmedHanafy725 <41957921+AhmedHanafy725@users.noreply.github.com>
1 parent 91299b1 commit 789cb07

10 files changed

Lines changed: 1297 additions & 1 deletion

File tree

app/lib/apps/sign/sign.dart

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:threebotlogin/app.dart';
3+
import 'package:threebotlogin/apps/farmers/farmers_user_data.dart';
4+
import 'package:threebotlogin/events/events.dart';
5+
import 'package:threebotlogin/events/go_home_event.dart';
6+
import 'package:threebotlogin/screens/signing/signing.dart';
7+
8+
class Sign implements App {
9+
static final Sign _singleton = Sign._internal();
10+
static const Widget _signWidget = Signing();
11+
12+
factory Sign() {
13+
return _singleton;
14+
}
15+
16+
Sign._internal();
17+
18+
@override
19+
Future<Widget> widget() async {
20+
return _signWidget;
21+
}
22+
23+
@override
24+
void clearData() {
25+
clearAllData();
26+
}
27+
28+
@override
29+
bool emailVerificationRequired() {
30+
return false;
31+
}
32+
33+
@override
34+
bool pinRequired() {
35+
return true;
36+
}
37+
38+
@override
39+
void back() {
40+
Events().emit(GoHomeEvent());
41+
}
42+
}

app/lib/jrouter.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import 'package:threebotlogin/screens/registered_screen.dart';
99

1010
import 'apps/farmers/farmers.dart';
1111
import 'apps/news/news.dart';
12+
import 'apps/sign/sign.dart';
1213

1314
class AppInfo {
1415
Route route;
@@ -86,6 +87,14 @@ class JRouter {
8687
view: await Council().widget(),
8788
),
8889
app: Dao()),
90+
AppInfo(
91+
route: Route(
92+
path: '/sign',
93+
name: 'Sign',
94+
icon: Icons.draw_sharp,
95+
view: await Sign().widget(),
96+
),
97+
app: Sign()),
8998
];
9099
}
91100

app/lib/screens/registered_screen.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,23 @@ class _RegisteredScreenState extends State<RegisteredScreen>
9898
icon: Icons.how_to_vote_outlined,
9999
pageNumber: 4),
100100
HomeCardWidget(
101-
name: 'News', icon: Icons.article, pageNumber: 1),
101+
name: 'Sign', icon: Icons.draw_sharp, pageNumber: 8),
102102
],
103103
),
104104
const Row(
105105
crossAxisAlignment: CrossAxisAlignment.center,
106106
mainAxisAlignment: MainAxisAlignment.center,
107107
children: [
108+
HomeCardWidget(
109+
name: 'News', icon: Icons.article, pageNumber: 1),
108110
HomeCardWidget(
109111
name: 'Identity', icon: Icons.person, pageNumber: 5),
112+
],
113+
),
114+
const Row(
115+
crossAxisAlignment: CrossAxisAlignment.center,
116+
mainAxisAlignment: MainAxisAlignment.center,
117+
children: [
110118
HomeCardWidget(
111119
name: 'Settings', icon: Icons.settings, pageNumber: 6),
112120
],

0 commit comments

Comments
 (0)