mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
scroll to last message, imdm
This commit is contained in:
parent
7e0634cfed
commit
7cc12f25ee
4 changed files with 37 additions and 4 deletions
|
|
@ -1236,6 +1236,7 @@ static void linphone_iphone_popup_password_request(LinphoneCore *lc, LinphoneAut
|
|||
while (history) {
|
||||
NSMutableDictionary *msgData = [NSMutableDictionary dictionary];
|
||||
LinphoneChatMessage *msg = history->data;
|
||||
const char *state = linphone_chat_message_state_to_string(linphone_chat_message_get_state(msg));
|
||||
bool_t isOutgoing = linphone_chat_message_is_outgoing(msg);
|
||||
bool_t isFileTransfer = linphone_chat_message_is_file_transfer(msg);
|
||||
const LinphoneAddress *fromAddress = linphone_chat_message_get_from_address(msg);
|
||||
|
|
@ -1246,6 +1247,7 @@ static void linphone_iphone_popup_password_request(LinphoneCore *lc, LinphoneAut
|
|||
withMaxWidth:200
|
||||
andMaxHeight:200];
|
||||
NSData *fromImageData = UIImageJPEGRepresentation(fromImage, 1);
|
||||
[msgData setObject:[NSString stringWithUTF8String:state] forKey:@"state"];
|
||||
[msgData setObject:displayNameDate forKey:@"displayNameDate"];
|
||||
[msgData setObject:[NSNumber numberWithBool:isFileTransfer] forKey:@"isFileTransfer"];
|
||||
[msgData setObject:fromImageData forKey:@"fromImageData"];
|
||||
|
|
|
|||
|
|
@ -38,17 +38,26 @@
|
|||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" text="Lorem ipsum " textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="3tK-2u-Ixe">
|
||||
<rect key="frame" x="0.0" y="17" width="305" height="6.5"/>
|
||||
<rect key="frame" x="0.0" y="17" width="305" height="0.0"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
</textView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gv1-l8-gh3">
|
||||
<rect key="frame" x="0.0" y="17" width="305" height="6.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="gv1-l8-gh3" secondAttribute="trailing" id="3G2-M8-TBH"/>
|
||||
<constraint firstItem="WZa-ow-o0L" firstAttribute="leading" secondItem="OXj-8D-5BS" secondAttribute="leading" id="7wZ-7m-XoH"/>
|
||||
<constraint firstItem="3tK-2u-Ixe" firstAttribute="leading" secondItem="OXj-8D-5BS" secondAttribute="leading" id="A4k-hw-bfV"/>
|
||||
<constraint firstItem="gv1-l8-gh3" firstAttribute="leading" secondItem="OXj-8D-5BS" secondAttribute="leading" id="Gdm-r8-XCk"/>
|
||||
<constraint firstItem="3tK-2u-Ixe" firstAttribute="top" secondItem="WZa-ow-o0L" secondAttribute="bottom" id="XWZ-K9-hVC"/>
|
||||
<constraint firstItem="WZa-ow-o0L" firstAttribute="top" secondItem="OXj-8D-5BS" secondAttribute="top" id="dSr-F5-pKr"/>
|
||||
<constraint firstAttribute="bottom" secondItem="gv1-l8-gh3" secondAttribute="bottom" id="sdZ-KZ-qyP"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="SKQ-W1-Lmw">
|
||||
|
|
@ -70,6 +79,7 @@
|
|||
</tableViewCellContentView>
|
||||
<connections>
|
||||
<outlet property="contactImage" destination="SKQ-W1-Lmw" id="nsD-4b-g0W"/>
|
||||
<outlet property="imdm" destination="gv1-l8-gh3" id="ceS-Ho-kpi"/>
|
||||
<outlet property="msgText" destination="3tK-2u-Ixe" id="aVq-ra-Sd7"/>
|
||||
<outlet property="nameDate" destination="WZa-ow-o0L" id="WdA-QI-xv1"/>
|
||||
</connections>
|
||||
|
|
|
|||
|
|
@ -11,5 +11,6 @@
|
|||
@property (weak, nonatomic) IBOutlet UIImageView *contactImage;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *nameDate;
|
||||
@property (weak, nonatomic) IBOutlet UITextView *msgText;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *imdm;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -16,17 +16,28 @@
|
|||
|
||||
@implementation NotificationViewController {
|
||||
@private
|
||||
NSArray *msgs;
|
||||
NSMutableArray *msgs;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.tableView.scrollEnabled = TRUE;
|
||||
// Do any required interface initialization here.
|
||||
}
|
||||
|
||||
- (void)didReceiveNotification:(UNNotification *)notification {
|
||||
msgs = [[[[notification request] content] userInfo] objectForKey:@"msgs"];
|
||||
if (msgs)
|
||||
[msgs addObject:[((NSArray *)[[[[notification request] content] userInfo] objectForKey:@"msgs"]) lastObject]];
|
||||
else
|
||||
msgs = [NSMutableArray arrayWithArray:[[[[notification request] content] userInfo] objectForKey:@"msgs"]];
|
||||
[self.tableView reloadData];
|
||||
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForItem:msgs.count - 1
|
||||
inSection:0]
|
||||
atScrollPosition:UITableViewScrollPositionBottom
|
||||
animated:YES];
|
||||
NSLog(@"Content length : %f", self.tableView.contentSize.height);
|
||||
NSLog(@"Number of rows : %d", (unsigned int)[self tableView:self.tableView numberOfRowsInSection:0]);
|
||||
[self.view.superview bringSubviewToFront:self.tableView];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
|
@ -43,8 +54,9 @@
|
|||
BOOL isOutgoing = ((NSNumber *)[msgs[indexPath.row] objectForKey:@"isOutgoing"]).boolValue;
|
||||
NSString *display = ((NSString *)[msgs[indexPath.row] objectForKey:@"displayNameDate"]);
|
||||
NSString *msgText = ((NSString *)[msgs[indexPath.row] objectForKey:@"msg"]);
|
||||
NSString *imdm = ((NSString *)[msgs[indexPath.row] objectForKey:@"state"]);
|
||||
NSData *imageData = [msgs[indexPath.row] objectForKey:@"fromImageData"];
|
||||
printf("Message %s de %s : %s\n", isOutgoing ? "sortant" : "entrant",
|
||||
printf("%s : %s : %s\n", isOutgoing ? "sortant" : "entrant",
|
||||
display.UTF8String,
|
||||
msgText.UTF8String);
|
||||
printf("Taille de l'image de profil : %d\n", (unsigned int)imageData.length);
|
||||
|
|
@ -52,6 +64,14 @@
|
|||
cell.contactImage.image = [UIImage imageWithData:imageData];
|
||||
cell.nameDate.text = display;
|
||||
cell.msgText.text = msgText;
|
||||
if (!isOutgoing)
|
||||
cell.imdm.hidden = YES;
|
||||
if ([imdm isEqualToString:@"LinphoneChatMessageStateDelivered"])
|
||||
cell.imdm.text = NSLocalizedString(@"Delivered", nil);
|
||||
else if ([imdm isEqualToString:@"LinphoneChatMessageStateDisplayed"])
|
||||
cell.imdm.text = NSLocalizedString(@"Read", nil);
|
||||
else
|
||||
cell.imdm.text = imdm;
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue