CAKE-356 | added isYatDevMode parameter to the yat_alert.dart; deleted yat_webview_page.dart and yat_view_model.dart; applied localization of Yat to the app

This commit is contained in:
OleksandrSobol
2021-09-16 12:43:43 +03:00
parent 455efeb91f
commit cdddc12c81
24 changed files with 146 additions and 262 deletions
@@ -150,7 +150,7 @@ class QRWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Yat Address',
S.of(context).yat_address,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 13,
@@ -18,8 +18,8 @@ void showAddressAlert(BuildContext context, ParsedAddress parsedAddress) async {
content = S.of(context).openalias_alert_content(parsedAddress.name);
break;
case ParseFrom.yatRecord:
title = 'Address detected';
content = 'This address is from ${parsedAddress.name} on Yat';
title = S.of(context).address_detected;
content = S.of(context).address_from_yat(parsedAddress.name);
break;
case ParseFrom.notParsed:
return;
+15 -14
View File
@@ -1,17 +1,22 @@
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/yat/widgets/yat_bar.dart';
import 'package:cake_wallet/src/screens/yat/yat_webview_page.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:cake_wallet/generated/i18n.dart';
class YatAlert extends StatelessWidget {
YatAlert({this.isYatDevMode = false})
: baseUrl = isYatDevMode ? _baseDevUrl : _baseReleaseUrl;
final bool isYatDevMode;
final String baseUrl;
static const aspectRatioImage = 1.133;
static const _baseUrl = 'https://y.at';
static const _signInSuffix = '/partner/CW/link';
static const _baseDevUrl = 'https://yat.fyi';
static const _baseReleaseUrl = 'https://y.at';
static const _signInSuffix = '/partner/CW/link-email';
static const _createSuffix = '/create';
final image = Image.asset('assets/images/yat_crypto.png');
@@ -42,7 +47,7 @@ class YatAlert extends StatelessWidget {
child: Column(
children: [
Text(
'Send and receive crypto more easily with Yat',
S.of(context).yat_alert_title,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 24,
@@ -55,7 +60,7 @@ class YatAlert extends StatelessWidget {
Padding(
padding: EdgeInsets.only(top: 20),
child: Text(
'Cake Wallet users can now send and receive all their favorite currencies with a one-of-a-kind emoji-based username.',
S.of(context).yat_alert_content,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 16,
@@ -76,7 +81,7 @@ class YatAlert extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
PrimaryIconButton(
text: 'Get your Yat',
text: S.of(context).get_your_yat,
textColor: Colors.white,
color: Palette.protectiveBlue,
borderColor: Palette.protectiveBlue,
@@ -86,15 +91,13 @@ class YatAlert extends StatelessWidget {
.arrow_up_right_square,
mainAxisAlignment: MainAxisAlignment.end,
onPressed: () {
//Navigator.of(context)
// .popAndPushNamed(Routes.yat, arguments: YatMode.create);
final url = _baseUrl + _createSuffix;
final url = baseUrl + _createSuffix;
launch(url);
}),
Padding(
padding: EdgeInsets.only(top: 24),
child: PrimaryIconButton(
text: 'Connect an existing Yat',
text: S.of(context).connect_an_existing_yat,
textColor: Colors.black,
color: Palette.blueAlice,
borderColor: Palette.blueAlice,
@@ -104,9 +107,7 @@ class YatAlert extends StatelessWidget {
.arrow_up_right_square,
mainAxisAlignment: MainAxisAlignment.end,
onPressed: () {
//Navigator.of(context)
// .popAndPushNamed(Routes.yat, arguments: YatMode.connect);
final url = _baseUrl + _signInSuffix;
final url = baseUrl + _signInSuffix;
launch(url);
})
)
-117
View File
@@ -1,117 +0,0 @@
import 'dart:async';
import 'dart:io';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/view_model/yat_view_model.dart';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
enum YatMode {create, connect}
class YatWebViewPage extends BasePage {
YatWebViewPage({this.yatViewModel, this.mode});
final YatMode mode;
final YatViewModel yatViewModel;
@override
String get title => 'Yat';
@override
Color get backgroundDarkColor => Colors.white;
@override
Color get titleColor => Palette.darkBlueCraiola;
@override
Widget body(BuildContext context) => YatWebViewPageBody(yatViewModel, mode);
}
class YatWebViewPageBody extends StatefulWidget{
YatWebViewPageBody(this.yatViewModel, this.mode);
final YatMode mode;
final YatViewModel yatViewModel;
@override
YatWebViewPageBodyState createState() =>
YatWebViewPageBodyState(yatViewModel, mode);
}
class YatWebViewPageBodyState extends State<YatWebViewPageBody> {
YatWebViewPageBodyState(this.yatViewModel, this.mode) {
switch (mode) {
case YatMode.create:
url = _baseUrl + _createSuffix;
break;
case YatMode.connect:
url = _baseUrl + _signInSuffix;
break;
default:
url = _baseUrl + _createSuffix;
}
}
static const _baseUrl = 'https://yat.fyi';
static const _signInSuffix = '/sign-in';
static const _createSuffix = '/create';
final YatMode mode;
final YatViewModel yatViewModel;
String url;
WebViewController _webViewController;
GlobalKey _webViewkey;
Timer _timer;
@override
void initState() {
super.initState();
_webViewkey = GlobalKey();
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
WidgetsBinding.instance.addPostFrameCallback(_afterLayout);
}
@override
void dispose() {
super.dispose();
_timer?.cancel();
}
@override
Widget build(BuildContext context) {
return WebView(
key: _webViewkey,
initialUrl: url,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController controller) =>
setState(() => _webViewController = controller));
}
void _afterLayout(dynamic _) {
_fetchYatInfo();
}
void _fetchYatInfo() {
final keyword = 'dashboard';
_timer?.cancel();
_timer = Timer.periodic(Duration(seconds: 1), (timer) async {
try {
if (_webViewController == null) {
return;
}
final url = await _webViewController.currentUrl();
print('URL = $url');
if (url.contains(keyword)) {
timer.cancel();
await yatViewModel.fetchCartInfo();
Navigator.of(context).pop();
}
} catch (e) {
print(e);
}
});
}
}