diff --git a/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.h b/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.h index 8117a66a7..2bfaf7b64 100644 --- a/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.h +++ b/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.h @@ -26,4 +26,10 @@ @interface UIDigitButtonLongVoiceMail : UIDigitButton { } +/* Returns TRUE if voice mail is configured in LinphoneCore */ +- (BOOL) voiceMailEnabled; + +/*! Automatically chooses the right icon depending on voice mail configured or not */ +- (void) refreshUI; + @end diff --git a/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.m b/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.m index ba412557e..87a551ee9 100644 --- a/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.m +++ b/Classes/LinphoneUI/UIDigitButtonLongVoiceMail.m @@ -29,17 +29,32 @@ } - (void)onLongTouch { - if(![LinphoneManager isLcReady]) { - [LinphoneLogger log:LinphoneLoggerWarning format:@"Cannot call voice mail: Linphone core not ready"]; - return; - } - LinphoneManager* lm = [LinphoneManager instance]; - - NSString * voiceMailUri = [lm lpConfigStringForKey:@"voice_mail_uri" withDefault:NULL]; - - if (voiceMailUri != NULL) { - [lm call:voiceMailUri displayName:NSLocalizedString(@"Voice mail",nil) transfer:FALSE]; + if ([self voiceMailEnabled]) { + LinphoneManager *lm = [LinphoneManager instance]; + [lm call:[lm lpConfigStringForKey:@"voice_mail_uri"] displayName:NSLocalizedString(@"Voice mail",nil) transfer:FALSE]; } } +- (BOOL) voiceMailEnabled { + if(![LinphoneManager isLcReady]) { + [LinphoneLogger log:LinphoneLoggerWarning format:@"Cannot call voice mail: Linphone core not ready"]; + return FALSE; + } + + NSString * voiceMailUri = [[LinphoneManager instance] lpConfigStringForKey:@"voice_mail_uri" withDefault:NULL]; + + return (voiceMailUri != NULL); +} + +- (void)refreshUI { + NSMutableString *name = [[NSMutableString alloc] initWithString:@"numpad_one_"]; + + if ([self voiceMailEnabled]) { + [name appendString:@"voicemail_"]; + } + + [self setImage:[UIImage imageNamed:[name stringByAppendingString:@"default.png"]] forState: UIControlStateNormal]; + [self setImage:[UIImage imageNamed:[name stringByAppendingString:@"over.png"]] forState: UIControlStateHighlighted]; +} + @end diff --git a/Resources/numpad_one_voicemail_default.png b/Resources/numpad_one_voicemail_default.png new file mode 100644 index 000000000..07f8d0ecf Binary files /dev/null and b/Resources/numpad_one_voicemail_default.png differ diff --git a/Resources/numpad_one_voicemail_over.png b/Resources/numpad_one_voicemail_over.png new file mode 100644 index 000000000..abe10c6e7 Binary files /dev/null and b/Resources/numpad_one_voicemail_over.png differ