UITester: fix automatic tests (in progress)
|
|
@ -49,7 +49,7 @@ typedef enum _ViewElement {
|
|||
- (id)init {
|
||||
self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
|
||||
if (self != nil) {
|
||||
[[NSBundle mainBundle] loadNibNamed:@"AssistantSubviews" owner:self options:nil];
|
||||
[[NSBundle mainBundle] loadNibNamed:@"AssistantViewScreens" owner:self options:nil];
|
||||
historyViews = [[NSMutableArray alloc] init];
|
||||
currentView = nil;
|
||||
}
|
||||
|
|
@ -91,6 +91,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
name:kLinphoneConfiguringStateUpdate
|
||||
object:nil];
|
||||
new_config = NULL;
|
||||
[self resetTextFields];
|
||||
[self changeView:_welcomeView back:FALSE animation:FALSE];
|
||||
}
|
||||
|
||||
|
|
@ -211,7 +212,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
LinphoneManager *lm = [LinphoneManager instance];
|
||||
|
||||
if (new_config != NULL && proxy != new_config) {
|
||||
const LinphoneAuthInfo *auth = linphone_proxy_config_find_auth_info(new_config);
|
||||
linphone_core_remove_proxy_config(lc, new_config);
|
||||
if (auth) {
|
||||
linphone_core_remove_auth_info(lc, auth);
|
||||
}
|
||||
}
|
||||
new_config = proxy;
|
||||
|
||||
|
|
@ -455,7 +460,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
forProxy:(LinphoneProxyConfig *)proxy
|
||||
message:(NSString *)message {
|
||||
// in assistant we only care about ourself
|
||||
if (proxy != linphone_core_get_default_proxy_config([LinphoneManager getLc])) {
|
||||
if (proxy != new_config) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -529,9 +534,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
void assistant_existence_tested(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorOk) {
|
||||
if (status == LinphoneAccountCreatorFailed) {
|
||||
[[thiz findTextField:ViewElement_Username] showError:NSLocalizedString(@"This name is already taken.", nil)];
|
||||
[thiz findButton:ViewElement_NextButton].enabled = NO;
|
||||
} else {
|
||||
[thiz changeView:thiz.createAccountActivationView back:FALSE animation:TRUE];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -539,18 +546,15 @@ void assistant_create_account(LinphoneAccountCreator *creator, LinphoneAccountCr
|
|||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorOk) {
|
||||
NSString *username = [thiz findTextField:ViewElement_Username].text;
|
||||
NSString *password = [thiz findTextField:ViewElement_Password].text;
|
||||
[thiz changeView:thiz.createAccountActivationView back:FALSE animation:TRUE];
|
||||
[thiz findTextField:ViewElement_Username].text = username;
|
||||
[thiz findTextField:ViewElement_Password].text = password;
|
||||
thiz.waitView.hidden = NO;
|
||||
linphone_account_creator_test_validation(thiz->account_creator);
|
||||
} else {
|
||||
UIAlertView *errorView =
|
||||
[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Account creation issue", nil)
|
||||
message:NSLocalizedString(@"Can't create the account. Please try again.", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
UIAlertView *errorView = [[UIAlertView alloc]
|
||||
initWithTitle:NSLocalizedString(@"Account validation issue", nil)
|
||||
message:NSLocalizedString(@"Your account could not be created, please try again later.", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[errorView show];
|
||||
}
|
||||
}
|
||||
|
|
@ -596,6 +600,7 @@ void assistant_validation_tested(LinphoneAccountCreator *creator, LinphoneAccoun
|
|||
[atf textField:atf shouldChangeCharactersInRange:range replacementString:string];
|
||||
if (atf.tag == ViewElement_Username && currentView == _createAccountView) {
|
||||
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string.lowercaseString];
|
||||
[self shouldEnableNextButton];
|
||||
return NO;
|
||||
}
|
||||
[self shouldEnableNextButton];
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Dialer"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="dialer_back_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
<rect key="frame" x="40" y="217" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Create linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Create account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
<rect key="frame" x="40" y="301" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Use Linphone account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -78,29 +78,11 @@
|
|||
<action selector="onGotoLinphoneLoginClick:" destination="-1" eventType="touchUpInside" id="4AG-ng-fIB"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="wordWrap" id="39" userLabel="loginButton" customClass="UIRoundBorderedButton">
|
||||
<rect key="frame" x="39" y="383" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in SIP account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<state key="normal" title="USE SIP ACCOUNT">
|
||||
<color key="titleColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onGotoLoginClick:" destination="-1" eventType="touchUpInside" id="qRw-RY-0ip"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="wordWrap" id="Kbn-dL-C5h" userLabel="remoteProvisionningButton" customClass="UIRoundBorderedButton">
|
||||
<rect key="frame" x="40" y="466" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Remote provisioning">
|
||||
<accessibility key="accessibilityConfiguration" label="Fetch remote configuration">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -114,6 +96,24 @@
|
|||
<action selector="onGotoRemoteProvisionningClick:" destination="-1" eventType="touchUpInside" id="amN-4O-i2X"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="wordWrap" id="39" userLabel="loginButton" customClass="UIRoundBorderedButton">
|
||||
<rect key="frame" x="39" y="380" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Use SIP account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<state key="normal" title="USE SIP ACCOUNT">
|
||||
<color key="titleColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onGotoLoginClick:" destination="-1" eventType="touchUpInside" id="qRw-RY-0ip"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<animations/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
|
|
@ -233,7 +233,7 @@
|
|||
<rect key="frame" x="38" y="448" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Create linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Create account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -302,7 +302,7 @@
|
|||
<rect key="frame" x="38" y="448" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Create linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Finish configuration">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -381,7 +381,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password "/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
|
|
@ -393,7 +393,7 @@
|
|||
<rect key="frame" x="38" y="448" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Login linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Login">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -472,7 +472,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password "/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
|
|
@ -493,7 +493,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Domain "/>
|
||||
<accessibility key="accessibilityConfiguration" label="Domain"/>
|
||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
|
|
@ -527,7 +527,7 @@
|
|||
<rect key="frame" x="38" y="448" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Login linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Login">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -597,11 +597,11 @@
|
|||
<rect key="frame" x="38" y="448" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Login linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Fetch and apply">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<state key="normal" title="DOWNLOAD">
|
||||
<state key="normal" title="FETCH AND APPLY">
|
||||
<color key="titleColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled">
|
||||
|
|
@ -676,7 +676,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password "/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
|
|
@ -697,7 +697,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Domain "/>
|
||||
<accessibility key="accessibilityConfiguration" label="Domain"/>
|
||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
|
|
@ -709,7 +709,7 @@
|
|||
<rect key="frame" x="38" y="448" width="299" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Login linphone.org account">
|
||||
<accessibility key="accessibilityConfiguration" label="Login">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="6" userLabel="tableView">
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="6">
|
||||
<rect key="frame" x="5" y="110" width="365" height="449"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<outlet property="delegate" destination="4" id="12"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<searchBar contentMode="redraw" id="Rd9-hK-nqR">
|
||||
<searchBar contentMode="redraw" id="Rd9-hK-nqR" userLabel="Contact address">
|
||||
<rect key="frame" x="0.0" y="66" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
||||
</view>
|
||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="4" userLabel="tableController" customClass="ChatConversationCreateTableView">
|
||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="4" userLabel="Suggested addresses" customClass="ChatConversationCreateTableView">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<connections>
|
||||
|
|
|
|||
|
|
@ -131,14 +131,14 @@
|
|||
<rect key="frame" x="225" y="0.0" width="75" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="select_all_default.png">
|
||||
<state key="normal" image="deselect_all.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="select_all_disabled.png"/>
|
||||
<state key="selected" image="deselect_all.png"/>
|
||||
<state key="selected" image="select_all_default.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onSelectionToggle:" destination="29" eventType="touchUpInside" id="eP5-bU-LEA"/>
|
||||
|
|
@ -233,7 +233,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" hint="" label=""/>
|
||||
<accessibility key="accessibilityConfiguration" hint="" label="Message field"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="26"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences" autocorrectionType="yes" spellCheckingType="yes" keyboardAppearance="alert" returnKeyType="send"/>
|
||||
<connections>
|
||||
|
|
|
|||
|
|
@ -35,14 +35,14 @@
|
|||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="select_all_default.png">
|
||||
<state key="normal" image="deselect_all.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="select_all_disabled.png"/>
|
||||
<state key="selected" image="deselect_all.png"/>
|
||||
<state key="selected" image="select_all_default.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onSelectionToggle:" destination="4" eventType="touchUpInside" id="ct6-0c-d1q"/>
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="New Discussion"/>
|
||||
<accessibility key="accessibilityConfiguration" label="New discussion"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="chat_add_default.png">
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
<subviews>
|
||||
<imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar.png" id="B6X-C9-2vm" userLabel="avatarImage" customClass="UIRoundedImageView">
|
||||
<rect key="frame" x="142" y="10" width="90" height="90"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<connections>
|
||||
<outletCollection property="gestureRecognizers" destination="8bV-f4-pLL" appends="YES" id="4V5-Px-aHT"/>
|
||||
|
|
|
|||
|
|
@ -137,14 +137,14 @@
|
|||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="select_all_default.png">
|
||||
<state key="normal" image="deselect_all.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="select_all_disabled.png"/>
|
||||
<state key="selected" image="deselect_all.png"/>
|
||||
<state key="selected" image="select_all_default.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onSelectionToggle:" destination="TJG-JZ-YRR" eventType="touchUpInside" id="YcH-HT-zyi"/>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
<animations/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="backButton" customClass="UIIconButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="72" height="63"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="72" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="50" userLabel="addButton" customClass="UIIconButton">
|
||||
<rect key="frame" x="303" y="0.0" width="72" height="63"/>
|
||||
<rect key="frame" x="303" y="0.0" width="72" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
||||
|
|
@ -67,9 +67,9 @@
|
|||
<rect key="frame" x="0.0" y="66" width="375" height="250"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" image="avatar.png" id="23" userLabel="avatarImage" customClass="UIRoundedImageView">
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar.png" id="23" userLabel="avatarImage" customClass="UIRoundedImageView">
|
||||
<rect key="frame" x="137" y="8" width="100" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
|
|
|
|||
|
|
@ -94,14 +94,14 @@
|
|||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="select_all_default.png">
|
||||
<state key="normal" image="deselect_all.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="select_all_disabled.png"/>
|
||||
<state key="selected" image="deselect_all.png"/>
|
||||
<state key="selected" image="select_all_default.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onSelectionToggle:" destination="18" eventType="touchUpInside" id="ADr-KR-SmA"/>
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
[self.allContacts addObject:ref];
|
||||
}
|
||||
[_searchBar becomeFirstResponder];
|
||||
|
||||
self.tableView.accessibilityIdentifier = @"Suggested addresses";
|
||||
}
|
||||
|
||||
- (void)reloadDataWithFilter:(NSString *)filter {
|
||||
|
|
@ -81,7 +83,7 @@
|
|||
[ContactDisplay setDisplayNameLabel:cell.displayNameLabel forAddress:addr];
|
||||
} else {
|
||||
cell.displayNameLabel.text = _contacts[indexPath.row];
|
||||
cell.addressLabel.text = NSLocalizedString(@"Invalid address", nil);
|
||||
cell.addressLabel.text = NSLocalizedString(@"Invalid SIP address", nil);
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
|
|
@ -90,10 +92,20 @@
|
|||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
LinphoneChatRoom *room = linphone_core_get_chat_room_from_uri([LinphoneManager getLc],
|
||||
((NSString *)_contacts[indexPath.row]).UTF8String);
|
||||
ChatConversationView *view = VIEW(ChatConversationView);
|
||||
[view setChatRoom:room];
|
||||
[PhoneMainView.instance popCurrentView];
|
||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription push:TRUE];
|
||||
if (!room) {
|
||||
[PhoneMainView.instance popCurrentView];
|
||||
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid address", nil)
|
||||
message:@"Please specify the entire SIP address for the chat"
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"OK", nil)
|
||||
otherButtonTitles:nil];
|
||||
[alert show];
|
||||
} else {
|
||||
ChatConversationView *view = VIEW(ChatConversationView);
|
||||
[view setChatRoom:room];
|
||||
[PhoneMainView.instance popCurrentView];
|
||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription push:TRUE];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
|
||||
|
|
|
|||
|
|
@ -63,9 +63,8 @@
|
|||
time_t callTime = linphone_call_log_get_start_date(log);
|
||||
cell.textLabel.textAlignment = NSTextAlignmentCenter;
|
||||
[cell.textLabel
|
||||
setText:[NSString stringWithFormat:@"%@ - %@", [LinphoneUtils timeToString:callTime
|
||||
withFormat:NSLocalizedString(
|
||||
@"yyyy/MM/dd '-' HH'h'mm", nil)],
|
||||
setText:[NSString stringWithFormat:@"%@ - %@",
|
||||
[LinphoneUtils timeToString:callTime withFormat:LinphoneDateHistoryDetails],
|
||||
[LinphoneUtils durationToString:duration]]];
|
||||
BOOL outgoing = (linphone_call_log_get_dir(log) == LinphoneCallOutgoing);
|
||||
|
||||
|
|
|
|||
|
|
@ -158,8 +158,8 @@
|
|||
} else if ([eventDate isEqualToDate:[currentDate dateByAddingTimeInterval:-3600 * 24]]) {
|
||||
tempLabel.text = NSLocalizedString(@"YESTERDAY", nil);
|
||||
} else {
|
||||
tempLabel.text = [LinphoneUtils timeToString:eventDate.timeIntervalSince1970
|
||||
withFormat:NSLocalizedString(@"yyyy/MM/dd", nil)];
|
||||
tempLabel.text =
|
||||
[LinphoneUtils timeToString:eventDate.timeIntervalSince1970 withFormat:LinphoneDateHistoryList];
|
||||
}
|
||||
tempLabel.textAlignment = NSTextAlignmentCenter;
|
||||
tempLabel.font = [UIFont boldSystemFontOfSize:17];
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Side menu button"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<state key="normal" image="menu.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
|
@ -99,6 +100,7 @@
|
|||
<rect key="frame" x="46" y="0.0" width="194" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Registration state"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<inset key="titleEdgeInsets" minX="6" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Registered" image="led_disconnected.png">
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<rect key="frame" x="8" y="45" width="46" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="25"/>
|
||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -51,10 +51,13 @@
|
|||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="VDt-hI-meD" userLabel="unreadCountButton" customClass="UIIconButton">
|
||||
<button opaque="NO" userInteractionEnabled="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="VDt-hI-meD" userLabel="unreadCountButton" customClass="UIIconButton">
|
||||
<rect key="frame" x="346" y="4" width="28" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Unread message count">
|
||||
<accessibilityTraits key="traits" none="YES" staticText="YES" notEnabled="YES"/>
|
||||
</accessibility>
|
||||
<state key="normal" title="0" backgroundImage="chat_list_indicator.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
<outlet property="fileTransferProgress" destination="USm-wC-GvG" id="POt-YD-NCG"/>
|
||||
<outlet property="imageSubView" destination="GmN-7v-uuO" id="k9r-Xc-csv"/>
|
||||
<outlet property="messageImageView" destination="yMW-cT-bpU" id="MNr-F2-abQ"/>
|
||||
<outlet property="resendRecognizer" destination="5ZI-Ip-lGl" id="G2r-On-6mV"/>
|
||||
<outlet property="statusImage" destination="hSL-MF-B9b" id="cwm-bV-O3a"/>
|
||||
<outlet property="totalView" destination="8I3-n2-0kS" id="aa8-j9-saW"/>
|
||||
</connections>
|
||||
|
|
@ -44,18 +45,18 @@
|
|||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="11:35 John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="JyR-RQ-uwF" userLabel="contactDateLabel">
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="11:35 John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JyR-RQ-uwF" userLabel="contactDateLabel">
|
||||
<rect key="frame" x="48" y="0.0" width="246" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="8I3-n2-0kS" userLabel="view">
|
||||
<rect key="frame" x="48" y="24" width="266" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="splashscreen.png" id="yMW-cT-bpU" userLabel="image" customClass="UILoadingImageView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="266" height="68"/>
|
||||
|
|
@ -66,17 +67,9 @@
|
|||
<outletCollection property="gestureRecognizers" destination="aDF-hC-ddO" appends="YES" id="7kE-0j-s1g"/>
|
||||
</connections>
|
||||
</imageView>
|
||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="128 Ko / 172 Ko" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Aaa-MV-yvm" userLabel="fileSizeLabel">
|
||||
<rect key="frame" x="-7" y="44" width="265" height="12"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="GmN-7v-uuO" userLabel="imageSubView">
|
||||
<rect key="frame" x="0.0" y="68" width="265" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" id="USm-wC-GvG" userLabel="transferProgress">
|
||||
<rect key="frame" x="10" y="0.0" width="245" height="2"/>
|
||||
|
|
@ -87,6 +80,7 @@
|
|||
<rect key="frame" x="70" y="4" width="124" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Download"/>
|
||||
<state key="normal" title="DOWNLOAD" backgroundImage="color_G.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
|
@ -99,6 +93,7 @@
|
|||
<rect key="frame" x="70" y="4" width="124" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<state key="normal" title="CANCEL" backgroundImage="color_I.png">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
|
@ -118,6 +113,7 @@
|
|||
<rect key="frame" x="307" y="0.0" width="15" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Message status"/>
|
||||
</imageView>
|
||||
<imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_A.png" id="6dA-3U-OPW" userLabel="bottomBarColor">
|
||||
<rect key="frame" x="0.0" y="129" width="322" height="1"/>
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
@property(weak, nonatomic) IBOutlet UIImageView *bottomBarColor;
|
||||
@property(nonatomic, strong) id<ChatConversationDelegate> chatRoomDelegate;
|
||||
@property(strong, nonatomic) IBOutlet UIView *bubbleView;
|
||||
@property(strong, nonatomic) IBOutlet UITapGestureRecognizer *resendRecognizer;
|
||||
|
||||
- (CGSize)viewSizeWithWidth:(int)width;
|
||||
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@
|
|||
}
|
||||
_contactDateLabel.text = [NSString
|
||||
stringWithFormat:@"%@ - %@", [LinphoneUtils timeToString:linphone_chat_message_get_time(_message)
|
||||
withFormat:NSLocalizedString(@"yyyy/MM/dd '-' HH'h'mm", nil)],
|
||||
withFormat:LinphoneDateChatBubble],
|
||||
[FastAddressBook displayNameForAddress:linphone_chat_message_get_from_address(_message)]];
|
||||
|
||||
_backgroundColorImage.image = _bottomBarColor.image =
|
||||
|
|
@ -124,9 +124,9 @@
|
|||
_statusImage.accessibilityValue = @"in progress";
|
||||
_statusImage.hidden = FALSE;
|
||||
} else if (state == LinphoneChatMessageStateDelivered) {
|
||||
_statusImage.image = [UIImage imageNamed:@"chat_message_delivered.png"];
|
||||
_statusImage.image = nil;
|
||||
_statusImage.accessibilityValue = @"delivered";
|
||||
_statusImage.hidden = FALSE;
|
||||
_statusImage.hidden = TRUE;
|
||||
} else {
|
||||
_statusImage.image = [UIImage imageNamed:@"chat_message_not_delivered.png"];
|
||||
_statusImage.accessibilityValue = @"not delivered";
|
||||
|
|
@ -151,6 +151,7 @@
|
|||
|
||||
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
|
||||
_messageText.userInteractionEnabled = !editing;
|
||||
_resendRecognizer.enabled = !editing;
|
||||
}
|
||||
|
||||
#pragma mark - Action Functions
|
||||
|
|
|
|||
|
|
@ -13,25 +13,26 @@
|
|||
<outlet property="bubbleView" destination="ucH-2r-rar" id="XWU-yi-1z8"/>
|
||||
<outlet property="contactDateLabel" destination="GRe-ur-aSb" id="DQA-v4-IjX"/>
|
||||
<outlet property="messageText" destination="CYa-If-oB4" id="7xm-UF-1qB"/>
|
||||
<outlet property="resendRecognizer" destination="OA2-9R-81Z" id="zVJ-IY-3yO"/>
|
||||
<outlet property="statusImage" destination="nLy-JO-TyL" id="9uf-2G-m8d"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<tapGestureRecognizer id="OA2-9R-81Z" userLabel="resendClick">
|
||||
<connections>
|
||||
<action selector="onResendClick:" destination="-2" id="Xsy-zb-b7x"/>
|
||||
<action selector="onResendClick:" destination="-1" id="l6k-1D-O4U"/>
|
||||
</connections>
|
||||
</tapGestureRecognizer>
|
||||
<view contentMode="scaleToFill" id="ucH-2r-rar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="334" height="171"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="334" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="vdk-RV-QRU" userLabel="innerView">
|
||||
<rect key="frame" x="6" y="5" width="322" height="161"/>
|
||||
<rect key="frame" x="6" y="5" width="322" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.20000000000000001" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_A.png" id="ZIO-Cb-28G" userLabel="backgroundColorImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="322" height="161"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="322" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
</imageView>
|
||||
|
|
@ -44,20 +45,19 @@
|
|||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="11:35 John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="GRe-ur-aSb" userLabel="contactDateLabel">
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="11:35 John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="GRe-ur-aSb" userLabel="contactDateLabel">
|
||||
<rect key="frame" x="48" y="0.0" width="246" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textView clipsSubviews="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" id="CYa-If-oB4" userLabel="messageText" customClass="UITextViewNoDefine">
|
||||
<rect key="frame" x="48" y="9" width="268" height="152"/>
|
||||
<textView clipsSubviews="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" text="Lore ipsum..." id="CYa-If-oB4" userLabel="messageText" customClass="UITextViewNoDefine">
|
||||
<rect key="frame" x="48" y="8" width="268" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<string key="text">https://beta.itunes.apple.com/v1/invite/deb3eac7cecf43c7a33cfd2300e480f0a1a5f645a88240e8b0fe9951b7f1eae215762a66?ct=Z2V957B3D6&pt=2003</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
<dataDetectorType key="dataDetectorTypes" link="YES"/>
|
||||
|
|
@ -66,9 +66,10 @@
|
|||
<rect key="frame" x="307" y="0.0" width="15" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Message status"/>
|
||||
</imageView>
|
||||
<imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_A.png" id="mlr-pl-B6T" userLabel="bottomBarColor">
|
||||
<rect key="frame" x="0.0" y="160" width="322" height="1"/>
|
||||
<rect key="frame" x="0.0" y="49" width="322" height="1"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
</imageView>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
- (NSString *)accessibilityValue {
|
||||
if (_chatContentLabel.text) {
|
||||
return [NSString stringWithFormat:@"%@ - %@ (%li)", _addressLabel.text, _chatContentLabel.text,
|
||||
return [NSString stringWithFormat:@"%@, %@ (%li)", _addressLabel.text, _chatContentLabel.text,
|
||||
(long)[_unreadCountButton.titleLabel.text integerValue]];
|
||||
} else {
|
||||
return [NSString
|
||||
|
|
@ -86,8 +86,8 @@
|
|||
_chatContentLabel.text = message;
|
||||
}
|
||||
|
||||
_chatLatestTimeLabel.text = [LinphoneUtils timeToString:linphone_chat_message_get_time(last_message)
|
||||
withFormat:NSLocalizedString(@"MM/dd", nil)];
|
||||
_chatLatestTimeLabel.text =
|
||||
[LinphoneUtils timeToString:linphone_chat_message_get_time(last_message) withFormat:LinphoneDateChatBubble];
|
||||
_chatLatestTimeLabel.hidden = NO;
|
||||
} else {
|
||||
_chatContentLabel.text = nil;
|
||||
|
|
|
|||
|
|
@ -50,24 +50,35 @@
|
|||
[_selectedItems addObject:indexPath];
|
||||
}
|
||||
[self accessoryForCell:cell atPath:indexPath];
|
||||
_toggleSelectionButton.selected = (_selectedItems.count == [self totalNumberOfItems]);
|
||||
[self selectToggleButton:(_selectedItems.count != [self totalNumberOfItems])];
|
||||
}
|
||||
|
||||
- (void)selectToggleButton:(BOOL)select {
|
||||
_toggleSelectionButton.selected = select;
|
||||
if (select) {
|
||||
_toggleSelectionButton.accessibilityLabel = NSLocalizedString(@"Select all", nil);
|
||||
} else {
|
||||
_toggleSelectionButton.accessibilityLabel = NSLocalizedString(@"Deselect all", nil);
|
||||
}
|
||||
}
|
||||
#pragma mark -
|
||||
|
||||
- (void)accessoryForCell:(UITableViewCell *)cell atPath:(NSIndexPath *)indexPath {
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
if ([self isEditing]) {
|
||||
UIButton *checkBoxButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
UIImage *image = nil;
|
||||
if ([_selectedItems containsObject:indexPath]) {
|
||||
image = [UIImage imageNamed:@"checkbox_checked.png"];
|
||||
checkBoxButton.accessibilityValue = NSLocalizedString(@"Selected", nil);
|
||||
} else {
|
||||
image = [UIImage imageNamed:@"checkbox_unchecked.png"];
|
||||
checkBoxButton.accessibilityValue = NSLocalizedString(@"Deselected", nil);
|
||||
}
|
||||
UIButton *checkBoxButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[checkBoxButton setImage:image forState:UIControlStateNormal];
|
||||
[checkBoxButton setFrame:CGRectMake(0, 0, 19, 19)];
|
||||
[checkBoxButton setBackgroundColor:[UIColor clearColor]];
|
||||
checkBoxButton.accessibilityLabel = NSLocalizedString(@"Checkbox", nil);
|
||||
checkBoxButton.userInteractionEnabled = NO;
|
||||
cell.accessoryView = checkBoxButton;
|
||||
} else {
|
||||
|
|
@ -83,7 +94,7 @@
|
|||
|
||||
_editButton.hidden = editing;
|
||||
_deleteButton.hidden = _cancelButton.hidden = _toggleSelectionButton.hidden = !editing;
|
||||
_toggleSelectionButton.selected = NO;
|
||||
[self selectToggleButton:YES];
|
||||
|
||||
// when switching editing mode, we must reload all cells to remove/add checkboxes
|
||||
[self loadData];
|
||||
|
|
@ -114,12 +125,12 @@
|
|||
- (void)onSelectionToggle:(id)sender {
|
||||
[_selectedItems removeAllObjects];
|
||||
|
||||
_toggleSelectionButton.selected = !_toggleSelectionButton.selected; // TODO: why do we need that?
|
||||
[self selectToggleButton:!_toggleSelectionButton.selected]; // TODO: why do we need that?
|
||||
for (int i = 0; i < [self numberOfSectionsInTableView:self.tableView]; i++) {
|
||||
for (int j = 0; j < [self tableView:self.tableView numberOfRowsInSection:i]; j++) {
|
||||
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i];
|
||||
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
|
||||
if (_toggleSelectionButton.selected) {
|
||||
if (!_toggleSelectionButton.selected) {
|
||||
[_selectedItems addObject:indexPath];
|
||||
}
|
||||
[self accessoryForCell:cell atPath:indexPath];
|
||||
|
|
|
|||
|
|
@ -45,6 +45,10 @@
|
|||
|
||||
LinphoneAddress *addr = linphone_core_interpret_url([LinphoneManager getLc], _addressLabel.text.UTF8String);
|
||||
_chatButton.enabled = _callButton.enabled = (addr != NULL);
|
||||
|
||||
_chatButton.accessibilityLabel =
|
||||
[NSString stringWithFormat:NSLocalizedString(@"Chat with %@", nil), _addressLabel.text];
|
||||
_callButton.accessibilityLabel = [NSString stringWithFormat:NSLocalizedString(@"Call %@", nil), _addressLabel.text];
|
||||
if (addr) {
|
||||
linphone_address_destroy(addr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
<rect key="frame" x="135" y="40" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call"/>
|
||||
<state key="normal" title="Button" image="call_start_body_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
|
|
@ -72,6 +73,7 @@
|
|||
<rect key="frame" x="195" y="40" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<animations/>
|
||||
<accessibility key="accessibilityConfiguration" label="Chat"/>
|
||||
<state key="normal" title="Button" image="chat_start_body_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
|
|
|
|||
|
|
@ -62,8 +62,10 @@
|
|||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
if (section == 0) {
|
||||
BOOL hasDefault = (linphone_core_get_default_proxy_config([LinphoneManager getLc]) != NULL);
|
||||
// default account is shown in the header already
|
||||
return ms_list_size(linphone_core_get_proxy_config_list([LinphoneManager getLc])) - 1;
|
||||
return MAX(0,
|
||||
ms_list_size(linphone_core_get_proxy_config_list([LinphoneManager getLc])) - (hasDefault ? 1 : 0));
|
||||
} else {
|
||||
return [_sideMenuEntries count];
|
||||
}
|
||||
|
|
@ -74,8 +76,12 @@
|
|||
if (indexPath.section == 0) {
|
||||
LinphoneProxyConfig *proxy =
|
||||
ms_list_nth_data(linphone_core_get_proxy_config_list([LinphoneManager getLc]), (int)indexPath.row);
|
||||
cell.textLabel.text = [NSString stringWithUTF8String:linphone_proxy_config_get_identity(proxy)];
|
||||
cell.imageView.image = [StatusBarView imageForState:linphone_proxy_config_get_state(proxy)];
|
||||
if (proxy) {
|
||||
cell.textLabel.text = [NSString stringWithUTF8String:linphone_proxy_config_get_identity(proxy)];
|
||||
cell.imageView.image = [StatusBarView imageForState:linphone_proxy_config_get_state(proxy)];
|
||||
} else {
|
||||
LOGE(@"Invalid index requested, no proxy for row %d", indexPath.row);
|
||||
}
|
||||
cell.transform = CGAffineTransformMakeScale(-1.0, 1.0);
|
||||
cell.textLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0);
|
||||
cell.imageView.transform = CGAffineTransformMakeScale(-1.0, 1.0);
|
||||
|
|
@ -90,12 +96,16 @@
|
|||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
||||
|
||||
SideMenuEntry *entry = [_sideMenuEntries objectAtIndex:indexPath.row];
|
||||
LOGI(@"Entry %@ has been tapped", entry->title);
|
||||
if (entry->onTapBlock == nil) {
|
||||
LOGF(@"Entry %@ has no onTapBlock!", entry->title);
|
||||
if (indexPath.section == 0) {
|
||||
[PhoneMainView.instance changeCurrentView:SettingsView.compositeViewDescription];
|
||||
} else {
|
||||
SideMenuEntry *entry = [_sideMenuEntries objectAtIndex:indexPath.row];
|
||||
LOGI(@"Entry %@ has been tapped", entry->title);
|
||||
if (entry->onTapBlock == nil) {
|
||||
LOGF(@"Entry %@ has no onTapBlock!", entry->title);
|
||||
}
|
||||
entry->onTapBlock();
|
||||
}
|
||||
entry->onTapBlock();
|
||||
[PhoneMainView.instance.mainViewController hideSideMenu:YES];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
- (void)updateHeader {
|
||||
LinphoneProxyConfig *default_proxy = linphone_core_get_default_proxy_config([LinphoneManager getLc]);
|
||||
|
||||
if (default_proxy != NULL) {
|
||||
const LinphoneAddress *addr = linphone_proxy_config_get_identity_address(default_proxy);
|
||||
[ContactDisplay setDisplayNameLabel:_nameLabel forAddress:addr];
|
||||
|
|
|
|||
|
|
@ -36,7 +36,14 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
+ (void)buttonMultiViewApplyAttributes:(NSDictionary*)attributes button:(UIButton*)button;
|
||||
+ (NSString *)deviceName;
|
||||
|
||||
+ (NSString *)timeToString:(time_t)time withFormat:(NSString *)format;
|
||||
typedef enum {
|
||||
LinphoneDateHistoryList,
|
||||
LinphoneDateHistoryDetails,
|
||||
LinphoneDateChatList,
|
||||
LinphoneDateChatBubble,
|
||||
} LinphoneDateFormat;
|
||||
|
||||
+ (NSString *)timeToString:(time_t)time withFormat:(LinphoneDateFormat)format;
|
||||
|
||||
+ (BOOL)hasSelfAvatar;
|
||||
+ (UIImage *)selfAvatar;
|
||||
|
|
|
|||
|
|
@ -124,11 +124,48 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args) {
|
|||
return [result stringByAppendingString:[NSString stringWithFormat:@"%02i:%02i", (duration / 60), (duration % 60)]];
|
||||
}
|
||||
|
||||
+ (NSString *)timeToString:(time_t)time withFormat:(NSString *)format {
|
||||
+ (NSString *)timeToString:(time_t)time withFormat:(LinphoneDateFormat)format {
|
||||
NSString *formatstr;
|
||||
NSDate *todayDate = [[NSDate alloc] init];
|
||||
NSDate *messageDate = (time == 0) ? todayDate : [NSDate dateWithTimeIntervalSince1970:time];
|
||||
NSDateComponents *todayComponents =
|
||||
[[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear
|
||||
fromDate:todayDate];
|
||||
NSDateComponents *dateComponents =
|
||||
[[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear
|
||||
fromDate:messageDate];
|
||||
BOOL sameYear = (todayComponents.year == dateComponents.year);
|
||||
BOOL sameMonth = (sameYear && (todayComponents.month == dateComponents.month));
|
||||
BOOL sameDay = (sameMonth && (todayComponents.day == dateComponents.day));
|
||||
|
||||
switch (format) {
|
||||
case LinphoneDateHistoryList:
|
||||
if (sameYear) {
|
||||
formatstr = NSLocalizedString(@"EEE dd MMMM", nil);
|
||||
} else {
|
||||
formatstr = NSLocalizedString(@"EEE dd MMMM yyyy", nil);
|
||||
}
|
||||
break;
|
||||
case LinphoneDateHistoryDetails:
|
||||
formatstr = NSLocalizedString(@"MM/dd '-' HH'h'mm", nil);
|
||||
break;
|
||||
case LinphoneDateChatList:
|
||||
if (sameDay) {
|
||||
formatstr = NSLocalizedString(@"HH:mm", nil);
|
||||
} else {
|
||||
formatstr = NSLocalizedString(@"MM/dd", nil);
|
||||
}
|
||||
break;
|
||||
case LinphoneDateChatBubble:
|
||||
if (sameDay) {
|
||||
formatstr = NSLocalizedString(@"HH:mm", nil);
|
||||
} else {
|
||||
formatstr = NSLocalizedString(@"MM/dd - HH:mm", nil);
|
||||
}
|
||||
break;
|
||||
}
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setDateFormat:format];
|
||||
[dateFormatter setDateFormat:formatstr];
|
||||
return [dateFormatter stringFromDate:messageDate];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 5 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 8 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 569 B After Width: | Height: | Size: 569 B |
|
Before Width: | Height: | Size: 949 B After Width: | Height: | Size: 949 B |
|
Before Width: | Height: | Size: 707 B After Width: | Height: | Size: 707 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 840 B After Width: | Height: | Size: 840 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1,009 B After Width: | Height: | Size: 1,009 B |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 832 B |
|
Before Width: | Height: | Size: 851 B After Width: | Height: | Size: 851 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 992 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 312 B |
|
Before Width: | Height: | Size: 618 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B |
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 944 B After Width: | Height: | Size: 944 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 633 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 820 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 838 B After Width: | Height: | Size: 838 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 737 B After Width: | Height: | Size: 737 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 728 B After Width: | Height: | Size: 728 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 946 B |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |