Merge pull request #335 from oxen-io/closed-groups
Raise Closed Group Size to 100 Members
This commit is contained in:
commit
a8cbe04129
|
@ -163,11 +163,12 @@ final class NewClosedGroupVC : BaseVC, UITableViewDataSource, UITableViewDelegat
|
|||
guard selectedContacts.count >= 1 else {
|
||||
return showError(title: "Please pick at least 1 group member")
|
||||
}
|
||||
guard selectedContacts.count < 20 else { // Minus one because we're going to include self later
|
||||
guard selectedContacts.count < 100 else { // Minus one because we're going to include self later
|
||||
return showError(title: NSLocalizedString("vc_create_closed_group_too_many_group_members_error", comment: ""))
|
||||
}
|
||||
let selectedContacts = self.selectedContacts
|
||||
ModalActivityIndicatorViewController.present(fromViewController: navigationController!, canCancel: false) { [weak self] _ in
|
||||
let message: String? = (selectedContacts.count > 20) ? "Please wait while the group is created..." : nil
|
||||
ModalActivityIndicatorViewController.present(fromViewController: navigationController!, message: message) { [weak self] _ in
|
||||
var promise: Promise<TSGroupThread>!
|
||||
Storage.writeSync { transaction in
|
||||
promise = MessageSender.createV2ClosedGroup(name: name, members: selectedContacts, transaction: transaction)
|
||||
|
|
|
@ -2537,6 +2537,7 @@ typedef enum : NSUInteger {
|
|||
[ModalActivityIndicatorViewController
|
||||
presentFromViewController:self
|
||||
canCancel:YES
|
||||
message:nil
|
||||
backgroundBlock:^(ModalActivityIndicatorViewController *modalActivityIndicator) {
|
||||
DataSource *dataSource =
|
||||
[DataSourcePath dataSourceWithURL:movieURL shouldDeleteOnDeallocation:NO];
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Session starten";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Bitte geben Sie einen Gruppennamen ein.";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Bitte geben Sie einen kürzeren Gruppennamen ein.";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Eine geschlossene Gruppe kann maximal 20 Mitglieder haben.";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Eine geschlossene Gruppe kann maximal 100 Mitglieder haben.";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Ein Mitglied Ihrer Gruppe hat eine ungültige Session ID.";
|
||||
|
||||
"vc_join_public_chat_title" = "Offener Gruppe beitreten";
|
||||
|
|
|
@ -2647,7 +2647,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Start a Session";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Please enter a group name";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Please enter a shorter group name";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "A closed group cannot have more than 20 members";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "A closed group cannot have more than 100 members";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "One of the members of your group has an invalid Session ID";
|
||||
|
||||
"vc_join_public_chat_title" = "Join Open Group";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Empezar una Session";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Por favor, ingresa un nombre de grupo";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Por favor, ingresa un nombre de grupo más corto";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Un grupo cerrado no puede tener más de 20 miembros";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Un grupo cerrado no puede tener más de 100 miembros";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Uno de los miembros de tu grupo tiene un ID de Session no válido";
|
||||
|
||||
"vc_join_public_chat_title" = "Únete al grupo abierto";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "شروع Session";
|
||||
"vc_create_closed_group_group_name_missing_error" = "لطفا یک نام گروه وارد کنید";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "لطفا نام گروه کوتاهتری وارد کنید";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "یک گروه خصوصی نمیتواند بیش از بیست عضو داشته باشد";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "یک گروه خصوصی نمیتواند بیش از یکصد عضو داشته باشد";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "یکی از اعضای گروه شما دارای شناسه نامعتبر است";
|
||||
|
||||
"vc_join_public_chat_title" = "به گروه باز بپیوندید";
|
||||
|
|
|
@ -2648,7 +2648,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Démarrer une session";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Veuillez saisir un nom de groupe";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Veuillez saisir un nom de groupe plus court";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Un groupe privé ne peut pas avoir plus de 20 membres";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Un groupe privé ne peut pas avoir plus de 100 membres";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Un des membres de votre groupe a un Session ID non valide";
|
||||
|
||||
"vc_join_public_chat_title" = "Joindre un groupe public";
|
||||
|
|
|
@ -2639,7 +2639,7 @@
|
|||
"vc_create_closed_group_group_name_missing_error" = "Masukkan nama grup";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Masukkan nama grup yang lebih pendek";
|
||||
"vc_create_closed_group_not_enough_group_members_error" = "Pilih setidaknya 2 anggota grup";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Grup tertutup maksimal berisi 20 anggota";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Grup tertutup maksimal berisi 100 anggota";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Salah satu anggota di grup memiliki Session ID yang salah";
|
||||
|
||||
"vc_join_public_chat_title" = "Gabung ke grup terbuka";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Inizia una sessione";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Inserisci un nome per il gruppo";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Inserisci un nome gruppo più breve";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Un gruppo chiuso non può avere più di 20 membri";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Un gruppo chiuso non può avere più di 100 membri";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Uno dei membri del tuo gruppo ha una Sessione ID non valido";
|
||||
|
||||
"vc_join_public_chat_title" = "Unisciti a un gruppo aperto";
|
||||
|
|
|
@ -2639,7 +2639,7 @@
|
|||
"vc_create_closed_group_group_name_missing_error" = "グループ名を入力してください";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "短いグループ名を入力してください";
|
||||
"vc_create_closed_group_not_enough_group_members_error" = "グループメンバーを少なくとも 2 人選択してください";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "閉じたグループは 20 人を超えるメンバーを抱えることはできません";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "閉じたグループは 100 人を超えるメンバーを抱えることはできません";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "グループのメンバーの 1 人の Session ID が無効です";
|
||||
|
||||
"vc_join_public_chat_title" = "オープングループに参加する";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Rozpocznij sesję";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Wpisz nazwę grupy";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Wprowadź krótszą nazwę grupy";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Grupa zamknięta nie może mieć więcej niż 20 członków";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Grupa zamknięta nie może mieć więcej niż 100 członków";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Jeden z członków Twojej grupy ma nieprawidłowy identyfikator Session";
|
||||
|
||||
"vc_join_public_chat_title" = "Dołącz do Open Group";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Iniciar uma sessão";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Digite um nome de grupo";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Digite um nome de grupo mais curto";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Um grupo fechado não pode ter mais de 20 membros";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Um grupo fechado não pode ter mais de 100 membros";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Um dos membros do seu grupo tem um ID Session inválido";
|
||||
|
||||
"vc_join_public_chat_title" = "Participar em grupo aberto";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "Начать Сессию";
|
||||
"vc_create_closed_group_group_name_missing_error" = "Пожалуйста, введите название группы";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Пожалуйста, введите более короткое имя группы";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "В закрытой группе не может быть больше 20 участников";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "В закрытой группе не может быть больше 100 участников";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Один из участников вашей группы имеет недопустимый Session ID";
|
||||
|
||||
"vc_join_public_chat_title" = "Присоединиться к открытой группе";
|
||||
|
|
|
@ -2648,7 +2648,7 @@
|
|||
"vc_create_closed_group_group_name_missing_error" = "Vui lòng nhập tên nhóm";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "Vui lòng nhập một tên nhóm ngắn hơn ";
|
||||
"vc_create_closed_group_not_enough_group_members_error" = "Vui lòng chọn ít nhất 2 thành viên trong nhóm ";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Một nhóm kín không thể có nhiều hơn 20 thành viên ";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "Một nhóm kín không thể có nhiều hơn 100 thành viên ";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "Một trong các thành viên trong nhóm của bạn có Session ID không hợp lệ ";
|
||||
|
||||
"vc_join_public_chat_title" = "Tham gia nhóm mở";
|
||||
|
|
|
@ -2638,7 +2638,7 @@
|
|||
"vc_create_closed_group_empty_state_button_title" = "开始对话";
|
||||
"vc_create_closed_group_group_name_missing_error" = "请输入群组名称";
|
||||
"vc_create_closed_group_group_name_too_long_error" = "请输入较短的群组名称";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "私密群组成员不得超过20个";
|
||||
"vc_create_closed_group_too_many_group_members_error" = "私密群组成员不得超过100个";
|
||||
"vc_create_closed_group_invalid_session_id_error" = "您群组中的一位成员的Session ID无效";
|
||||
|
||||
"vc_join_public_chat_title" = "加入公开群组";
|
||||
|
|
|
@ -2,8 +2,6 @@ import UserNotifications
|
|||
import SessionMessagingKit
|
||||
import SignalUtilitiesKit
|
||||
|
||||
// TODO: Group notifications
|
||||
|
||||
public final class NotificationServiceExtension : UNNotificationServiceExtension {
|
||||
private var didPerformSetup = false
|
||||
private var areVersionMigrationsComplete = false
|
||||
|
|
|
@ -4,14 +4,15 @@
|
|||
|
||||
import Foundation
|
||||
import MediaPlayer
|
||||
|
||||
import SessionUIKit
|
||||
|
||||
// A modal view that be used during blocking interactions (e.g. waiting on response from
|
||||
// service or on the completion of a long-running local operation).
|
||||
@objc
|
||||
public class ModalActivityIndicatorViewController: OWSViewController {
|
||||
|
||||
let canCancel: Bool
|
||||
|
||||
let message: String?
|
||||
|
||||
@objc
|
||||
public var wasCancelled: Bool = false
|
||||
|
@ -29,25 +30,26 @@ public class ModalActivityIndicatorViewController: OWSViewController {
|
|||
notImplemented()
|
||||
}
|
||||
|
||||
public required init(canCancel: Bool) {
|
||||
public required init(canCancel: Bool = false, message: String? = nil) {
|
||||
self.canCancel = canCancel
|
||||
self.message = message
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
}
|
||||
|
||||
@objc
|
||||
public class func present(fromViewController: UIViewController,
|
||||
canCancel: Bool, backgroundBlock : @escaping (ModalActivityIndicatorViewController) -> Void) {
|
||||
public class func present(fromViewController: UIViewController, canCancel: Bool = false, message: String? = nil,
|
||||
backgroundBlock : @escaping (ModalActivityIndicatorViewController) -> Void) {
|
||||
AssertIsOnMainThread()
|
||||
|
||||
let view = ModalActivityIndicatorViewController(canCancel: canCancel)
|
||||
let view = ModalActivityIndicatorViewController(canCancel: canCancel, message: message)
|
||||
// Present this modal _over_ the current view contents.
|
||||
view.modalPresentationStyle = .overFullScreen
|
||||
view.modalTransitionStyle = .crossDissolve
|
||||
fromViewController.present(view,
|
||||
animated: false) {
|
||||
DispatchQueue.global().async {
|
||||
backgroundBlock(view)
|
||||
}
|
||||
fromViewController.present(view, animated: false) {
|
||||
DispatchQueue.global().async {
|
||||
backgroundBlock(view)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -70,15 +72,31 @@ public class ModalActivityIndicatorViewController: OWSViewController {
|
|||
public override func loadView() {
|
||||
super.loadView()
|
||||
|
||||
self.view.backgroundColor = (Theme.isDarkThemeEnabled
|
||||
? UIColor(white: 0, alpha: 0.5)
|
||||
: UIColor(white: 0, alpha: 0.5))
|
||||
self.view.backgroundColor = UIColor(white: 0, alpha: 0.5)
|
||||
self.view.isOpaque = false
|
||||
|
||||
let activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
|
||||
self.activityIndicator = activityIndicator
|
||||
self.view.addSubview(activityIndicator)
|
||||
activityIndicator.autoCenterInSuperview()
|
||||
|
||||
if let message = message {
|
||||
let messageLabel = UILabel()
|
||||
messageLabel.text = message
|
||||
messageLabel.font = .systemFont(ofSize: Values.mediumFontSize)
|
||||
messageLabel.textColor = UIColor.white
|
||||
messageLabel.numberOfLines = 0
|
||||
messageLabel.textAlignment = .center
|
||||
messageLabel.lineBreakMode = .byWordWrapping
|
||||
messageLabel.set(.width, to: UIScreen.main.bounds.width - 2 * Values.mediumSpacing)
|
||||
let stackView = UIStackView(arrangedSubviews: [ messageLabel, activityIndicator ])
|
||||
stackView.axis = .vertical
|
||||
stackView.spacing = Values.largeSpacing
|
||||
stackView.alignment = .center
|
||||
self.view.addSubview(stackView)
|
||||
stackView.center(in: self.view)
|
||||
} else {
|
||||
self.view.addSubview(activityIndicator)
|
||||
activityIndicator.autoCenterInSuperview()
|
||||
}
|
||||
|
||||
if canCancel {
|
||||
let cancelButton = UIButton(type: .custom)
|
||||
|
@ -152,7 +170,6 @@ public class ModalActivityIndicatorViewController: OWSViewController {
|
|||
|
||||
wasCancelled = true
|
||||
|
||||
dismiss {
|
||||
}
|
||||
dismiss { }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue