TT#33904 [Issue] Call: Inputting number on mobile is behaving strangely

Change-Id: I3694ae28ff51ce7b5c55dcb019804750c057b4ec
changes/91/20991/2
Hans-Peter Herzog 8 years ago
parent 56a87603b5
commit 7ac0d79e8f

@ -37,8 +37,9 @@
<div class="csc-call-info">
<q-field v-show="isPreparing" :helper="$t('call.inputNumber')" :count="64" dark
:error="validationEnabled && phoneNumberError" :error-label="$t('call.inputValidNumber')">
<q-input :float-label="$t('call.number')" v-model.trim="formattedPhoneNumber"
ref="numberInput" dark clearable max="64" @blur="phoneNumberBlur()" @focus="phoneNumberFocus()"/>
<q-input type="text" :float-label="$t('call.number')" :value="phoneNumber" @input="inputPhoneNumber"
ref="numberInput" dark clearable max="64" @blur="phoneNumberBlur" @focus="phoneNumberFocus"
@keypress.space.prevent @keydown.space.prevent />
</q-field>
<div v-if="!isPreparing" class="phone-number">
<q-icon v-if="isCalling && (localMediaType == 'audioVideo' || remoteMediaType == 'audioVideo')"
@ -116,6 +117,9 @@
QAlert
},
methods: {
inputPhoneNumber(value) {
this.phoneNumber = normalizeNumber(value, Platform.is.mobile);
},
focusNumberInput() {
Vue.nextTick(() => {
this.$refs.numberInput.focus();
@ -141,7 +145,7 @@
if(!_.isEmpty(this.phoneNumber)) {
this.phoneNumberError = false;
this.$store.dispatch('call/start', {
number: this.phoneNumber,
number: rawNumber(this.phoneNumber),
localMedia: localMedia
});
}
@ -251,16 +255,16 @@
}
return classes;
},
formattedPhoneNumber: {
get() {
return normalizeNumber(this.phoneNumber);
},
set(value) {
this.validationEnabled = true;
this.phoneNumberError = false;
this.phoneNumber = rawNumber(value);
}
},
// formattedPhoneNumber: {
// get() {
// return normalizeNumber(this.phoneNumber);
// },
// set(value) {
// this.validationEnabled = true;
// this.phoneNumberError = false;
// this.phoneNumber = rawNumber(value);
// }
// },
localMediaStream() {
if(this.$store.state.call.localMediaStream !== null) {
return this.$store.state.call.localMediaStream.getStream();

@ -22,19 +22,25 @@ export default function numberFormat(number) {
}
}
export function normalizeNumber(number) {
export function normalizeNumber(number, excludeLibPhoneNumber) {
if(_.isString(number)) {
let normalizedNumber = number.replace(/\s*/g, '');
if(normalizedNumber.match(/^\+?[0-9]+$/)) {
if(normalizedNumber.match(/^\+/) === null) {
normalizedNumber = '+' + normalizedNumber;
}
try {
return phoneUtil.format(phoneUtil.parse(normalizedNumber, 'DE'), PhoneNumberFormat.INTERNATIONAL);
}
catch(err) {
if(excludeLibPhoneNumber === true) {
return normalizedNumber;
}
else {
try {
return phoneUtil.format(phoneUtil.parse(normalizedNumber, 'DE'),
PhoneNumberFormat.INTERNATIONAL);
}
catch(err) {
return normalizedNumber;
}
}
}
else {
return number;
@ -46,10 +52,7 @@ export function normalizeNumber(number) {
}
export function rawNumber(number) {
if(_.isString(number)) {
return number.replace(/\s*/g, '').replace(/^\+/, '');
}
return '';
return "" + number.replace(/\s*/g, '').replace(/^\+/, '');
}
export function normalizeDestination(destination) {

Loading…
Cancel
Save