mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-11-16 17:27:37 +00:00
CW-365-Wallet-QR-codes-not-working-properly-on-some-devices (#909)
* add exception for range error * add app links for wallets * Update reference to qr.flutter clone * QrImage update * Update fullscreen_qr_page.dart * Add automatic version for wallet QR --------- Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
This commit is contained in:
parent
9714961298
commit
086019d926
10 changed files with 88 additions and 6 deletions
|
@ -46,8 +46,14 @@
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
<data android:scheme="bitcoin" />
|
<data android:scheme="bitcoin" />
|
||||||
|
<data android:scheme="bitcoin-wallet" />
|
||||||
|
<data android:scheme="bitcoin_wallet" />
|
||||||
<data android:scheme="monero" />
|
<data android:scheme="monero" />
|
||||||
|
<data android:scheme="monero-wallet" />
|
||||||
|
<data android:scheme="monero_wallet" />
|
||||||
<data android:scheme="litecoin" />
|
<data android:scheme="litecoin" />
|
||||||
|
<data android:scheme="litecoin-wallet" />
|
||||||
|
<data android:scheme="litecoin_wallet" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<meta-data
|
<meta-data
|
||||||
|
|
BIN
assets/images/restore_qr.png
Normal file
BIN
assets/images/restore_qr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -42,6 +42,26 @@
|
||||||
<string>bitcoin</string>
|
<string>bitcoin</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Editor</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>bitcoin-wallet</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>bitcoin-wallet</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Editor</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>bitcoin_wallet</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>bitcoin_wallet</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleTypeRole</key>
|
<key>CFBundleTypeRole</key>
|
||||||
<string>Editor</string>
|
<string>Editor</string>
|
||||||
|
@ -52,6 +72,26 @@
|
||||||
<string>monero</string>
|
<string>monero</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Editor</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>monero-wallet</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>monero-wallet</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Editor</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>monero_wallet</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>monero_wallet</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleTypeRole</key>
|
<key>CFBundleTypeRole</key>
|
||||||
<string>Editor</string>
|
<string>Editor</string>
|
||||||
|
@ -62,6 +102,26 @@
|
||||||
<string>litecoin</string>
|
<string>litecoin</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Viewer</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>litecoin-wallet</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>litecoin-wallet</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Viewer</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>litecoin_wallet</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>litecoin_wallet</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
|
|
|
@ -71,7 +71,10 @@ class FullscreenQRPage extends BasePage {
|
||||||
padding: EdgeInsets.all(10),
|
padding: EdgeInsets.all(10),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border.all(width: 3, color: Theme.of(context).accentTextTheme!.headline2!.backgroundColor!)),
|
border: Border.all(width: 3, color: Theme.of(context).accentTextTheme!.headline2!.backgroundColor!)),
|
||||||
child: QrImage(data: qrViewData.data, version: qrViewData.version),
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(width: 3, color: Colors.white)),
|
||||||
|
child: QrImage(data: qrViewData.data, version: qrViewData.version)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -16,7 +16,7 @@ class QrImage extends StatelessWidget {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return qr.QrImage(
|
return qr.QrImageView(
|
||||||
data: data,
|
data: data,
|
||||||
errorCorrectionLevel: errorCorrectionLevel,
|
errorCorrectionLevel: errorCorrectionLevel,
|
||||||
version: version ?? 9, // Previous value: 7 something happened after flutter upgrade monero wallets addresses are longer than ver. 7 ???
|
version: version ?? 9, // Previous value: 7 something happened after flutter upgrade monero wallets addresses are longer than ver. 7 ???
|
||||||
|
|
|
@ -86,7 +86,14 @@ class QRWidget extends StatelessWidget {
|
||||||
Theme.of(context).accentTextTheme.headline2!.backgroundColor!,
|
Theme.of(context).accentTextTheme.headline2!.backgroundColor!,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: QrImage(data: addressListViewModel.uri.toString()),
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(
|
||||||
|
width: 3,
|
||||||
|
color:Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: QrImage(data: addressListViewModel.uri.toString())),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -25,7 +25,7 @@ class RestoreOptionsPage extends BasePage {
|
||||||
final bool isNewInstall;
|
final bool isNewInstall;
|
||||||
final imageSeedKeys = Image.asset('assets/images/restore_wallet_image.png');
|
final imageSeedKeys = Image.asset('assets/images/restore_wallet_image.png');
|
||||||
final imageBackup = Image.asset('assets/images/backup.png');
|
final imageBackup = Image.asset('assets/images/backup.png');
|
||||||
final qrCode = Image.asset('assets/images/qr_code_icon.png');
|
final qrCode = Image.asset('assets/images/restore_qr.png');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget body(BuildContext context) {
|
Widget body(BuildContext context) {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
import 'package:cake_wallet/src/widgets/list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/view_model/wallet_keys_view_model.dart';
|
import 'package:cake_wallet/view_model/wallet_keys_view_model.dart';
|
||||||
import 'package:cake_wallet/routes.dart';
|
import 'package:cake_wallet/routes.dart';
|
||||||
|
import 'package:qr_flutter/qr_flutter.dart';
|
||||||
|
|
||||||
class WalletKeysPage extends BasePage {
|
class WalletKeysPage extends BasePage {
|
||||||
WalletKeysPage(this.walletKeysViewModel);
|
WalletKeysPage(this.walletKeysViewModel);
|
||||||
|
@ -32,7 +33,7 @@ class WalletKeysPage extends BasePage {
|
||||||
await Navigator.pushNamed(
|
await Navigator.pushNamed(
|
||||||
context,
|
context,
|
||||||
Routes.fullscreenQR,
|
Routes.fullscreenQR,
|
||||||
arguments: QrViewData(data: url.toString()),
|
arguments: QrViewData(data: url.toString(), version: QrVersions.auto),
|
||||||
);
|
);
|
||||||
// ignore: unawaited_futures
|
// ignore: unawaited_futures
|
||||||
DeviceDisplayBrightness.setBrightness(brightness);
|
DeviceDisplayBrightness.setBrightness(brightness);
|
||||||
|
|
|
@ -51,6 +51,7 @@ class WalletRestoreFromQRCode {
|
||||||
|
|
||||||
static String getFormattedUri(String code) {
|
static String getFormattedUri(String code) {
|
||||||
final index = code.indexOf(':');
|
final index = code.indexOf(':');
|
||||||
|
if (index == -1) return throw Exception('Unexpected wallet type: $code, try to scan again');
|
||||||
final scheme = code.substring(0, index).replaceAll('_', '-');
|
final scheme = code.substring(0, index).replaceAll('_', '-');
|
||||||
final query = code.substring(index + 1).replaceAll('?', '&');
|
final query = code.substring(index + 1).replaceAll('?', '&');
|
||||||
final formattedUri = '$scheme:?$query';
|
final formattedUri = '$scheme:?$query';
|
||||||
|
|
|
@ -6,7 +6,11 @@ dependencies:
|
||||||
flutter_cupertino_localizations: ^1.0.1
|
flutter_cupertino_localizations: ^1.0.1
|
||||||
intl: ^0.17.0
|
intl: ^0.17.0
|
||||||
url_launcher: ^6.1.4
|
url_launcher: ^6.1.4
|
||||||
qr_flutter: ^4.0.0
|
qr_flutter:
|
||||||
|
git:
|
||||||
|
url: https://github.com/cake-tech/qr.flutter.git
|
||||||
|
ref: cake-4.0.2
|
||||||
|
version: 4.0.2
|
||||||
uuid: 3.0.6
|
uuid: 3.0.6
|
||||||
shared_preferences: ^2.0.15
|
shared_preferences: ^2.0.15
|
||||||
flutter_secure_storage:
|
flutter_secure_storage:
|
||||||
|
|
Loading…
Reference in a new issue