Skip to content
This repository was archived by the owner on Jun 7, 2020. It is now read-only.

[NEW][WIP] Added unhiding channel after hiding. #2566

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 5 additions & 1 deletion Rocket.Chat.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -896,6 +896,7 @@
D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; };
D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; };
DB926AFD21FA0AEE0046F53F /* ChatAnnouncementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB926AFC21FA0AEE0046F53F /* ChatAnnouncementView.swift */; };
E3384EE522258E1200B47324 /* RoomOpenRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3384EE422258E1200B47324 /* RoomOpenRequest.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -1531,7 +1532,7 @@
806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = "<group>"; };
806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = "<group>"; };
806EFA5D209BF1AC00D0D650 /* SubscriptionReadRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionReadRequest.swift; sourceTree = "<group>"; };
806EFA61209BF30500D0D650 /* SubscriptionsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsClient.swift; sourceTree = "<group>"; };
806EFA61209BF30500D0D650 /* SubscriptionsClient.swift */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsClient.swift; sourceTree = "<group>"; tabWidth = 4; };
807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = "<group>"; };
8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = "<group>"; };
8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1851,6 +1852,7 @@
D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = "<group>"; };
DB926AFC21FA0AEE0046F53F /* ChatAnnouncementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatAnnouncementView.swift; sourceTree = "<group>"; };
E05A718A50D61E3E547007AF /* Pods-Rocket.Chat.test.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.test.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.test.xcconfig"; sourceTree = "<group>"; };
E3384EE422258E1200B47324 /* RoomOpenRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoomOpenRequest.swift; sourceTree = "<group>"; };
F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = "<group>"; };
FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -3211,6 +3213,7 @@
80235D1A1F74070100A56CA5 /* RoomMembersRequest.swift */,
990FF6D520740C79007B4A53 /* RoomMentionsRequest.swift */,
800E22851F8507E400DA84F1 /* RoomMessagesRequest.swift */,
E3384EE422258E1200B47324 /* RoomOpenRequest.swift */,
9987B59B2093E60C007D277C /* RoomFilesRequest.swift */,
414E8A8C20A5DD2200615CE6 /* RoomRolesRequest.swift */,
8039441020AF1334002F317A /* RoomKickRequest.swift */,
Expand Down Expand Up @@ -5224,6 +5227,7 @@
41BF4D6E215B4CA100588B35 /* DateSeparatorChatItem.swift in Sources */,
8073719A1F94E83600D53ADF /* SocketError.swift in Sources */,
413FB6C11FE17D7D00F010AA /* UIViewExtentions.swift in Sources */,
E3384EE522258E1200B47324 /* RoomOpenRequest.swift in Sources */,
1496A86D20FA4644005C2E14 /* NotificationsChooseCell.swift in Sources */,
8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */,
8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */,
Expand Down
23 changes: 23 additions & 0 deletions Rocket.Chat/API/Clients/SubscriptionsClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -290,3 +290,26 @@ extension SubscriptionsClient {
}
}
}

// MARK: Open room

extension SubscriptionsClient {
func openSubscription(subscription: Subscription) {
let roomOpenRequest = RoomOpenRequest(rid: subscription.rid, subscriptionType: subscription.type)

api.fetch(roomOpenRequest) { result in
switch result {
case .resource(let resource):
guard resource.success == true else {
return
}
Realm.executeOnMainThread { realm in
subscription.open = true
realm.add(subscription, update: true)
}
case .error(let error):
debugPrint(error)
}
}
}
}
59 changes: 59 additions & 0 deletions Rocket.Chat/API/Requests/Room/RoomOpenRequest.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
//
// RoomOpenRequest.swift
// VitimMobile
//
// Created by Andrey Rudenko on 20/02/2019.
// Copyright © 2019 Vitim. All rights reserved.
//

import SwiftyJSON

private extension SubscriptionType {
var path: String {
switch self {
case .channel:
return "/api/v1/channels.open"
case .group:
return "/api/v1/groups.open"
case .directMessage:
return "/api/v1/im.open"
}
}
}

final class RoomOpenRequest: APIRequest {
typealias APIResourceType = RoomOpenResource

let requiredVersion = Version(0, 48, 0)

let method: HTTPMethod = .post
var path: String {
return type.path
}

let rid: String
let type: SubscriptionType

init(rid: String, subscriptionType: SubscriptionType) {
self.rid = rid
self.type = subscriptionType
}

func body() -> Data? {
let body = JSON(
["roomId": rid]
)

return body.rawString()?.data(using: .utf8)
}
}

final class RoomOpenResource: APIResource {
var success: Bool? {
return raw?["success"].boolValue
}

var error: String? {
return raw?["error"].stringValue
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,7 @@ extension SubscriptionsViewController: UITableViewDelegate {
}

controller.subscription = subscription
openSubscriptionIfNeeded(subscription)

// When using iPads, we override the detail controller creating
// a new instance.
Expand Down Expand Up @@ -676,3 +677,17 @@ extension SubscriptionsViewController {
}
}
}

// MARK: - Open room API

extension SubscriptionsViewController {
func openSubscriptionIfNeeded(_ subscription: Subscription) {
guard subscription.isJoined() && !subscription.open && subscription.type != .directMessage else {
return
}

API.current()?.client(
SubscriptionsClient.self).openSubscription(
subscription: subscription)
}
}