Bläddra i källkod

Added network checker implementation

Vadik Sirekanyan 7 år sedan
förälder
incheckning
5c62cee5d2

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -6,6 +6,7 @@
 
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 
     <application
         android:name=".App"

+ 19 - 0
app/src/main/java/me/vadik/knigopis/common/NetworkChecker.kt

@@ -0,0 +1,19 @@
+package me.vadik.knigopis.common
+
+import android.app.Application
+import me.vadik.knigopis.utils.systemConnectivityManager
+
+interface NetworkChecker {
+
+    fun isNetworkAvailable(): Boolean
+
+}
+
+class NetworkCheckerImpl(app: Application) : NetworkChecker {
+
+    private val connectivityManager = app.systemConnectivityManager
+
+    override fun isNetworkAvailable(): Boolean =
+        connectivityManager.activeNetworkInfo?.isConnectedOrConnecting ?: false
+
+}

+ 4 - 0
app/src/main/java/me/vadik/knigopis/utils/context.kt

@@ -3,6 +3,7 @@ package me.vadik.knigopis.utils
 import android.content.ClipboardManager
 import android.content.Context
 import android.content.Intent
+import android.net.ConnectivityManager
 import android.support.annotation.StringRes
 import android.view.inputmethod.InputMethodManager
 import android.widget.Toast
@@ -13,6 +14,9 @@ val Context.systemClipboardManager: ClipboardManager
 val Context.systemInputMethodManager: InputMethodManager
     get() = getAndroidSystemService(Context.INPUT_METHOD_SERVICE)
 
+val Context.systemConnectivityManager: ConnectivityManager
+    get() = getAndroidSystemService(Context.CONNECTIVITY_SERVICE)
+
 fun Context.startActivityOrNull(intent: Intent): Unit? =
     packageManager.resolveActivity(intent, 0)?.let {
         startActivity(intent)