<commit_before>//
//  SettingViewController.swift
//  ArkMonitor
//
//  Created by Andrew on 2017-09-13.
//  Copyright © 2017 vrlc92. All rights reserved.
//

import UIKit

internal enum ServerMode {
    case node1
    case node2
    case custom
}

class SettingViewController1: UIViewController {
    
    fileprivate var tableview: ArkTableView!
    fileprivate var mode : ServerMode = .node1

    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableview = ArkTableView(frame: CGRect.zero)
        tableview.delegate = self
        tableview.dataSource = self
        view.addSubview(tableview)
        tableview.snp.makeConstraints { (make) in
            make.left.right.top.bottom.equalToSuperview()
        }
    }
}

// MARK: UITableViewDelegate
extension SettingViewController1: UITableViewDelegate {
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        switch mode {
        case .custom:
            return 40.0
        default:
            switch indexPath.section {
            case 0:
                return 60.0
            case 1:
                return 100.0
            default:
                return 40.0
            }
        }
    }
    
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return CGFloat.leastNormalMagnitude
    }
    
    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        return nil
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return CGFloat.leastNormalMagnitude
    }
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return nil
    }
    
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if let aCell = cell as? SettingsServerTableViewCell {
            aCell.updateMode(mode)
        }
    }
}

// MARK: UITableViewDataSource
extension SettingViewController1: UITableViewDataSource {
    
    func numberOfSections(in tableView: UITableView) -> Int {
        switch mode {
            case .custom:
                return 6
            default:
                return 3
        }
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        switch mode {
        case .custom:
            let cell = UITableViewCell()
            return cell
        default:
            switch indexPath.section {
                case 0:
                    let cell = SettingsUsernameTableViewCell(mode)
                    cell.delegate = self
                    return cell
                case 1:
                    let cell = SettingsServerTableViewCell(mode)
                    cell.delegate = self
                    return cell
                default:
                    let cell = UITableViewCell()
                    return cell
            }
        }
    }
}<commit_msg>Reworked settings to hide custom cells<commit_after>//
//  SettingViewController.swift
//  ArkMonitor
//
//  Created by Andrew on 2017-09-13.
//  Copyright © 2017 vrlc92. All rights reserved.
//

import UIKit

internal enum ServerMode {
    case node1
    case node2
    case custom
}

class SettingViewController1: UIViewController {
    
    fileprivate var tableview: ArkTableView!
    fileprivate var mode : ServerMode = .node1

    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableview = ArkTableView(frame: CGRect.zero)
        tableview.delegate = self
        tableview.dataSource = self
        view.addSubview(tableview)
        tableview.snp.makeConstraints { (make) in
            make.left.right.top.bottom.equalToSuperview()
        }
    }
}

// MARK: UITableViewDelegate
extension SettingViewController1: UITableViewDelegate {
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        switch indexPath.section {
        case 0:
            return 60.0
        case 1:
            return 100.0
        default:
            if mode == .custom {
                return 40.0
            } else {
                return 0.0
            }
        }
    }
    
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return CGFloat.leastNormalMagnitude
    }
    
    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        return nil
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return CGFloat.leastNormalMagnitude
    }
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return nil
    }
    
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if let aCell = cell as? SettingsServerTableViewCell {
            aCell.updateMode(mode)
        }
    }
}

// MARK: UITableViewDataSource
extension SettingViewController1: UITableViewDataSource {
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return 6
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        switch indexPath.section {
        case 0:
            let cell = SettingsUsernameTableViewCell(mode)
            cell.delegate = self
            return cell
        case 1:
            let cell = SettingsServerTableViewCell(mode)
            cell.delegate = self
            return cell
        default:
            let cell = UITableViewCell()
            return cell
        }
    }
}
{'fraction_non_alphanumeric': 0.06968235489772161, 'fraction_numerical': 0.012971894229170132, 'mean_word_length': 1.9025096525096525, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2401529', 'n_tokens_mistral': 1740, 'n_tokens_neox': 1575, 'n_words': 421}