Merge pull request #3853 from cmgustavo/feat/paste-from-clipboard

Use cordova-plugin to paste from clipboard on mobile
This commit is contained in:
Matias Alejo Garcia 2016-02-11 14:15:26 -05:00
commit b6a129f2f0
5 changed files with 47 additions and 10 deletions

View file

@ -1,4 +1,4 @@
<div ng-init="wallets[0] ? selectedWalletsOpt = true : selectedWalletsOpts = false">
<div ng-init="wallets[0] ? selectedWalletsOpt = true : selectedWalletsOpts = false; checkClipboard()">
<nav class="tab-bar" ng-style="{'background-color':color}">
<section class="left-small">
<a ng-show="!editAddressbook && !addAddressbookEntry" ng-click="cancel()" class="p10">
@ -63,7 +63,7 @@
<a ng-click="selectWallet(w.id, w.name)" class="db oh">
<div class="avatar-wallet"
ng-style="{'background-color':w.color}">
<i class="icon-wallet size-21 vt"></i>
<i class="icon-wallet size-21"></i>
</div>
<div class="ellipsis name-wallet text-bold">{{w.name || w.id}}</div>
<div class="size-12">{{w.m}} of {{w.n}}
@ -98,7 +98,7 @@
<a ng-click="toggleAddAddressbookEntry()" class="p0i">
<i class="fi-plus size-24 m20r lh icon"></i>
<span class="size-12 tu text-bold" translate>Add a new entry</span>
<span ng-show="!list[newAddress] && newAddress">({{newAddress}})</span>
<span class="size-10" ng-show="!list[newAddress] && newAddress">({{newAddress}})</span>
</a>
</li>
</ul>

View file

@ -382,7 +382,8 @@
<available-balance></available-balance>
<a
ng-show="!home.lockedCurrentFeePerKb && index.feeToSendMaxStr && index.availableBalanceSat > 0 && !home.blockUx && !home.lockAmount"
ng-click="home.sendAll()"
ng-click="home.sendAll()"
class="p10"
translate> Send All
</a>
</h4>

View file

@ -957,17 +957,17 @@ ul.wallet-selection.wallets {
}
label.postfix, a.postfix {
height: 100%;
height: 34px;
border: none;
font-weight: 700;
font-size: 14px;
color: #7A8C9E;
text-transform: uppercase;
border-radius: 0 2px 2px 0;
position: absolute;
top: 0;
right: 0;
width: 40px;
width: 50px;
padding-top: 7px;
}
a.button.postfix {
@ -1000,7 +1000,6 @@ a.button.postfix {
.icon-wallet {
display: block;
margin-top: 7px;
}
.walletHome .icon-wallet {

View file

@ -342,8 +342,9 @@ a.missing-copayers {
text-align: center;
float: left;
width: 35px;
height: 35px;
height: 30px;
border-radius: 3px;
padding-top: 5px;
}
.sidebar header {

View file

@ -97,6 +97,19 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
$rootScope.$digest();
});
var getClipboard = function(cb) {
if (!isCordova || isMobile.Windows()) return cb();
window.cordova.plugins.clipboard.paste(function(value) {
var fc = profileService.focusedClient;
var Address = bitcore.Address;
var networkName = fc.credentials.network;
if (Address.isValid(value, networkName) && !$scope.newAddress) {
return cb(value);
}
});
};
var accept_msg = gettextCatalog.getString('Accept');
var cancel_msg = gettextCatalog.getString('Cancel');
var confirm_msg = gettextCatalog.getString('Confirm');
@ -120,6 +133,12 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
'label': ''
};
$scope.checkClipboard = function() {
getClipboard(function(value) {
$scope.newAddress = value;
});
};
$scope.beforeQrCodeScann = function() {
$scope.error = null;
$scope.addAddressbookEntry = true;
@ -250,6 +269,9 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
if (addr) {
self.setForm(addr);
}
}, function() {
// onRejected
self.resetForm();
});
};
@ -651,6 +673,20 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
if (isCordova && !this.isWindowsPhoneApp) {
this.hideMenuBar(what);
}
var self = this;
if (isCordova && !this.isWindowsPhoneApp && what == 'address') {
getClipboard(function(value) {
if (value) {
document.getElementById("amount").focus();
$timeout(function() {
window.plugins.toast.showShortCenter(gettextCatalog.getString('Pasted from clipboard'));
self.setForm(value);
}, 100);
}
});
}
if (!this.isWindowsPhoneApp) return
if (!what) {
@ -939,7 +975,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
$timeout(function() {
$rootScope.$digest();
}, 1);
};
};
this.openPPModal = function(paypro) {
$rootScope.modalOpened = true;