Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6.3.0 #1047

Merged
merged 95 commits into from
Apr 29, 2024
Merged

6.3.0 #1047

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
414bfdc
--- 894 ---
FriedrichAltheide Mar 8, 2024
bc71bfd
Fix muc status code 210 handling
tmolitor-stud-tu Mar 16, 2024
ab97d6a
Remove '0333 received markers and implement MDS
tmolitor-stud-tu Mar 17, 2024
68efd17
better default chat background for light and dark mode
zainashraf1562 Mar 16, 2024
c2c9fa0
Unify constant names and strings
tmolitor-stud-tu Mar 21, 2024
4d530cd
Cleanup helper tools and logfile manager
tmolitor-stud-tu Mar 21, 2024
8c3fa39
Bump SPM packages
tmolitor-stud-tu Mar 21, 2024
b0942ea
Bump pods
tmolitor-stud-tu Mar 21, 2024
6604ab1
Implement bridge for swift to access objc defines
tmolitor-stud-tu Mar 21, 2024
cb55fd8
Implement defaultsDB swift property wrapper
tmolitor-stud-tu Mar 22, 2024
b9cb7ee
Better logging in MLStream
tmolitor-stud-tu Mar 14, 2024
cff1cf8
Improve logging
tmolitor-stud-tu Mar 22, 2024
0c16612
Don't install KSCRash when running under a debugger
tmolitor-stud-tu Mar 22, 2024
50bdbeb
Assert on jids without host part
tmolitor-stud-tu Mar 21, 2024
d0c2221
Update whole XMPPIdentity on bind
tmolitor-stud-tu Mar 22, 2024
668bff0
Report cert errors in nw_connection_state_waiting
tmolitor-stud-tu Mar 22, 2024
f53ec86
Fix weird setups and disallow them in the future
tmolitor-stud-tu Mar 22, 2024
e768ca8
Don't trigger STARTTLS debug notifications on cert errors
tmolitor-stud-tu Mar 22, 2024
9cf7c49
SASL2: Update ressource if set in authorization-identifier
FriedrichAltheide Mar 22, 2024
f0a4bd5
Don't delay unread badge update by async dispatch
tmolitor-stud-tu Mar 24, 2024
bcd67e8
Don't allow the bare jid to change on bind
tmolitor-stud-tu Mar 24, 2024
e4a24e3
Add better cert error message for -9808
tmolitor-stud-tu Mar 25, 2024
4511e44
Fix copy/paste bug in ejabberd pubsub workaround
tmolitor-stud-tu Mar 25, 2024
97aca55
Highlight selected chat, fixes #756
zainashraf1562 Mar 12, 2024
01dee8c
Fix format argument order in logging
tmolitor-stud-tu Mar 27, 2024
0ae2952
Fix coding style
tmolitor-stud-tu Mar 27, 2024
a5d6ea6
Allow SASL PLAIN for new accounts, but no downgrade
tmolitor-stud-tu Mar 27, 2024
30c334a
fixes #993
thevaidik Mar 27, 2024
7e35d43
Autofocus on textbox in chat window, fixes #704
guodong323 Mar 27, 2024
f41c7c9
Fix privacy settings display
tmolitor-stud-tu Mar 27, 2024
22ddfc6
Try to fix mam/smacks warning race conditions
tmolitor-stud-tu Mar 28, 2024
95306da
Fix typo in comments
tmolitor-stud-tu Mar 28, 2024
95a90b5
Fix upgrades for sasl2 servers only supporting plain
tmolitor-stud-tu Mar 28, 2024
4555042
Allow IQs coming from own server
tmolitor-stud-tu Mar 28, 2024
d809af3
Streamline catchup process and mds handling
tmolitor-stud-tu Mar 28, 2024
bb3b1d5
Fix bugs when resetting detected features on bind
tmolitor-stud-tu Mar 28, 2024
3d5d772
Show active chats alert on missing push like with mam and smacks
tmolitor-stud-tu Mar 28, 2024
1145a73
Clean up new privacy settings
tmolitor-stud-tu Mar 28, 2024
235cdcf
Rework defaultsDB wrapper to publish changes
tmolitor-stud-tu Mar 28, 2024
ac679d9
Rework privacy settings to use features of new defaultsDB wrapper
tmolitor-stud-tu Mar 28, 2024
780f650
Rework privacy UI categories and ordering
tmolitor-stud-tu Mar 28, 2024
4a59cf9
Fix crashes and wrong display of privacy settings
tmolitor-stud-tu Mar 28, 2024
51b894a
Fix privacy settings title on iPad
tmolitor-stud-tu Mar 28, 2024
beab989
bump pods
FriedrichAltheide Mar 29, 2024
2c7f047
bump crates
FriedrichAltheide Mar 29, 2024
51ef463
Fix crashes on kMonalContactRefresh by using proper @synchronized
tmolitor-stud-tu Mar 30, 2024
fc66c51
Harden invite implementation
tmolitor-stud-tu Apr 2, 2024
5a7b269
Harden jid splitter
tmolitor-stud-tu Apr 2, 2024
b6f05eb
Implement new version of XEP-0424 (retraction)
tmolitor-stud-tu Apr 2, 2024
699cde3
Make MLMessage be serializable
tmolitor-stud-tu Apr 2, 2024
2eb6593
Add MLMessage property to retrieve corresponding MLContact
tmolitor-stud-tu Apr 2, 2024
7ee93f8
Implement XEP-0425 Moderated Message Retraction
tmolitor-stud-tu Apr 2, 2024
ba78bf1
Implement some improvements suggested by ROS review
tmolitor-stud-tu Apr 16, 2024
41c9ddc
Implement constant time comparison in SCRAM handling
tmolitor-stud-tu Apr 16, 2024
d768995
Don't block callkit in china anymore
tmolitor-stud-tu Apr 20, 2024
82a56a6
Fix "Me" prefix to include colon
tmolitor-stud-tu Apr 21, 2024
98a5aac
Highlight chat user visibility, fixes #1026 (#1031)
zainashraf1562 Apr 21, 2024
d7bd73a
Rewrite debug menu using SwiftUI, fixes #990 (#1027)
zainashraf1562 Apr 21, 2024
a2c7a56
Fix debug view
tmolitor-stud-tu Apr 21, 2024
081b999
Fix "IQ firewall"
tmolitor-stud-tu Apr 22, 2024
e4ee516
Add privacy setting to accept incoming calls from strangers
tmolitor-stud-tu Apr 22, 2024
55362b0
Disable speaker button on iOS 14+15
tmolitor-stud-tu Apr 22, 2024
74fca60
Add invalidation reason to iq invalidations
tmolitor-stud-tu Apr 22, 2024
e72a632
Don't republish own omemo devicelist on iq invalidation
tmolitor-stud-tu Apr 22, 2024
37f6601
Fix account disable/delete race condition
tmolitor-stud-tu Apr 22, 2024
8d40cf1
autoDownloadSettings rewrite
thevaidik Apr 23, 2024
604102d
adding icons in privacy settings
thevaidik Apr 24, 2024
27480da
icon update
thevaidik Apr 25, 2024
0db4da7
Automatically create github releases on stable build
tmolitor-stud-tu Apr 25, 2024
d390b43
6.3.0b1 (#1025)
tmolitor-stud-tu Apr 25, 2024
98cf8a3
Bump version to 6.3.0
tmolitor-stud-tu Apr 25, 2024
2a8f696
6.3.0b3 (#1040)
tmolitor-stud-tu Apr 25, 2024
e0667f3
--- 897 ---
tmolitor-stud-tu Apr 26, 2024
5fc078b
Fix padding and other small quirks in debug view
tmolitor-stud-tu Apr 26, 2024
7965da7
Make sure to busy wait for queue freezes to complete
tmolitor-stud-tu Apr 26, 2024
132232f
Make sure process freezes can happen for shorter startup times
tmolitor-stud-tu Apr 26, 2024
c1381e6
Handle malloc failures in rpl_vasprintf() as invoked by MLXMLNode
tmolitor-stud-tu Apr 26, 2024
ee8aa01
Add more comments to appex code
tmolitor-stud-tu Apr 26, 2024
2bc7ef8
Update bugreport template to make monal version mandatory
tmolitor-stud-tu Apr 26, 2024
81e66b5
Fix extdisco implementation to cope with ips instead of hostnames, too
tmolitor-stud-tu Apr 26, 2024
8f05a90
fix spelling
nautilusx Apr 26, 2024
22b53f0
Fix spelling
nautilusx Apr 26, 2024
4984e9e
Some small ui layout fixes
tmolitor-stud-tu Apr 26, 2024
8798d71
Simplify optional to bool mapping in Binding extension
tmolitor-stud-tu Apr 27, 2024
0eccac8
Fix various bugs in privacy settings
tmolitor-stud-tu Apr 27, 2024
1e23950
Fix rare mutation on iteration in appex
tmolitor-stud-tu Apr 28, 2024
96f8630
Fix crash of integrated image viewer on corrupt image files
tmolitor-stud-tu Apr 28, 2024
322f60f
Fix typo in assertion message
tmolitor-stud-tu Apr 29, 2024
bc52e40
Add privacy manifest
tmolitor-stud-tu Apr 29, 2024
282a2cc
Rework encryption not supported alert, fixes #1017
tmolitor-stud-tu Apr 29, 2024
60fb58d
custom chat backgrounds not showing even though its set, fixes #1043
zainashraf1562 Apr 28, 2024
7a2c3a1
6.3.0b4 (#1046)
tmolitor-stud-tu Apr 29, 2024
7aa7826
--- 898 ---
tmolitor-stud-tu Apr 29, 2024
07f7ff4
Fix privacy lists plist
tmolitor-stud-tu Apr 29, 2024
241905c
6.3.0b5 (#1049)
tmolitor-stud-tu Apr 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 14 additions & 22 deletions .github/ISSUE_TEMPLATE/BugReport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,27 @@ body:
- type: input
id: ios_version
attributes:
label: iOS system version
label: iOS system version (if applicable)
description: What iOS version are you using? Open Settings, scroll down until "General", select "Info" and report "Software version".
placeholder: "14.7"
validations:
required: false
- type: input
id: ios_monal__version
attributes:
label: iOS Monal version
description: What Monal version are you using? Open Monal, select top left icon, scoll down until "Version".
placeholder: "5.0.1"
validations:
required: false
- type: input
id: mac_version
attributes:
label: macOS system version
label: macOS system version (if applicable)
description: What macOS version are you using?
placeholder: "14.7"
validations:
required: false
- type: input
id: mac_monal__version
id: monal_version
attributes:
label: macOS Monal version
description: What Monal version are you using?
placeholder: "5.0.1"
label: Monal version
description: What Monal version are you using? Open Monal, select top left icon, scoll down until "Version".
placeholder: "1.0"
validations:
required: false
required: true
- type: input
id: xmpp_server
attributes:
Expand Down Expand Up @@ -131,13 +123,13 @@ body:
options:
- label: I have checked if my issue can be solved with [Considerations for XMPP users](https://github.com/monal-im/Monal/wiki/Considerations-for-XMPP-users) and [Considerations for XMPP server admins](https://github.com/monal-im/Monal/wiki/Considerations-for-XMPP-server-admins)
required: true
- type: checkboxes
id: cross-check-checkbox
attributes:
label: Related Issues
options:
- label: I have cross-checked this overview https://github.com/monal-im/Monal/issues/322 as well as filtered for related labels https://github.com/monal-im/Monal/labels
required: true
# - type: checkboxes
# id: cross-check-checkbox
# attributes:
# label: Related Issues
# options:
# - label: I have cross-checked this overview https://github.com/monal-im/Monal/issues/322 as well as filtered for related labels https://github.com/monal-im/Monal/labels
# required: true
- type: checkboxes
id: xep-checkbox
attributes:
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/stable.build-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,27 @@ jobs:
run: xcrun altool --upload-app --file ./Monal/build/app/Monal.pkg --type macos --asc-provider S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)" --primary-bundle-id maccatalyst.G7YU7X7KRJ.SworIM
# - name: Update xmpp.org client list with new timestamp
# run: ./scripts/push_xmpp.org.sh
- name: Extract version number and changelog from newest merge commit
id: releasenotes
run: |
buildNumber=$(git tag --sort="v:refname" |grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g')
echo "tag=Build_iOS_$buildNumber" >> "$GITHUB_OUTPUT"
echo "name=$(git log -n 1 --merges --pretty=format:%s)" >> "$GITHUB_OUTPUT"
echo "notes=$(git log -n 1 --merges --pretty=format:%b)" >> "$GITHUB_OUTPUT"
- name: Release
uses: softprops/action-gh-release@v2
with:
name: Release ${{ steps.releasenotes.outputs.name }}
tag_name: ${{ steps.releasenotes.outputs.tag }}
target_commitish: stable
generate_release_notes: false
body: ${{ steps.releasenotes.outputs.notes }}
files: |
./Monal/build/ipa/Monal.ipa
./Monal/build/app/Monal.zip
fail_on_unmatched_files: true
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
- uses: actions/upload-artifact@v3
with:
name: monal-catalyst-pkg
Expand Down
28 changes: 9 additions & 19 deletions Monal/Classes/AVCallUI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -525,33 +525,23 @@ struct AVCallUI: View {
}
.buttonStyle(BorderlessButtonStyle())

if MLCallState(rawValue:call.state) == .connected || MLCallState(rawValue:call.state) == .reconnecting {
Spacer().frame(width: 32)
Button(action: {
call.speaker = !call.speaker
}) {
if #available(iOS 15, *) {
//the button somehow does not work in iOS 15 and we don't know how to fix that
//--> don't show the button on iOS 14 and 15
if #available(iOS 16, *) {
if MLCallState(rawValue:call.state) == .connected || MLCallState(rawValue:call.state) == .reconnecting {
Spacer().frame(width: 32)
Button(action: {
call.speaker = !call.speaker
}) {
Image(systemName: "speaker.wave.2.circle.fill")
.resizable()
.frame(width: 64.0, height: 64.0)
.symbolRenderingMode(.palette)
.foregroundStyle(call.speaker ? .black : .white, call.speaker ? .white : .black)
.shadow(radius: 7)
} else {
ZStack {
Image(systemName: "circle.fill")
.resizable()
.frame(width: 64.0, height: 64.0)
.accentColor(call.speaker ? .black : .white)
Image(systemName: "speaker.wave.2.circle.fill")
.resizable()
.frame(width: 64.0, height: 64.0)
.accentColor(call.speaker ? .white : .black)
.shadow(radius: 7)
}
}
.buttonStyle(BorderlessButtonStyle())
}
.buttonStyle(BorderlessButtonStyle())
}

Spacer()
Expand Down
119 changes: 80 additions & 39 deletions Monal/Classes/ActiveChatsViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,13 @@ @implementation ActiveChatsViewController

static NSMutableSet* _mamWarningDisplayed;
static NSMutableSet* _smacksWarningDisplayed;
static NSMutableSet* _pushWarningDisplayed;

+(void) initialize
{
_mamWarningDisplayed = [NSMutableSet new];
_smacksWarningDisplayed = [NSMutableSet new];
_pushWarningDisplayed = [NSMutableSet new];
}

#pragma mark view lifecycle
Expand Down Expand Up @@ -113,6 +115,7 @@ -(void) viewDidLoad
[nc addObserver:self selector:@selector(handleNewMessage:) name:kMonalDeletedMessageNotice object:nil];
[nc addObserver:self selector:@selector(messageSent:) name:kMLMessageSentToContact object:nil];
[nc addObserver:self selector:@selector(handleDeviceRotation) name:UIDeviceOrientationDidChangeNotification object:nil];
[nc addObserver:self selector:@selector(showWarningsIfNeeded) name:kMonalFinishedCatchup object:nil];

[_chatListTable registerNib:[UINib nibWithNibName:@"MLContactCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"ContactCell"];

Expand Down Expand Up @@ -392,40 +395,6 @@ -(void) viewDidAppear:(BOOL) animated
{
DDLogDebug(@"active chats view did appear");
[super viewDidAppear:animated];

for(NSDictionary* accountDict in [[DataLayer sharedInstance] enabledAccountList])
{
NSNumber* accountNo = accountDict[kAccountID];
xmpp* account = [[MLXMPPManager sharedInstance] getConnectedAccountForID:accountNo];
if(!account)
@throw [NSException exceptionWithName:@"RuntimeException" reason:@"Connected xmpp* object for accountNo is nil!" userInfo:accountDict];
if(![_mamWarningDisplayed containsObject:accountNo] && account.accountState >= kStateBound && account.connectionProperties.accountDiscoDone)
{
if(!account.connectionProperties.supportsMam2)
{
UIAlertController* messageAlert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Account %@", @""), account.connectionProperties.identity.jid] message:NSLocalizedString(@"Your server does not support MAM (XEP-0313). That means you could frequently miss incoming messages!! You should switch your server or talk to the server admin to enable this!", @"") preferredStyle:UIAlertControllerStyleAlert];
[messageAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Close", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction* action __unused) {
[_mamWarningDisplayed addObject:accountNo];
}]];
[self presentViewController:messageAlert animated:YES completion:nil];
}
else
[_mamWarningDisplayed addObject:accountNo];
}
if(![_smacksWarningDisplayed containsObject:accountNo] && account.accountState >= kStateBound)
{
if(!account.connectionProperties.supportsSM3)
{
UIAlertController* messageAlert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Account %@", @""), account.connectionProperties.identity.jid] message:NSLocalizedString(@"Your server does not support Stream Management (XEP-0198). That means your outgoing messages can get lost frequently!! You should switch your server or talk to the server admin to enable this!", @"") preferredStyle:UIAlertControllerStyleAlert];
[messageAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Close", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction* action __unused) {
[_smacksWarningDisplayed addObject:accountNo];
}]];
[self presentViewController:messageAlert animated:YES completion:nil];
}
else
[_smacksWarningDisplayed addObject:accountNo];
}
}
}

-(void) didReceiveMemoryWarning
Expand Down Expand Up @@ -466,9 +435,66 @@ -(void) segueToIntroScreensIfNeeded
}
if(![[HelperTools defaultsDB] boolForKey:@"HasSeenPrivacySettings"])
{
[self performSegueWithIdentifier:@"showPrivacySettings" sender:self];
[self showPrivacySettings];
return;
}

[self showWarningsIfNeeded];
}

-(void) showWarningsIfNeeded
{
dispatch_async(dispatch_get_main_queue(), ^{
for(NSDictionary* accountDict in [[DataLayer sharedInstance] enabledAccountList])
{
NSNumber* accountNo = accountDict[kAccountID];
xmpp* account = [[MLXMPPManager sharedInstance] getConnectedAccountForID:accountNo];
if(!account)
@throw [NSException exceptionWithName:@"RuntimeException" reason:@"Connected xmpp* object for accountNo is nil!" userInfo:accountDict];

if(![_mamWarningDisplayed containsObject:accountNo] && account.accountState >= kStateBound && account.connectionProperties.accountDiscoDone)
{
if(!account.connectionProperties.supportsMam2)
{
UIAlertController* messageAlert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Account %@", @""), account.connectionProperties.identity.jid] message:NSLocalizedString(@"Your server does not support MAM (XEP-0313). That means you could frequently miss incoming messages!! You should switch your server or talk to the server admin to enable this!", @"") preferredStyle:UIAlertControllerStyleAlert];
[messageAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Close", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction* action __unused) {
[_mamWarningDisplayed addObject:accountNo];
}]];
[self presentViewController:messageAlert animated:YES completion:nil];
}
else
[_mamWarningDisplayed addObject:accountNo];
}

if(![_smacksWarningDisplayed containsObject:accountNo] && account.accountState >= kStateBound)
{
if(!account.connectionProperties.supportsSM3)
{
UIAlertController* messageAlert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Account %@", @""), account.connectionProperties.identity.jid] message:NSLocalizedString(@"Your server does not support Stream Management (XEP-0198). That means your outgoing messages can get lost frequently!! You should switch your server or talk to the server admin to enable this!", @"") preferredStyle:UIAlertControllerStyleAlert];
[messageAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Close", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction* action __unused) {
[_smacksWarningDisplayed addObject:accountNo];
}]];
[self presentViewController:messageAlert animated:YES completion:nil];
}
else
[_smacksWarningDisplayed addObject:accountNo];
}

if(![_pushWarningDisplayed containsObject:accountNo] && account.accountState >= kStateBound && account.connectionProperties.accountDiscoDone)
{
if(!account.connectionProperties.supportsMam2)
{
UIAlertController* messageAlert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Account %@", @""), account.connectionProperties.identity.jid] message:NSLocalizedString(@"Your server does not support PUSH (XEP-0357). That means you have to manually open the app to retrieve new incoming messages!! You should switch your server or talk to the server admin to enable this!", @"") preferredStyle:UIAlertControllerStyleAlert];
[messageAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Close", @"") style:UIAlertActionStyleCancel handler:^(UIAlertAction* action __unused) {
[_pushWarningDisplayed addObject:accountNo];
}]];
[self presentViewController:messageAlert animated:YES completion:nil];
}
else
[_pushWarningDisplayed addObject:accountNo];
}
}
});
}

