diff --git a/app/index.html b/app/index.html index e60b8b7e..04de1ceb 100644 --- a/app/index.html +++ b/app/index.html @@ -33,12 +33,12 @@ - + - + diff --git a/app/js/controllers.js b/app/js/controllers.js index cb48e56a..24304132 100644 --- a/app/js/controllers.js +++ b/app/js/controllers.js @@ -38,34 +38,40 @@ angular.module('myApp.controllers', []) $scope.sendCode = function () { $scope.progress.enabled = true; - MtpApiManager.invokeApi('auth.sendCode', { - phone_number: $scope.credentials.phone_number, - sms_type: 0, - api_id: 2496, - api_hash: '8da85b0d5bfe62527e5b244c209159c3' - }, {dcID: dcID}).then(function (sentCode) { + MtpApiManager.invokeApi('auth.checkPhone', { + phone_number: $scope.credentials.phone_number + }, {dcID: dcID}).then(function (result) { $scope.progress.enabled = false; - - if (!sentCode.phone_registered) { + if (!result.phone_registered) { ErrorService.showSimpleError('No account', 'Sorry, there is no Telegram account for ' + $scope.credentials.phone_number + '. Please sign up using our mobile apps.'); return false; } - $scope.credentials.phone_code_hash = sentCode.phone_code_hash; - $scope.credentials.phone_occupied = sentCode.phone_registered; - $scope.error = {}; - + $scope.progress.enabled = true; + MtpApiManager.invokeApi('auth.sendCode', { + phone_number: $scope.credentials.phone_number, + sms_type: 0, + api_id: 2496, + api_hash: '8da85b0d5bfe62527e5b244c209159c3' + }, {dcID: dcID}).then(function (sentCode) { + $scope.progress.enabled = false; + + $scope.credentials.phone_code_hash = sentCode.phone_code_hash; + $scope.credentials.phone_occupied = sentCode.phone_registered; + $scope.error = {}; + + }, function (error) { + $scope.progress.enabled = false; + dLog('sendCode error', error); + switch (error.type) { + case 'PHONE_NUMBER_INVALID': + $scope.error = {field: 'phone'}; + break; + } + }); }, function (error) { $scope.progress.enabled = false; - dLog('sendCode', error); - if (error.code == 303) { - var newDcID = error.type.match(/^(PHONE_MIGRATE_|NETWORK_MIGRATE_)(\d+)/)[2]; - if (newDcID != dcID) { - dcID = newDcID; - $scope.sendCode(); - return; - } - } + dLog('checkPhone error', error); switch (error.type) { case 'PHONE_NUMBER_INVALID': $scope.error = {field: 'phone'}; diff --git a/app/js/lib/mtproto.js b/app/js/lib/mtproto.js index 22d192d7..0485e17e 100644 --- a/app/js/lib/mtproto.js +++ b/app/js/lib/mtproto.js @@ -2240,7 +2240,20 @@ factory('MtpApiManager', function (AppConfigManager, MtpAuthorizer, MtpNetworker }, function (error) { deferred.reject(error); }); - } else { + } + else if (error.code == 303) { + var newDcID = error.type.match(/^(PHONE_MIGRATE_|NETWORK_MIGRATE_)(\d+)/)[2]; + if (newDcID != dcID) { + mtpGetNetworker(newDcID).then(function (networker) { + networker.wrapApiCall(method, params, options).then(function (result) { + deferred.resolve(result); + }, function (error) { + deferred.reject(error); + }); + }); + } + } + else { deferred.reject(error); } });