diff --git a/Gruntfile.js b/Gruntfile.js index 7968f2510..4ac23e47a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -71,7 +71,7 @@ module.exports = function(grunt) { sign_android: { // When the build log outputs "Built the following apk(s):", it seems to need the filename to start with "android-release". // It looks like it simply lists all apk files starting with "android-release" - command: 'rm -f platforms/android/build/outputs/apk/android-release-signed-*.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../bitcoin-com-release-key.jks -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk bitcoin-com && zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/bitcoin-com-wallet-<%= pkg.fullVersion %>-android-signed-aligned.apk', + command: 'rm -f platforms/android/build/outputs/apk/release/*-android-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../bitcoin-com-release-key.jks -signedjar platforms/android/build/outputs/apk/release/android-release-signed.apk platforms/android/build/outputs/apk/release/android-release-unsigned.apk bitcoin-com && zipalign -v 4 platforms/android/build/outputs/apk/release/android-release-signed.apk platforms/android/build/outputs/apk/release/bitcoin-com-wallet-<%= pkg.fullVersion %>-android-signed-aligned.apk', stdin: true, }, sign_desktop_dist: { diff --git a/app-template/config-template.xml b/app-template/config-template.xml index 8686b7b36..b24b86fae 100644 --- a/app-template/config-template.xml +++ b/app-template/config-template.xml @@ -77,7 +77,7 @@ - + diff --git a/src/android/build-extras.gradle b/src/android/build-extras.gradle index e7dd50572..c90145418 100644 --- a/src/android/build-extras.gradle +++ b/src/android/build-extras.gradle @@ -1,5 +1,6 @@ ext { ANDROID_SUPPORT_V4_VERSION = '26.1.0' + ANDROID_SUPPORT_ANNOTATIONS_VERSION = '26.1.0' } configurations.all { diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index a62ba5fd8..5750fdc23 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -158,14 +158,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio }; $scope.viewAllAddresses = function() { - var fromView = $ionicHistory.currentStateName(); - var path; - if (fromView.indexOf('settings') !== -1) { - path = 'tabs.settings.allAddresses'; - } else { - path = 'tabs.wallet.allAddresses'; - } - $state.go(path, { + $state.go('tabs.wallet.allAddresses', { walletId: $scope.wallet.id }); }; @@ -209,7 +202,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio return ''; } return dateObj.toJSON(); - }; + } ongoingProcess.set('sendingByEmail', true); $timeout(function() { @@ -240,7 +233,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio }; $scope.$on("$ionicView.afterEnter", function(event, data) { - $scope.allAddressesView = data.stateName == 'tabs.receive.allAddresses' ? true : false; + $scope.allAddressesView = data.stateName === 'tabs.wallet.allAddresses'; if (!isCachedWallet($stateParams.walletId)) $scope.init(); else $log.debug('Addresses cached for Wallet:', $stateParams.walletId); }); diff --git a/src/js/controllers/preferences.js b/src/js/controllers/preferences.js index 2053e32a5..927a113e5 100644 --- a/src/js/controllers/preferences.js +++ b/src/js/controllers/preferences.js @@ -116,4 +116,4 @@ angular.module('copayApp.controllers').controller('preferencesController', $scope.$on("$ionicView.enter", function(event, data) { $ionicNavBarDelegate.showBar(true); }); - }); +}); diff --git a/src/js/controllers/preferencesAdvancedController.js b/src/js/controllers/preferencesAdvancedController.js index ddc30bdf0..6987be694 100644 --- a/src/js/controllers/preferencesAdvancedController.js +++ b/src/js/controllers/preferencesAdvancedController.js @@ -6,7 +6,7 @@ angular.module('copayApp.controllers').controller('preferencesAdvancedController $scope.wallet = wallet; $scope.goToAddresses = function() { - $state.go('tabs.settings.addresses', { + $state.go('tabs.preferences.addresses', { walletId: $stateParams.walletId, }); }; diff --git a/src/js/controllers/wallet-details.controller.js b/src/js/controllers/wallet-details.controller.js index 429420741..d2aef1f76 100644 --- a/src/js/controllers/wallet-details.controller.js +++ b/src/js/controllers/wallet-details.controller.js @@ -15,7 +15,9 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun updatingTxHistory: false, fetchedAllTxHistory: false, //updateTxHistoryError: false - updateTxHistoryFailed: false + updateTxHistoryFailed: false, + + openWalletSettings: openWalletSettings }; // Need flag for when to allow infinite scroll at bottom @@ -115,6 +117,10 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun }); }; + function openWalletSettings() { + $state.go('tabs.preferences', {'walletId': $scope.wallet.id, 'backToDetails': true}); + } + $scope.openSearchModal = function() { $scope.color = $scope.wallet.color; $scope.isSearching = true; diff --git a/src/js/routes.js b/src/js/routes.js index d2b78aac3..46ca8862e 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -194,16 +194,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } } }) - - .state('tabs.wallet.addresses', { - url: '/addresses/:walletId/:toAddress', - views: { - 'tab-home@tabs': { - controller: 'addressesController', - templateUrl: 'views/addresses.html' - } - } - }) .state('tabs.wallet.allAddresses', { url: '/allAddresses/:walletId', views: { @@ -528,7 +518,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences', { url: '/preferences/:walletId', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesController', templateUrl: 'views/preferences.html' } @@ -537,7 +527,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.preferencesAlias', { url: '/preferencesAlias', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesAliasController', templateUrl: 'views/preferencesAlias.html' } @@ -546,7 +536,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.preferencesColor', { url: '/preferencesColor', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesColorController', templateUrl: 'views/preferencesColor.html' } @@ -555,7 +545,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.backupWarning', { url: '/backupWarning/:from', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'backupWarningController', templateUrl: 'views/backupWarning.html' } @@ -564,7 +554,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.backup', { url: '/backup', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'backupController', templateUrl: 'views/backup.html' } @@ -573,7 +563,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.preferencesAdvanced', { url: '/preferencesAdvanced', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesAdvancedController', templateUrl: 'views/preferencesAdvanced.html' } @@ -582,16 +572,25 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.information', { url: '/information', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesInformation', templateUrl: 'views/preferencesInformation.html' } } }) + .state('tabs.preferences.addresses', { /* Addresses */ + url: '/addresses/:walletId/:toAddress', + views: { + 'tab-home@tabs': { + controller: 'addressesController', + templateUrl: 'views/addresses.html' + } + } + }) .state('tabs.preferences.export', { url: '/export', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'exportController', templateUrl: 'views/export.html' } @@ -600,7 +599,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.preferencesBwsUrl', { url: '/preferencesBwsUrl', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesBwsUrlController', templateUrl: 'views/preferencesBwsUrl.html' } @@ -609,7 +608,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.preferencesHistory', { url: '/preferencesHistory', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesHistory', templateUrl: 'views/preferencesHistory.html' } @@ -618,7 +617,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.preferencesExternal', { url: '/preferencesExternal', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesExternalController', templateUrl: 'views/preferencesExternal.html' } @@ -627,17 +626,16 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr .state('tabs.preferences.delete', { url: '/delete', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'preferencesDeleteWalletController', templateUrl: 'views/preferencesDeleteWallet.html' } } }) - .state('tabs.preferencesCash.scan', { url: '/cashScan', views: { - 'tab-settings@tabs': { + 'tab-home@tabs': { controller: 'cashScanController', templateUrl: 'views/cashScan.html' } @@ -695,31 +693,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) - /* - * - * Addresses - * - */ - - .state('tabs.settings.addresses', { - url: '/addresses/:walletId/:toAddress', - views: { - 'tab-settings@tabs': { - controller: 'addressesController', - templateUrl: 'views/addresses.html' - } - } - }) - .state('tabs.settings.allAddresses', { - url: '/allAddresses/:walletId', - views: { - 'tab-settings@tabs': { - controller: 'addressesController', - templateUrl: 'views/allAddresses.html' - } - } - }) - /* * * Request Specific amount diff --git a/src/js/services/send-flow.service.js b/src/js/services/send-flow.service.js index e8be2e487..babf5096a 100644 --- a/src/js/services/send-flow.service.js +++ b/src/js/services/send-flow.service.js @@ -52,7 +52,7 @@ angular // Detect some merchant that we know if (payProData.memo.indexOf('eGifter') > -1) { name = 'eGifter' - } else if (paymentUrl.indexOf('https://bitpay.com') > -1) { + } else if (payProData.url.indexOf('https://bitpay.com') > -1) { name = 'BitPay'; } diff --git a/src/js/services/shapeShiftApiService.js b/src/js/services/shapeShiftApiService.js index cc5fb0792..a90e587d4 100644 --- a/src/js/services/shapeShiftApiService.js +++ b/src/js/services/shapeShiftApiService.js @@ -24,7 +24,7 @@ var ShapeShift = (function() { var parsedResponse = JP(xmlhttp.responseText); cb.apply(null, [parsedResponse]); } else { - cb.apply(null, [new Error('Request Failed')]) + cb.apply(null, [new Error('Request Failed')]); } } }; diff --git a/src/js/services/wallet-history.service.js b/src/js/services/wallet-history.service.js index 512a2d8b1..a0b36288d 100644 --- a/src/js/services/wallet-history.service.js +++ b/src/js/services/wallet-history.service.js @@ -7,8 +7,8 @@ .factory('walletHistoryService', walletHistoryService); function walletHistoryService(configService, storageService, lodash, $log, txFormatService) { - //var PAGE_SIZE = 50; - var PAGE_SIZE = 20; // For dev only + var PAGE_SIZE = 50; + //var PAGE_SIZE = 20; // For dev only // How much to overlap on each end of the page, for mitigating inconsistent sort order. var PAGE_OVERLAP_FRACTION = 0.2; var PAGE_OVERLAP = Math.floor(PAGE_SIZE * PAGE_OVERLAP_FRACTION); @@ -28,8 +28,8 @@ function addEarlyTransactions(walletId, cachedTxs, newTxs) { var cachedTxIndexFromId = {}; - cachedTxs.forEach(function forCachedTx(tx){ - cachedTxIndexFromId[tx.txid] = true; + cachedTxs.forEach(function forCachedTx(tx, txIndex){ + cachedTxIndexFromId[tx.txid] = txIndex; }); var confirmationsUpdated = false; @@ -147,7 +147,6 @@ * @param {function(error, txs)} cb - txs is always an array, may be empty */ function getCachedTxHistory(walletId, cb) { - console.log('txhistory updateLocalTxHistoryByPage()'); storageService.getTxHistory(walletId, function onGetTxHistory(err, txHistoryString){ if (err) { return cb(err, []); @@ -230,7 +229,6 @@ } function updateLocalTxHistoryByPage(wallet, getLatest, flushCacheOnNew, cb) { - console.log('txhistory updaetLocalTxHistoryByPage()'); if (flushCacheOnNew) { fetchTxHistoryByPage(wallet, 0, function onFetchTxHistory(err, txs){ if (err) { diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index 3091e63a6..7b2578383 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -100,22 +100,6 @@ -
{{'Bitcoin Cash (BCH)' | translate}}
- - - - - -
{{'Bitcoin Core (BTC)' | translate}}
- - - - -
{{'Integrations' | translate}}
+