@@ -394,8 +394,7 @@ namespace {
394
394
data->inputUser = MTP_inputUser (d.vid , MTP_long (0 ));
395
395
data->setName (lang (lng_deleted), QString (), QString (), QString ());
396
396
data->setPhoto (MTP_userProfilePhotoEmpty ());
397
- data->setIsInaccessible ();
398
- data->flags = 0 ;
397
+ data->setFlags (MTPDuser_ClientFlag::f_inaccessible | 0 );
399
398
data->setBotInfoVersion (-1 );
400
399
status = &emptyStatus;
401
400
data->contact = -1 ;
@@ -411,14 +410,18 @@ namespace {
411
410
data = App::user (peer);
412
411
auto canShareThisContact = data->canShareThisContactFast ();
413
412
wasContact = data->isContact ();
414
- if (!minimal) {
415
- data->flags = d.vflags .v ;
413
+ if (minimal) {
414
+ auto mask = 0
415
+ | MTPDuser_ClientFlag::f_inaccessible;
416
+ data->setFlags ((data->flags () & ~mask) | (d.vflags .v & mask));
417
+ } else {
418
+ data->setFlags (d.vflags .v );
416
419
if (d.is_self ()) {
417
420
data->input = MTP_inputPeerSelf ();
418
421
data->inputUser = MTP_inputUserSelf ();
419
422
} else if (!d.has_access_hash ()) {
420
- data->input = MTP_inputPeerUser (d.vid , MTP_long (data->isInaccessible () ? 0 : data-> access ));
421
- data->inputUser = MTP_inputUser (d.vid , MTP_long (data->isInaccessible () ? 0 : data-> access ));
423
+ data->input = MTP_inputPeerUser (d.vid , MTP_long (data->accessHash () ));
424
+ data->inputUser = MTP_inputUser (d.vid , MTP_long (data->accessHash () ));
422
425
} else {
423
426
data->input = MTP_inputPeerUser (d.vid , d.vaccess_hash );
424
427
data->inputUser = MTP_inputUser (d.vid , d.vaccess_hash );
@@ -436,7 +439,6 @@ namespace {
436
439
}
437
440
data->setName (lang (lng_deleted), QString (), QString (), QString ());
438
441
data->setPhoto (MTP_userProfilePhotoEmpty ());
439
- data->setIsInaccessible ();
440
442
status = &emptyStatus;
441
443
} else {
442
444
// apply first_name and last_name from minimal user only if we don't have
@@ -475,7 +477,9 @@ namespace {
475
477
} else {
476
478
data->setPhoto (MTP_userProfilePhotoEmpty ());
477
479
}
478
- if (d.has_access_hash ()) data->access = d.vaccess_hash .v ;
480
+ if (d.has_access_hash ()) {
481
+ data->setAccessHash (d.vaccess_hash .v );
482
+ }
479
483
status = d.has_status () ? &d.vstatus : &emptyStatus;
480
484
}
481
485
if (!minimal) {
@@ -579,12 +583,9 @@ namespace {
579
583
cdata->date = d.vdate .v ;
580
584
581
585
if (d.has_migrated_to () && d.vmigrated_to .type () == mtpc_inputChannel) {
582
- const auto &c (d.vmigrated_to .c_inputChannel ());
583
- ChannelData *channel = App::channel (peerFromChannel (c.vchannel_id ));
584
- if (!channel->mgInfo ) {
585
- channel->flags |= MTPDchannel::Flag::f_megagroup;
586
- channel->flagsUpdated ();
587
- }
586
+ auto &c = d.vmigrated_to .c_inputChannel ();
587
+ auto channel = App::channel (peerFromChannel (c.vchannel_id ));
588
+ channel->addFlags (MTPDchannel::Flag::f_megagroup);
588
589
if (!channel->access ) {
589
590
channel->input = MTP_inputPeerChannel (c.vchannel_id , c.vaccess_hash );
590
591
channel->inputChannel = d.vmigrated_to ;
@@ -615,13 +616,12 @@ namespace {
615
616
}
616
617
}
617
618
618
- if (!(cdata->flags & MTPDchat::Flag::f_admins_enabled) && (d.vflags .v & MTPDchat::Flag::f_admins_enabled)) {
619
+ if (!(cdata->flags () & MTPDchat::Flag::f_admins_enabled) && (d.vflags .v & MTPDchat::Flag::f_admins_enabled)) {
619
620
cdata->invalidateParticipants ();
620
621
}
621
- cdata->flags = d.vflags .v ;
622
+ cdata->setFlags ( d.vflags .v ) ;
622
623
623
624
cdata->count = d.vparticipants_count .v ;
624
- cdata->setIsForbidden (false );
625
625
if (canEdit != cdata->canEdit ()) {
626
626
update.flags |= UpdateFlag::ChatCanEdit;
627
627
}
@@ -639,8 +639,7 @@ namespace {
639
639
cdata->date = 0 ;
640
640
cdata->count = -1 ;
641
641
cdata->invalidateParticipants ();
642
- cdata->flags = 0 ;
643
- cdata->setIsForbidden (true );
642
+ cdata->setFlags (MTPDchat_ClientFlag::f_forbidden | 0 );
644
643
if (canEdit != cdata->canEdit ()) {
645
644
update.flags |= UpdateFlag::ChatCanEdit;
646
645
}
@@ -667,8 +666,13 @@ namespace {
667
666
auto canAddMembers = cdata->canAddMembers ();
668
667
669
668
if (minimal) {
670
- auto mask = MTPDchannel::Flag::f_broadcast | MTPDchannel::Flag::f_verified | MTPDchannel::Flag::f_megagroup | MTPDchannel::Flag::f_democracy;
671
- cdata->flags = (cdata->flags & ~mask) | (d.vflags .v & mask);
669
+ auto mask = 0
670
+ | MTPDchannel::Flag::f_broadcast
671
+ | MTPDchannel::Flag::f_verified
672
+ | MTPDchannel::Flag::f_megagroup
673
+ | MTPDchannel::Flag::f_democracy
674
+ | MTPDchannel_ClientFlag::f_forbidden;
675
+ cdata->setFlags ((cdata->flags () & ~mask) | (d.vflags .v & mask));
672
676
} else {
673
677
if (d.has_admin_rights ()) {
674
678
cdata->setAdminRights (d.vadmin_rights );
@@ -691,14 +695,12 @@ namespace {
691
695
} else {
692
696
cdata->setRestrictionReason (QString ());
693
697
}
694
- cdata->flags = d.vflags .v ;
698
+ cdata->setFlags ( d.vflags .v ) ;
695
699
}
696
- cdata->flagsUpdated ();
697
700
698
701
QString uname = d.has_username () ? TextUtilities::SingleLine (qs (d.vusername )) : QString ();
699
702
cdata->setName (qs (d.vtitle ), uname);
700
703
701
- cdata->setIsForbidden (false );
702
704
cdata->setPhoto (d.vphoto );
703
705
704
706
if (wasInChannel != cdata->amIn ()) update.flags |= UpdateFlag::ChannelAmIn;
@@ -722,8 +724,7 @@ namespace {
722
724
cdata->inputChannel = MTP_inputChannel (d.vid , d.vaccess_hash );
723
725
724
726
auto mask = mtpCastFlags (MTPDchannelForbidden::Flag::f_broadcast | MTPDchannelForbidden::Flag::f_megagroup);
725
- cdata->flags = (cdata->flags & ~mask) | (mtpCastFlags (d.vflags ) & mask);
726
- cdata->flagsUpdated ();
727
+ cdata->setFlags ((cdata->flags () & ~mask) | (mtpCastFlags (d.vflags ) & mask) | MTPDchannel_ClientFlag::f_forbidden);
727
728
728
729
if (cdata->hasAdminRights ()) {
729
730
cdata->setAdminRights (MTP_channelAdminRights (MTP_flags (0 )));
@@ -738,7 +739,6 @@ namespace {
738
739
cdata->setPhoto (MTP_chatPhotoEmpty ());
739
740
cdata->date = 0 ;
740
741
cdata->setMembersCount (0 );
741
- cdata->setIsForbidden (true );
742
742
743
743
if (wasInChannel != cdata->amIn ()) update.flags |= UpdateFlag::ChannelAmIn;
744
744
if (canViewAdmins != cdata->canViewAdmins ()
@@ -795,7 +795,7 @@ namespace {
795
795
int32 pversion = chat->participants .isEmpty () ? 1 : (chat->participants .begin ().value () + 1 );
796
796
chat->invitedByMe .clear ();
797
797
chat->admins .clear ();
798
- chat->flags &= ~ MTPDchat::Flag::f_admin;
798
+ chat->removeFlags ( MTPDchat::Flag::f_admin) ;
799
799
for (auto i = v.cbegin (), e = v.cend (); i != e; ++i) {
800
800
int32 uid = 0 , inviter = 0 ;
801
801
switch (i->type ()) {
@@ -826,7 +826,7 @@ namespace {
826
826
if (i->type () == mtpc_chatParticipantAdmin) {
827
827
chat->admins .insert (user);
828
828
if (user->isSelf ()) {
829
- chat->flags |= MTPDchat::Flag::f_admin;
829
+ chat->addFlags ( MTPDchat::Flag::f_admin) ;
830
830
}
831
831
}
832
832
} else {
@@ -927,7 +927,7 @@ namespace {
927
927
chat->invitedByMe .remove (user);
928
928
chat->admins .remove (user);
929
929
if (user->isSelf ()) {
930
- chat->flags &= ~ MTPDchat::Flag::f_admin;
930
+ chat->removeFlags ( MTPDchat::Flag::f_admin) ;
931
931
}
932
932
933
933
History *h = App::historyLoaded (chat->id );
@@ -967,9 +967,9 @@ namespace {
967
967
auto badVersion = (chat->version + 1 < d.vversion .v );
968
968
chat->version = d.vversion .v ;
969
969
if (mtpIsTrue (d.venabled )) {
970
- chat->flags |= MTPDchat::Flag::f_admins_enabled;
970
+ chat->addFlags ( MTPDchat::Flag::f_admins_enabled) ;
971
971
} else {
972
- chat->flags &= ~ MTPDchat::Flag::f_admins_enabled;
972
+ chat->removeFlags ( MTPDchat::Flag::f_admins_enabled) ;
973
973
}
974
974
if (badVersion || mtpIsTrue (d.venabled )) {
975
975
chat->invalidateParticipants ();
@@ -999,7 +999,7 @@ namespace {
999
999
if (user) {
1000
1000
if (mtpIsTrue (d.vis_admin )) {
1001
1001
if (user->isSelf ()) {
1002
- chat->flags |= MTPDchat::Flag::f_admin;
1002
+ chat->addFlags ( MTPDchat::Flag::f_admin) ;
1003
1003
}
1004
1004
if (chat->noParticipantInfo ()) {
1005
1005
Auth ().api ().requestFullPeer (chat);
@@ -1008,7 +1008,7 @@ namespace {
1008
1008
}
1009
1009
} else {
1010
1010
if (user->isSelf ()) {
1011
- chat->flags &= ~ MTPDchat::Flag::f_admin;
1011
+ chat->removeFlags ( MTPDchat::Flag::f_admin) ;
1012
1012
}
1013
1013
chat->admins .remove (user);
1014
1014
}
0 commit comments