         label.snp.makeConstraints {
             $0.edges.equalTo(UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8))
         }
+        activityIndicator.snp.makeConstraints {
+            $0.centerY.equalToSuperview()
+        }
+        activityIndicator.snp.makeConstraints {
+            activityIndicatorLeftConstraint = $0.left.equalTo(bubbleView.snp.right).offset(8).constraint
+        }
+        activityIndicatorLeftConstraint.deactivate()
+        activityIndicator.snp.makeConstraints {
+            activityIndicatorRightConstraint = $0.right.equalTo(bubbleView.snp.left).offset(-8).constraint
+        }
+        activityIndicatorRightConstraint.deactivate()
     }
 
     private var bubbleViewLeftConstraint: Constraint!
     private var bubbleViewRightConstraint: Constraint!
+    private var activityIndicatorRightConstraint: Constraint!
+    private var activityIndicatorLeftConstraint: Constraint!
 
 }
 

        bubbleView.backgroundColor = .clear
        label.textColor = .darkGray
        label.textAlignment = .center
    }

    // MARK: Subviews

    let bubbleView = Factory.bubbleView
    let label = Factory.label

    private func loadSubviews() {
        contentView.addSubview(bubbleView)
        bubbleView.addSubview(label)
    }

    // MARK: Layout

            return label
        }

        static var activityIndicator: UIActivityIndicatorView {
            let view = UIActivityIndicatorView(activityIndicatorStyle: .gray)
            view.hidesWhenStopped = true
            return view
        }

    }

}
