From c63ca6a7e07f6bcc3e6d7dc8d9605d3e9574c81e Mon Sep 17 00:00:00 2001 From: Chris Duarte Date: Thu, 7 Jun 2018 11:47:10 -0700 Subject: [PATCH] Ping server after setting app offline/online. Also include timeout (#1739) * Ping server after setting app offline/online. Also include timeout * Add missing semicolon --- app/utils/network.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/utils/network.js b/app/utils/network.js index cd8253911..08527d162 100644 --- a/app/utils/network.js +++ b/app/utils/network.js @@ -1,7 +1,11 @@ import {NetInfo} from 'react-native'; +import RNFetchBlob from 'react-native-fetch-blob'; + import {Client4} from 'mattermost-redux/client'; +const PING_TIMEOUT = 10000; + export async function checkConnection(isConnected) { if (Client4.getBaseRoute() === '/api/v4') { // If we don't have a server yet, return the default implementation @@ -12,7 +16,7 @@ export async function checkConnection(isConnected) { const server = `${Client4.getBaseRoute()}/system/ping?time=${Date.now()}`; try { - await fetch(server, {method: 'get'}); + await RNFetchBlob.config({timeout: PING_TIMEOUT}).fetch('GET', server); return true; } catch (error) { return false; @@ -21,6 +25,10 @@ export async function checkConnection(isConnected) { function handleConnectionChange(onChange) { return async (isConnected) => { + // Set device internet connectivity immediately + onChange(isConnected); + + // Check if connected to server const result = await checkConnection(isConnected); onChange(result); };