From e5ff129033d18e8367e0969c1a9c6f50ba5809c9 Mon Sep 17 00:00:00 2001 From: Mushegh98 Date: Fri, 22 May 2020 18:03:17 +0400 Subject: [PATCH] Create functionality checking internet connection after clicking sign in and add permission ACCESS_NETWORK_STATE. --- ui/src/main/AndroidManifest.xml | 1 + .../android/activity/LoginActivity.java | 35 ++++++++++++++++++- ui/src/main/res/values/strings.xml | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ui/src/main/AndroidManifest.xml b/ui/src/main/AndroidManifest.xml index be94795..709c179 100644 --- a/ui/src/main/AndroidManifest.xml +++ b/ui/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ package="com.wireguard.android" android:installLocation="internalOnly"> + diff --git a/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java b/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java index 4b539b0..fc1f7b2 100644 --- a/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java +++ b/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java @@ -1,10 +1,15 @@ package com.wireguard.android.activity; +import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import android.content.Context; import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkRequest; import android.os.Bundle; import android.util.Log; import android.view.View; @@ -31,6 +36,9 @@ public class LoginActivity extends AppCompatActivity { private EditText userName; private EditText password; private Button sign; + private ConnectivityManager connectivityManager; + private ConnectivityManager.NetworkCallback mCallback; + private boolean isConnected; @Override protected void onCreate(Bundle savedInstanceState) { @@ -38,13 +46,38 @@ public class LoginActivity extends AppCompatActivity { setContentView(R.layout.activity_login); initUI(); loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); + connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); + mCallback = new ConnectivityManager.NetworkCallback(){ + @Override public void onAvailable(@NonNull final Network network) { + isConnected = true; + } + + @Override public void onLost(@NonNull final Network network) { + isConnected = false; + } + }; sign.setOnClickListener(new OnClickListener() { @Override public void onClick(final View v) { - login(); + if (isConnected) { + login(); + } else { + Toast.makeText(LoginActivity.this, getString(R.string.turnInternet), Toast.LENGTH_LONG).show(); + } } }); } + @Override protected void onStart() { + super.onStart(); + final NetworkRequest request = new NetworkRequest.Builder().build(); + connectivityManager.registerNetworkCallback(request,mCallback); + } + + @Override protected void onPause() { + super.onPause(); + connectivityManager.unregisterNetworkCallback(mCallback); + } + private void initUI() { initViews(); } diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml index 89e9738..5bdabba 100644 --- a/ui/src/main/res/values/strings.xml +++ b/ui/src/main/res/values/strings.xml @@ -240,4 +240,5 @@ Not Connected Connect Disable Apps + Please turn on internet connection