123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*****************************************************************************
- * VLCPlaybackController+VLCDialogProvider.swift
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2018 VideoLAN. All rights reserved.
- * $Id$
- *
- * Authors: Carola Nitz <caro # videolan.org>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
- import Foundation
- extension VLCPlaybackController: VLCCustomDialogRendererProtocol {
- public func showError(withTitle error: String, message: String) {
- //noop
- }
- public func showLogin(withTitle title: String, message: String, defaultUsername username: String?, askingForStorage: Bool, withReference reference: NSValue) {
- let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
- var usernameField: UITextField?
- var passwordField: UITextField?
- alertController.addTextField { textField in
- usernameField = textField
- textField.placeholder = NSLocalizedString("USER_LABEL", comment:"")
- if username != "" {
- textField.text = username
- }
- }
- alertController.addTextField { textField in
- passwordField = textField
- textField.isSecureTextEntry = true
- textField.placeholder = NSLocalizedString("PASSWORD_LABEL", comment:"")
- }
- let loginAction = UIAlertAction(title: NSLocalizedString("LOGIN", comment:""), style: .default) {[weak self] action in
- let username = usernameField?.text ?? ""
- let password = passwordField?.text ?? ""
- self?.dialogProvider.postUsername(username, andPassword: password, forDialogReference: reference, store: false)
- }
- alertController.addAction(loginAction)
- alertController.preferredAction = loginAction
- alertController.addAction(UIAlertAction(title: NSLocalizedString("BUTTON_CANCEL", comment:""), style: .cancel, handler: { [weak self] action in
- self?.dialogProvider.dismissDialog(withReference: reference)
- }))
- if askingForStorage {
- alertController.addAction(UIAlertAction(title: NSLocalizedString("BUTTON_SAVE", comment:""), style: .default, handler: {[weak self] action in
- let username = usernameField?.text ?? ""
- let password = passwordField?.text ?? ""
- self?.dialogProvider.postUsername(username, andPassword: password, forDialogReference: reference, store: true)
- }))
- }
-
- if let rootViewController = UIApplication.shared.delegate?.window??.rootViewController {
- let presentingController = rootViewController.presentedViewController ?? rootViewController
- presentingController.present(alertController, animated: true, completion: nil)
- }
- }
- public func showQuestion(withTitle title: String, message: String, type questionType: VLCDialogQuestionType, cancel cancelString: String?, action1String: String?, action2String: String?, withReference reference: NSValue) {
- let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
- if let cancelTitle = cancelString {
- alertController.addAction(UIAlertAction(title: cancelTitle, style: .cancel, handler: { [weak self] action in
- self?.dialogProvider.postAction(3, forDialogReference: reference)
- }))
- }
- if let action1Ttile = action1String {
- let confirmAction = UIAlertAction(title: action1Ttile, style: .default, handler: { [weak self] action in
- self?.dialogProvider.postAction(1, forDialogReference: reference)
- })
- alertController.addAction(confirmAction)
- alertController.preferredAction = confirmAction
- }
- if let action2Title = action2String {
- alertController.addAction(UIAlertAction(title: action2Title, style: .default, handler: {[weak self] action in
- self?.dialogProvider.postAction(2, forDialogReference: reference)
- }))
- }
- if let rootViewController = UIApplication.shared.delegate?.window??.rootViewController {
- let presentingController = rootViewController.presentedViewController ?? rootViewController
- presentingController.present(alertController, animated: true, completion: nil)
- }
- }
- public func showProgress(withTitle title: String, message: String, isIndeterminate: Bool, position: Float, cancel cancelString: String?, withReference reference: NSValue) {
- print("title: \(title), message: \(message), isIndeterminate: \(isIndeterminate), position: \(position), cancel: \(cancelString ?? ""), reference: \(reference)")
- }
- public func updateProgress(withReference reference: NSValue, message: String?, position: Float) {
- print("reference: \(reference) message: \(message ?? "") position: \(position)")
- }
- public func cancelDialog(withReference reference: NSValue) {
- if let rootViewController = UIApplication.shared.delegate?.window??.rootViewController {
- let presentingController = rootViewController.presentedViewController ?? rootViewController
- presentingController.dismiss(animated: true, completion: nil)
- }
- }
- }
|