-(void) openConversationPlaceholder:(MLContact*) contact
Expand All @@ -484,7 +510,8 @@ -(void) openConversationPlaceholder:(MLContact*) contact

-(void) showPrivacySettings
{
[self performSegueWithIdentifier:@"showPrivacySettings" sender:self];
UIViewController* view = [[SwiftuiInterface new] makeViewWithName:@"ActiveChatsPrivacySettings"];
[self presentViewController:view animated:YES completion:^{}];
}

-(void) showSettings
Expand Down Expand Up @@ -713,16 +740,30 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N

MLContact* chatContact = nil;
// Select correct contact array
if(indexPath.section == pinnedChats) {
if(indexPath.section == pinnedChats)
chatContact = [self.pinnedContacts objectAtIndex:indexPath.row];
} else {
else
chatContact = [self.unpinnedContacts objectAtIndex:indexPath.row];
}

// Display msg draft or last msg
MLMessage* messageRow = [[DataLayer sharedInstance] lastMessageForContact:chatContact.contactJid forAccount:chatContact.accountId];

[cell initCell:chatContact withLastMessage:messageRow];

cell.selectionStyle = UITableViewCellSelectionStyleNone;

// Highlight the selected chat
if([MLNotificationManager sharedInstance].currentContact != nil && [chatContact isEqual:[MLNotificationManager sharedInstance].currentContact])
{
cell.backgroundColor = [UIColor lightGrayColor];
cell.statusText.textColor = [UIColor whiteColor];
}
else
{
cell.backgroundColor = [UIColor clearColor];
cell.statusText.textColor = [UIColor lightGrayColor];
}

