         })
     }
 
+    private func lockIfNeeded() {
+        let disabledUntil = walletManager.walletDisabledUntil
+        if disabledUntil > Date.timeIntervalSinceReferenceDate {
+            let disabledUntilDate = Date(timeIntervalSinceReferenceDate: disabledUntil)
+            let df = DateFormatter()
+            df.dateFormat = "h:mm a 'on' MMM d, yyy"
+            subheader.text = "Disabled until: \(df.string(from: disabledUntilDate))"
+            pinPad.view.isUserInteractionEnabled = false
+
+            let unlockInterval = disabledUntil - Date.timeIntervalSinceReferenceDate
+            unlockTimer?.invalidate()
+            unlockTimer = Timer.scheduledTimer(timeInterval: unlockInterval, target: self, selector: #selector(LoginViewController.unlock), userInfo: nil, repeats: false)
+        } else if disabledUntil > 0 {
+            assert(false, "This is bad...disabledUntil not right")
+        } else {
+            subheader.text = S.LoginScreen.subheader
+            pinPad.view.isUserInteractionEnabled = true
+        }
+    }
+
+    @objc private func unlock() {
+        subheader.pushNewText(S.LoginScreen.subheader)
+        pinPad.view.isUserInteractionEnabled = true
+        unlockTimer = nil
+    }
+
     override var preferredStatusBarStyle: UIStatusBarStyle {
         return .lightContent
     }

        pinPad.clear()
        DispatchQueue.main.asyncAfter(deadline: .now() + pinView.shakeDuration) { [weak self] in
            self?.pinView.fill(0)
        }
    }


    private let subheader = UILabel(font: .customBody(size: 16.0))
    private var pinPadPottom: NSLayoutConstraint?
    private var topControlTop: NSLayoutConstraint?
    private var unlockTimer: Timer?

    override func viewDidLoad() {
        addSubviews()
