scroll to last message, imdm

This commit is contained in:
David Idmansour 2018-06-27 10:28:21 +02:00
parent 7e0634cfed
commit 7cc12f25ee
4 changed files with 37 additions and 4 deletions

View file

@ -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"];

View file

@ -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>

View file

@ -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

View file

@ -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;
}