diff --git a/android/app/build.gradle b/android/app/build.gradle
index f66c063a658a9f3de0305935551153762a4de09e..176b90524a7522280ed9c9c9dd72e4d14b56bdf5 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -216,7 +216,7 @@ dependencies {
     implementation 'com.facebook.fresco:animated-gif:1.10.0'
     implementation 'com.facebook.fresco:animated-webp:1.10.0'
     implementation 'com.facebook.fresco:webpsupport:1.10.0'
-    implementation 'com.google.android.gms:play-services-gcm:16.0.0'
+    implementation 'com.google.android.gms:play-services-gcm:16.1.0'
     implementation('com.crashlytics.sdk.android:crashlytics:2.9.5@aar') {
         transitive = true;
     }
diff --git a/app/containers/MessageBox/index.js b/app/containers/MessageBox/index.js
index 5e9e84354dfeda74025989ed450babd67d6f31bb..1d8392fa16ae4ab3608aa3366b22b54433253149 100644
--- a/app/containers/MessageBox/index.js
+++ b/app/containers/MessageBox/index.js
@@ -155,10 +155,8 @@ export default class MessageBox extends Component {
 	}
 
 	onChangeText(text) {
-		const { typing } = this.props;
-
 		this.setInput(text);
-		typing(text.length > 0);
+		this.handleTyping(text.length > 0);
 
 		requestAnimationFrame(() => {
 			const { start, end } = this.component._lastNativeSelection;
@@ -420,6 +418,27 @@ export default class MessageBox extends Component {
 		}
 	}
 
+	handleTyping = (isTyping) => {
+		const { typing } = this.props;
+		if (!isTyping) {
+			if (this.typingTimeout) {
+				clearTimeout(this.typingTimeout);
+				this.typingTimeout = false;
+			}
+			typing(false);
+			return;
+		}
+
+		if (this.typingTimeout) {
+			return;
+		}
+
+		this.typingTimeout = setTimeout(() => {
+			typing(true);
+			this.typingTimeout = false;
+		}, 1000);
+	}
+
 	setInput = (text) => {
 		this.text = text;
 		this.component.setNativeProps({ text });
@@ -516,14 +535,14 @@ export default class MessageBox extends Component {
 
 	submit = async() => {
 		const {
-			typing, message: editingMessage, editRequest, onSubmit
+			message: editingMessage, editRequest, onSubmit
 		} = this.props;
 		const message = this.text;
 
 		this.clearInput();
 		this.closeEmoji();
 		this.stopTrackingMention();
-		typing(false);
+		this.handleTyping(false);
 		if (message.trim() === '') {
 			return;
 		}