             make.height.equalTo(44.0)
         }
 
+        backgroundView.addSubview(decorationLine)
+        decorationLine.snp.makeConstraints { (make) in
+            make.leading.trailing.bottom.equalTo(backgroundView)
+            make.height.equalTo(1.0 / UIScreen.main.scale)
+        }
+
         windowLevel = UIWindowLevelStatusBar - 1.0
 
         didReceivePaletteChangeNotification(nil)
 
+        NotificationCenter.default.addObserver(self,
+                                               selector: #selector(didReceiveStatusBarFrameWillChangeNotification(_:)),
+                                               name: .UIApplicationWillChangeStatusBarFrame,
+                                               object: nil)
         NotificationCenter.default.addObserver(self,
                                                selector: #selector(didReceivePaletteChangeNotification(_:)),
                                                name: .APPaletteDidChangeNotification,


    let backgroundView = UIVisualEffectView(effect: nil)
    let textLabel = UILabel(frame: .zero)

    override init(frame: CGRect) {
        var statusBarFrame = UIApplication.shared.statusBarFrame

        case second(TimeInterval)
        case forever
    }

    func didReceivePaletteChangeNotification(_ notification: Notification?) {
        backgroundView.effect = ColorManager.shared.isDarkTheme() ? UIBlurEffect(style: .light) : UIBlurEffect(style: .extraLight)
        textLabel.textColor = ColorManager.shared.colorForKey("reply.text")
        decorationLine.backgroundColor = ColorManager.shared.colorForKey("reply.text")
    }

    func didReceiveStatusBarFrameWillChangeNotification(_ notification: Notification?) {
        guard let newFrame = notification?.userInfo?[UIApplicationStatusBarFrameUserInfoKey] as? CGRect else {
            return
        }

        let finalFrame = mutate(newFrame) { (value: inout CGRect) in
            value.size.height += 44.0
        }

        UIView.animate(withDuration: 0.3) {
            self.frame = finalFrame
            self.setNeedsLayout()
            self.layoutIfNeeded()
        }
    }
}
