Merge branch 'feature/4730_personal_notes_visibilty' into 'develop'

MESSENGER-4730 personal notes visibility old style

See merge request bwmessenger/bundesmessenger/bundesmessenger-ios!204
This commit is contained in:
Frank Rotermund
2023-09-15 07:39:41 +00:00
6 changed files with 96 additions and 36 deletions

View File

@@ -530,7 +530,7 @@ class BWIBuildSettings: NSObject {
var bwiPersonalNotesRoomLeavable = false
var bwiResetPersonalNotesAccountData = false
var bwiUseCustomPersonalNotesAvatar = true
var bwiPersonalNotesRoomAsFavorite = true
var bwiPersonalNotesVisibilityInSettings = false
var bwiShowTimelineSettings = false

View File

@@ -20,13 +20,31 @@ PODS:
- Down (0.11.0)
- DSBottomSheet (0.3.0)
- DSWaveformImage (6.1.1)
- DTCoreText (1.6.26):
- DTCoreText/Core (= 1.6.26)
- DTFoundation/Core (~> 1.7.5)
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
- DTFoundation/DTHTMLParser (~> 1.7.5)
- DTFoundation/UIKit (~> 1.7.5)
- DTCoreText/Core (1.6.26):
- DTFoundation/Core (~> 1.7.5)
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
- DTFoundation/DTHTMLParser (~> 1.7.5)
- DTFoundation/UIKit (~> 1.7.5)
- DTFoundation/Core (1.7.18)
- DTFoundation/DTAnimatedGIF (1.7.18)
- DTFoundation/DTHTMLParser (1.7.18):
- DTFoundation/Core
- DTFoundation/UIKit (1.7.18):
- DTFoundation/Core
- DTTJailbreakDetection (0.4.0)
- FLEX (4.5.0)
- FlowCommoniOS (1.12.2)
- GBDeviceInfo (7.1.0):
- GBDeviceInfo/Core (= 7.1.0)
- GBDeviceInfo/Core (7.1.0)
- GZIP (1.3.0)
- Introspect (0.11.0)
- Introspect (0.12.0)
- JitsiMeetSDKLite (8.1.2-lite):
- JitsiWebRTC (~> 111.0)
- JitsiWebRTC (111.0.2)
@@ -39,6 +57,9 @@ PODS:
- LoggerAPI (1.9.200):
- Logging (~> 1.1)
- Logging (1.4.0)
- MatomoTracker (7.5.2):
- MatomoTracker/Core (= 7.5.2)
- MatomoTracker/Core (7.5.2)
- MatrixSDK (0.27.1):
- MatrixSDK/Core (= 0.27.1)
- MatrixSDK/Core (0.27.1):
@@ -58,7 +79,7 @@ PODS:
- OLMKit/olmcpp (= 3.2.12)
- OLMKit/olmc (3.2.12)
- OLMKit/olmcpp (3.2.12)
- PostHog (2.0.0)
- PostHog (2.0.2)
- ReadMoreTextView (3.0.1)
- Realm (10.27.0):
- Realm/Headers (= 10.27.0)
@@ -73,7 +94,7 @@ PODS:
- Sentry/Core (7.15.0)
- SideMenu (6.5.0)
- SwiftBase32 (0.9.0)
- SwiftFormat/CLI (0.50.2)
- SwiftFormat/CLI (0.52.3)
- SwiftGen (6.6.2)
- SwiftJWT (3.6.200):
- BlueCryptor (~> 1.0)
@@ -81,7 +102,7 @@ PODS:
- BlueRSA (~> 1.0)
- KituraContracts (~> 1.2)
- LoggerAPI (~> 1.7)
- SwiftLint (0.49.1)
- SwiftLint (0.52.4)
- SwiftyBeaver (1.9.5)
- UICollectionViewLeftAlignedLayout (1.0.2)
- UICollectionViewRightAlignedLayout (0.0.3)
@@ -95,6 +116,8 @@ DEPENDENCIES:
- Down (~> 0.11.0)
- DSBottomSheet (~> 0.3)
- DSWaveformImage (~> 6.1.1)
- DTCoreText (= 1.6.26)
- DTTJailbreakDetection (~> 0.4.0)
- FLEX (~> 4.5.0)
- FlowCommoniOS (~> 1.12.0)
- GBDeviceInfo (~> 7.1.0)
@@ -102,8 +125,9 @@ DEPENDENCIES:
- KeychainAccess (~> 4.2.2)
- KTCenterFlowLayout (~> 1.3.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.27.1)
- MatrixSDK/JingleCallStack (= 0.27.1)
- MatomoTracker (~> 7.5.2)
- MatrixSDK (from `https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk`, tag `v2.10.0_rc2`)
- MatrixSDK/JingleCallStack (from `https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk`, tag `v2.10.0_rc2`)
- OLMKit
- PostHog (~> 2.0.0)
- ReadMoreTextView (~> 3.0.1)
@@ -122,7 +146,7 @@ DEPENDENCIES:
- ZXingObjC (~> 3.6.5)
SPEC REPOS:
trunk:
https://github.com/CocoaPods/Specs.git:
- AFNetworking
- BlueCryptor
- BlueECC
@@ -130,6 +154,9 @@ SPEC REPOS:
- Down
- DSBottomSheet
- DSWaveformImage
- DTCoreText
- DTFoundation
- DTTJailbreakDetection
- FLEX
- FlowCommoniOS
- GBDeviceInfo
@@ -144,7 +171,7 @@ SPEC REPOS:
- libPhoneNumber-iOS
- LoggerAPI
- Logging
- MatrixSDK
- MatomoTracker
- MatrixSDKCrypto
- OLMKit
- PostHog
@@ -165,6 +192,16 @@ SPEC REPOS:
- zxcvbn-ios
- ZXingObjC
EXTERNAL SOURCES:
MatrixSDK:
:git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk
:tag: v2.10.0_rc2
CHECKOUT OPTIONS:
MatrixSDK:
:git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk
:tag: v2.10.0_rc2
SPEC CHECKSUMS:
AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
BlueCryptor: b0aee3d9b8f367b49b30de11cda90e1735571c24
@@ -173,11 +210,14 @@ SPEC CHECKSUMS:
Down: b6ba1bc985c9d2f4e15e3b293d2207766fa12612
DSBottomSheet: ca0ac37eb5af2dd54663f86b84382ed90a59be2a
DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce
DTCoreText: ec749e013f2e1f76de5e7c7634642e600a7467ce
DTFoundation: a53f8cda2489208cbc71c648be177f902ee17536
DTTJailbreakDetection: 5e356c5badc17995f65a83ed9483f787a0057b71
FLEX: e51461dd6f0bfb00643c262acdfea5d5d12c596b
FlowCommoniOS: ca92071ab526dc89905495a37844fd7e78d1a7f2
GBDeviceInfo: 5d62fa85bdcce3ed288d83c28789adf1173e4376
GZIP: 416858efbe66b41b206895ac6dfd5493200d95b3
Introspect: 4cc1e4c34dd016540c8d86a591c231c09dafbee3
Introspect: b66b675de8a85d9ef832f3a710d8e3c7db186884
JitsiMeetSDKLite: 895213158cf62342069a10634a41d2f1c00057f7
JitsiWebRTC: 80f62908fcf2a1160e0d14b584323fb6e6be630b
KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
@@ -187,20 +227,21 @@ SPEC CHECKSUMS:
libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75
LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MatomoTracker: 1d98ddc58322fd9d65e1a6886b8e41363047bd13
MatrixSDK: f6c197ca06aab29ff69d1105965a57d277dfcd9d
MatrixSDKCrypto: 25929a40733b4ab54f659aaf6a730552a0a06504
OLMKit: da115f16582e47626616874e20f7bb92222c7a51
PostHog: 660ec6c9d80cec17b685e148f17f6785a88b597d
PostHog: f9e5c13ceea86bb5314218c85d16125b797eb332
ReadMoreTextView: 19147adf93abce6d7271e14031a00303fe28720d
Realm: 9ca328bd7e700cc19703799785e37f77d1a130f2
Reusable: 6bae6a5e8aa793c9c441db0213c863a64bce9136
Sentry: 63ca44f5e0c8cea0ee5a07686b02e56104f41ef7
SideMenu: f583187d21c5b1dd04c72002be544b555a2627a2
SwiftBase32: 9399c25a80666dc66b51e10076bf591e3bbb8f17
SwiftFormat: 710117321c55c82675c0dc03055128efbb13c38f
SwiftFormat: 5de81c42f043741a16e17ae2da012bbddc7c0b58
SwiftGen: 1366a7f71aeef49954ca5a63ba4bef6b0f24138c
SwiftJWT: 88c412708f58c169d431d344c87bc79a87c830ae
SwiftLint: 32ee33ded0636d0905ef6911b2b67bbaeeedafa5
SwiftLint: 1cc5cd61ba9bacb2194e340aeb47a2a37fda00b3
SwiftyBeaver: 84069991dd5dca07d7069100985badaca7f0ce82
UICollectionViewLeftAlignedLayout: 830bf6fa5bab9f9b464f62e3384f9d2e00b3c0f6
UICollectionViewRightAlignedLayout: 823eef8c567eba4a44c21bc2ffcb0d0d5f361e2d
@@ -208,6 +249,6 @@ SPEC CHECKSUMS:
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
PODFILE CHECKSUM: ce6afe3dea7ea9b073a7ad0406b2cc5615646746
PODFILE CHECKSUM: e7f4847564a30ed02659a311fe204021498f30e8
COCOAPODS: 1.11.3

View File

@@ -38,7 +38,7 @@ class RoomActionProvider: RoomActionProviderProtocol {
if BWIBuildSettings.shared.bwiFilteredContextMenu {
if service.roomId == PersonalNotesDefaultService(mxSession: service.session).personalNotesRoomId() {
return UIMenu(children: [
self.notificationsAction
self.hidePersonalNotesAction
])
} else {
return UIMenu(children: [
@@ -110,6 +110,15 @@ class RoomActionProvider: RoomActionProviderProtocol {
self.service.isRoomFavourite = !self.service.isRoomFavourite
}
}
// bwi #4802
private var hidePersonalNotesAction: UIAction {
return UIAction(
title: BWIL10n.homeContextMenuPersonalNotes,
image: UIImage(systemName: "star.slash")) { _ in
PersonalNotesSettings().personalNotesVisible = false
}
}
private var lowPriorityAction: UIAction {
return UIAction(

View File

@@ -172,7 +172,8 @@ typedef NS_ENUM(NSUInteger, USER_INTERFACE)
TIMELINE_USER_AVATAR_INDEX,
TIMELINE_ENTER_ROOM_INDEX,
USER_INTERFACE_LANGUAGE_INDEX,
USER_INTERFACE_TIMELINE_STYLE_INDEX
USER_INTERFACE_TIMELINE_STYLE_INDEX,
PERSONAL_NOTES_INDEX
};
typedef NS_ENUM(NSUInteger, TIMELINE)
@@ -666,6 +667,9 @@ ChangePasswordCoordinatorBridgePresenterDelegate>
//[sectionUserInterface addRowWithTag:USER_INTERFACE_LANGUAGE_INDEX];
[sectionUserInterface addRowWithTag:USER_INTERFACE_THEME_INDEX];
if (BWIBuildSettings.shared.bwiPersonalNotesVisibilityInSettings) {
[sectionUserInterface addRowWithTag:PERSONAL_NOTES_INDEX];
}
sectionUserInterface = [self updateTimeLine:sectionUserInterface];
[tmpSections addObject: sectionUserInterface];
@@ -2559,6 +2563,9 @@ ChangePasswordCoordinatorBridgePresenterDelegate>
} else if (row == USER_INTERFACE_TIMELINE_STYLE_INDEX)
{
cell = [self buildMessageBubblesCellForTableView:tableView atIndexPath:indexPath];
} else if (row == PERSONAL_NOTES_INDEX)
{
cell = [self cellForPersonalNotesVisibility:tableView indexPath:indexPath row:row];
} else {
cell = [self cellForTimeline:tableView indexPath:indexPath row:row];
}
@@ -5408,6 +5415,24 @@ ChangePasswordCoordinatorBridgePresenterDelegate>
[self updateSections];
}
- (UITableViewCell*) cellForPersonalNotesVisibility:(UITableView*)tableView indexPath:(NSIndexPath*)indexPath row:(NSInteger)row {
MXKTableViewCellWithLabelAndSwitch* labelAndSwitchCell = [self getLabelAndSwitchCell:tableView forIndexPath:indexPath];
labelAndSwitchCell.mxkLabel.text = [BWIL10n bwiSettingsEnableNotesRoomTitle];
labelAndSwitchCell.mxkSwitch.on = [[[PersonalNotesSettings alloc] init] personalNotesVisible];
labelAndSwitchCell.mxkSwitch.thumbTintColor = ThemeService.shared.theme.backgroundColor;
labelAndSwitchCell.mxkSwitch.onTintColor = ThemeService.shared.theme.tintColor;
labelAndSwitchCell.mxkSwitch.enabled = YES;
[labelAndSwitchCell.mxkSwitch addTarget:self action:@selector(togglePersonalNotesVisibility:) forControlEvents:UIControlEventTouchUpInside];
return labelAndSwitchCell;
}
- (void) togglePersonalNotesVisibility:(UISwitch* )sender {
PersonalNotesSettings* settings = [[PersonalNotesSettings alloc] init];
settings.personalNotesVisible = sender.on;
}
#pragma mark - ThreadsBetaCoordinatorBridgePresenterDelegate
- (void)threadsBetaCoordinatorBridgePresenterDelegateDidTapEnable:(ThreadsBetaCoordinatorBridgePresenter *)coordinatorBridgePresenter

View File

@@ -1079,22 +1079,6 @@
if (BWIBuildSettings.shared.bwiPersonalNotesRoom) {
[service createPersonalNotesRoomIfNeeded];
}
if (BWIBuildSettings.shared.bwiUseCustomPersonalNotesAvatar) {
MXSession *mainSession = mxSessionArray.firstObject;
if (mainSession) {
for (MXRoom* room in [mainSession roomsWithTag:PersonalNotesDefaultService.roomTag]) {
if ([room.summary.avatar length] > 0) {
[room setAvatar:@"" success:nil failure:nil];
}
}
MXRoom* room = [mainSession roomWithRoomId:[service personalNotesRoomId]];
if (room && [room.summary.avatar length] > 0) {
[room setAvatar:@"" success:nil failure:nil];
}
}
}
}
#pragma mark - bwi matomo tracking

View File

@@ -119,8 +119,8 @@ extension PersonalNotesDefaultService : PersonalNotesService {
case .success(let room):
_ = self.setRoomId(roomId: room.roomId)
let tagOrder = self.session.tagOrderToBe(at: 0, from: UInt(NSNotFound), withTag: PersonalNotesDefaultService.roomTag) ?? ""
room.replaceTag(PersonalNotesDefaultService.roomTag, with: PersonalNotesDefaultService.roomTag, withOrder: tagOrder) { (response) in
let tagOrder = self.session.tagOrderToBe(at: 0, from: UInt(NSNotFound), withTag: kMXRoomTagFavourite) ?? ""
room.replaceTag(kMXRoomTagFavourite, with: kMXRoomTagFavourite, withOrder: tagOrder) { (response) in
}
case .failure(_ ):
@@ -144,8 +144,9 @@ extension PersonalNotesDefaultService : PersonalNotesService {
if room.accountData.tags[kMXRoomTagFavourite] == nil {
let tagOrder = self.session.tagOrderToBe(at: 0, from: UInt(NSNotFound), withTag: kMXRoomTagFavourite) ?? ""
room.replaceTag(kMXRoomTagFavourite, with: kMXRoomTagFavourite, withOrder: tagOrder) { (response) in
let tags = room.accountData.tags
print(tags)
// check old settings
let layoutSettings = AllChatsLayoutSettingsManager.shared.allChatLayoutSettings
PersonalNotesSettings().personalNotesVisible = layoutSettings.sections.contains(.bwiPersonalNotes)
}
}
}