return cell;
}

Expand Down
7 changes: 6 additions & 1 deletion Monal/Classes/DataLayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ extern NSString* const kDomain;
extern NSString* const kEnabled;
extern NSString* const kNeedsPasswordMigration;
extern NSString* const kSupportsSasl2;
extern NSString* const kPlainActivated;

extern NSString* const kServer;
extern NSString* const kPort;
Expand Down Expand Up @@ -163,6 +164,8 @@ extern NSString* const kMessageTypeFiletransfer;

-(BOOL) pinSasl2ForAccount:(NSNumber*) accountNo;
-(BOOL) isSasl2PinnedForAccount:(NSNumber*) accountNo;
-(BOOL) isPlainActivatedForAccount:(NSNumber*) accountNo;
-(BOOL) deactivatePlainForAccount:(NSNumber*) accountNo;

-(NSMutableDictionary* _Nullable) readStateForAccount:(NSNumber*) accountNo;
-(void) persistState:(NSDictionary*) state forAccount:(NSNumber*) accountNo;
Expand Down Expand Up @@ -211,7 +214,9 @@ extern NSString* const kMessageTypeFiletransfer;
-(void) deleteMessageHistory:(NSNumber *) messageNo;
-(void) deleteMessageHistoryLocally:(NSNumber*) messageNo;
-(void) updateMessageHistory:(NSNumber*) messageNo withText:(NSString*) newText;
-(NSNumber* _Nullable) getHistoryIDForMessageId:(NSString*) messageid from:(NSString*) from actualFrom:(NSString* _Nullable) actualFrom participantJid:(NSString* _Nullable) participantJid andAccount:(NSNumber*) accountNo;
-(NSNumber* _Nullable) getLMCHistoryIDForMessageId:(NSString*) messageid from:(NSString*) from actualFrom:(NSString* _Nullable) actualFrom participantJid:(NSString* _Nullable) participantJid andAccount:(NSNumber*) accountNo;
-(NSNumber* _Nullable) getRetractionHistoryIDForMessageId:(NSString*) messageid from:(NSString*) from actualFrom:(NSString* _Nullable) actualFrom participantJid:(NSString* _Nullable) participantJid andAccount:(NSNumber*) accountNo;
-(NSNumber* _Nullable) getRetractionHistoryIDForModeratedStanzaId:(NSString*) stanzaId from:(NSString*) from andAccount:(NSNumber*) accountNo;

-(NSDate* _Nullable) returnTimestampForQuote:(NSNumber*) historyID;
-(BOOL) checkLMCEligible:(NSNumber*) historyID encrypted:(BOOL) encrypted historyBaseID:(NSNumber* _Nullable) historyBaseID;
Expand Down
Loading
Loading