Update lock screen for iOS 26.
This commit is contained in:
parent
02e22de2ba
commit
719343c533
@ -6,7 +6,7 @@
|
||||
import SignalServiceKit
|
||||
import SignalUI
|
||||
|
||||
final class SAEScreenLockViewController: ScreenLockViewController {
|
||||
final class SAEScreenLockViewController: ScreenLockViewController, ScreenLockViewDelegate {
|
||||
|
||||
private var completion: ((_ didUnlock: Bool) -> Void)?
|
||||
|
||||
@ -28,10 +28,11 @@ final class SAEScreenLockViewController: ScreenLockViewController {
|
||||
|
||||
// MARK: - UIViewController
|
||||
|
||||
override func loadView() {
|
||||
super.loadView()
|
||||
view.backgroundColor = Theme.launchScreenBackgroundColor
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
title = OWSLocalizedString("SHARE_EXTENSION_VIEW_TITLE", comment: "Title for the 'share extension' view.")
|
||||
|
||||
navigationItem.leftBarButtonItem = .systemItem(.stop) { [weak self] in
|
||||
Logger.debug("tapped dismiss share button")
|
||||
self?.cancelShareExperience()
|
||||
@ -49,7 +50,7 @@ final class SAEScreenLockViewController: ScreenLockViewController {
|
||||
|
||||
ensureUI()
|
||||
|
||||
if !hasShownAuthUIOnce {
|
||||
if hasShownAuthUIOnce == false {
|
||||
hasShownAuthUIOnce = true
|
||||
tryToPresentAuthUIToUnlockScreenLock()
|
||||
}
|
||||
@ -66,9 +67,8 @@ final class SAEScreenLockViewController: ScreenLockViewController {
|
||||
}
|
||||
|
||||
private func tryToPresentAuthUIToUnlockScreenLock() {
|
||||
AssertIsOnMainThread()
|
||||
guard isShowingAuthUI == false else { return }
|
||||
|
||||
guard !isShowingAuthUI else { return }
|
||||
isShowingAuthUI = true
|
||||
|
||||
ScreenLock.shared.tryToUnlockScreenLock(
|
||||
@ -117,8 +117,6 @@ final class SAEScreenLockViewController: ScreenLockViewController {
|
||||
}
|
||||
|
||||
private func showScreenLockFailureAlertWithMessage(_ message: String) {
|
||||
AssertIsOnMainThread()
|
||||
|
||||
OWSActionSheets.showActionSheet(
|
||||
title: OWSLocalizedString(
|
||||
"SCREEN_LOCK_UNLOCK_FAILED",
|
||||
@ -135,13 +133,10 @@ final class SAEScreenLockViewController: ScreenLockViewController {
|
||||
private func cancelShareExperience() {
|
||||
invokeCompletion(didUnlock: false)
|
||||
}
|
||||
}
|
||||
|
||||
extension SAEScreenLockViewController: ScreenLockViewDelegate {
|
||||
// MARK: - ScreenLockViewDelegate:
|
||||
|
||||
func unlockButtonWasTapped() {
|
||||
AssertIsOnMainThread()
|
||||
|
||||
Logger.info("unlockButtonWasTapped")
|
||||
|
||||
tryToPresentAuthUIToUnlockScreenLock()
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
import SignalServiceKit
|
||||
import UIKit
|
||||
|
||||
@MainActor
|
||||
public protocol ScreenLockViewDelegate: AnyObject {
|
||||
func unlockButtonWasTapped()
|
||||
}
|
||||
@ -35,20 +36,18 @@ open class ScreenLockViewController: UIViewController {
|
||||
|
||||
private lazy var imageViewLogo = UIImageView(image: UIImage(named: "signal-logo-128-launch-screen"))
|
||||
private static var buttonHeight: CGFloat { 40 }
|
||||
private lazy var buttonUnlockUI = OWSFlatButton.button(
|
||||
title: OWSLocalizedString(
|
||||
private lazy var buttonUnlockUI = UIButton(
|
||||
configuration: .largePrimary(title: OWSLocalizedString(
|
||||
"SCREEN_LOCK_UNLOCK_SIGNAL",
|
||||
comment: "Label for button on lock screen that lets users unlock Signal.",
|
||||
),
|
||||
font: OWSFlatButton.fontForHeight(ScreenLockViewController.buttonHeight),
|
||||
titleColor: UIColor.Signal.label,
|
||||
backgroundColor: UIColor.Signal.tertiaryFill,
|
||||
target: self,
|
||||
selector: #selector(unlockUIButtonTapped),
|
||||
)),
|
||||
primaryAction: UIAction { [weak self] _ in
|
||||
self?.unlockUIButtonTapped()
|
||||
},
|
||||
)
|
||||
|
||||
override open func loadView() {
|
||||
super.loadView()
|
||||
override open func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
view.backgroundColor = UIColor.Signal.background
|
||||
|
||||
@ -57,8 +56,9 @@ open class ScreenLockViewController: UIViewController {
|
||||
imageViewLogo.autoVCenterInSuperview()
|
||||
imageViewLogo.autoSetDimensions(to: .square(128))
|
||||
|
||||
buttonUnlockUI.configuration?.baseForegroundColor = .Signal.label
|
||||
buttonUnlockUI.configuration?.baseBackgroundColor = .Signal.tertiaryFill
|
||||
view.addSubview(buttonUnlockUI)
|
||||
buttonUnlockUI.autoSetDimension(.height, toSize: ScreenLockViewController.buttonHeight)
|
||||
buttonUnlockUI.autoPinWidthToSuperview(withMargin: 50)
|
||||
buttonUnlockUI.autoPinBottomToSuperviewMargin(withInset: 65)
|
||||
|
||||
@ -89,8 +89,35 @@ open class ScreenLockViewController: UIViewController {
|
||||
UIDevice.current.defaultSupportedOrientations
|
||||
}
|
||||
|
||||
@objc
|
||||
private func unlockUIButtonTapped(_ sender: Any) {
|
||||
private func unlockUIButtonTapped() {
|
||||
delegate?.unlockButtonWasTapped()
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
@available(iOS 17, *)
|
||||
#Preview("State: none") {
|
||||
let vc = ScreenLockViewController()
|
||||
vc.view.isHidden = false // force view to load
|
||||
vc.updateUIWithState(.none)
|
||||
return vc
|
||||
}
|
||||
|
||||
@available(iOS 17, *)
|
||||
#Preview("State: screenProtection") {
|
||||
let vc = ScreenLockViewController()
|
||||
vc.view.isHidden = false // force view to load
|
||||
vc.updateUIWithState(.screenLock)
|
||||
return vc
|
||||
}
|
||||
|
||||
@available(iOS 17, *)
|
||||
#Preview("State: screenLock") {
|
||||
let vc = ScreenLockViewController()
|
||||
vc.view.isHidden = false // force view to load
|
||||
vc.updateUIWithState(.screenProtection)
|
||||
return vc
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user