//
//  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//

#import "NewNonContactConversationViewController.h"
#import "BlockListUIUtils.h"
#import "ContactsViewHelper.h"
#import <SignalMessaging/OWSContactsManager.h>
#import <SignalServiceKit/SignalAccount.h>

NS_ASSUME_NONNULL_BEGIN

@interface NewNonContactConversationViewController () <SelectRecipientViewControllerDelegate>

@end

#pragma mark -

@implementation NewNonContactConversationViewController

- (void)loadView
{
    self.delegate = self;

    [super loadView];

    self.title = NSLocalizedString(
        @"NEW_NONCONTACT_CONVERSATION_VIEW_TITLE", @"Title for the 'new non-contact conversation' view.");
}

- (NSString *)phoneNumberSectionTitle
{
    return nil;
}

- (NSString *)phoneNumberButtonText
{
    return NSLocalizedString(@"NEW_NONCONTACT_CONVERSATION_VIEW_BUTTON",
        @"A label for the 'add by phone number' button in the 'new non-contact conversation' view");
}

- (NSString *)contactsSectionTitle
{
    OWSFail(@"Method should never be called.");

    return nil;
}

- (void)phoneNumberWasSelected:(NSString *)phoneNumber
{
    OWSAssert(phoneNumber.length > 0);

    [self selectRecipient:phoneNumber];
}

- (void)signalAccountWasSelected:(SignalAccount *)signalAccount
{
    OWSAssert(signalAccount);

    [self selectRecipient:signalAccount.recipientId];
}

- (void)selectRecipient:(NSString *)recipientId
{
    OWSAssert(recipientId.length > 0);

    [self.nonContactConversationDelegate recipientIdWasSelected:recipientId];
}

- (BOOL)shouldHideLocalNumber
{
    return NO;
}

- (BOOL)shouldHideContacts
{
    return YES;
}

- (BOOL)shouldValidatePhoneNumbers
{
    return YES;
}

- (BOOL)canSignalAccountBeSelected:(SignalAccount *)signalAccount
{
    OWSFail(@"Method should never be called.");

    return NO;
}

- (nullable NSString *)accessoryMessageForSignalAccount:(SignalAccount *)signalAccount
{
    OWSFail(@"Method should never be called.");

    return nil;
}

@end

NS_ASSUME_NONNULL_END
