diff --git a/app/src/main/java/com/example/android_hit/LoginActivity.kt b/app/src/main/java/com/example/android_hit/LoginActivity.kt index 7b69bc279f72626a9c3db7ca424174fc2c4917f9..b0e6e364867b5065249cce710164ed0418cd942f 100644 --- a/app/src/main/java/com/example/android_hit/LoginActivity.kt +++ b/app/src/main/java/com/example/android_hit/LoginActivity.kt @@ -1,10 +1,11 @@ package com.example.android_hit +import android.app.AlertDialog import android.content.Intent -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button +import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentManager import com.example.android_hit.utils.TokenManager @@ -45,4 +46,19 @@ class LoginActivity : AppCompatActivity() { val intent = Intent(this, MainActivity::class.java) startActivity(intent) } + + fun showNetworkDialog(): AlertDialog { + val alertDialogBuilder: AlertDialog.Builder = AlertDialog.Builder(this) + alertDialogBuilder.setTitle("No Internet Connection") + alertDialogBuilder.setMessage("Please check your internet connection") + alertDialogBuilder.setCancelable(false) + + alertDialogBuilder.setPositiveButton("OK") { dialog, _ -> + dialog.dismiss() + } + + val alertDialog: AlertDialog = alertDialogBuilder.create() + alertDialog.show() + return alertDialog + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/android_hit/LoginFragment.kt b/app/src/main/java/com/example/android_hit/LoginFragment.kt index b20d4e9a4f6d1429b885a8bc0596edd59e6f66d9..6427577f47c10230aaff45812a456890924d877c 100644 --- a/app/src/main/java/com/example/android_hit/LoginFragment.kt +++ b/app/src/main/java/com/example/android_hit/LoginFragment.kt @@ -3,15 +3,16 @@ package com.example.android_hit import android.annotation.SuppressLint import android.content.Context import android.content.Intent +import android.net.ConnectivityManager import android.os.Bundle import android.util.Log -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import android.widget.EditText import android.widget.Toast +import androidx.fragment.app.Fragment import com.example.android_hit.api.RetrofitClient import com.example.android_hit.data.LoginPayload import com.example.android_hit.data.LoginResponse @@ -57,15 +58,20 @@ class LoginFragment : Fragment() { goToHome() } - loginButton.setOnClickListener { - val emailValue = emailInput.text.toString() - val passwordValue = passwordInput.text.toString() - val passEncrypt = cryptoManager.encrypt(passwordValue) - userPref.putEmail("EMAIL", emailValue) - userPref.putPassword("PASS", passEncrypt) - val data = LoginPayload(emailValue,passwordValue) - login(data) + loginButton.setOnClickListener { + val context = context + if (context != null && isNetworkAvailable(context)) { + val emailValue = emailInput.text.toString() + val passwordValue = passwordInput.text.toString() + val passEncrypt = cryptoManager.encrypt(passwordValue) + userPref.putEmail("EMAIL", emailValue) + userPref.putPassword("PASS", passEncrypt) + val data = LoginPayload(emailValue,passwordValue) + login(data) + } else { + (activity as? LoginActivity)?.showNetworkDialog() + } } } @@ -131,6 +137,11 @@ class LoginFragment : Fragment() { } }) } + fun isNetworkAvailable(context: Context): Boolean { + val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val networkInfo = connectivityManager.activeNetworkInfo + return networkInfo != null && networkInfo.isConnected + } diff --git a/app/src/main/java/com/example/android_hit/MainActivity.kt b/app/src/main/java/com/example/android_hit/MainActivity.kt index 0488bc5beb7f0a33973780139a54a7a9261a31e9..23388d2b9bad5e0cd924afb55d58022b732b940a 100644 --- a/app/src/main/java/com/example/android_hit/MainActivity.kt +++ b/app/src/main/java/com/example/android_hit/MainActivity.kt @@ -3,11 +3,10 @@ package com.example.android_hit import android.app.AlertDialog import android.content.Intent import android.content.res.Configuration -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log -import android.view.View import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import com.example.android_hit.api.RetrofitClient import com.example.android_hit.data.LoginPayload @@ -101,7 +100,7 @@ class MainActivity : AppCompatActivity() { } } - private fun showNetworkDialog(): AlertDialog { + fun showNetworkDialog(): AlertDialog { val alertDialogBuilder: AlertDialog.Builder = AlertDialog.Builder(this) alertDialogBuilder.setTitle("No Internet Connection") alertDialogBuilder.setMessage("Please check your internet connection") diff --git a/app/src/main/java/com/example/android_hit/Scan.kt b/app/src/main/java/com/example/android_hit/Scan.kt index 8b48862380805df7646b882e917dca9ef20b617c..7ed471b90393f1fac2eca9360668848c5e06930c 100644 --- a/app/src/main/java/com/example/android_hit/Scan.kt +++ b/app/src/main/java/com/example/android_hit/Scan.kt @@ -3,11 +3,13 @@ package com.example.android_hit import android.Manifest import android.app.Activity import android.app.AlertDialog +import android.content.Context import android.content.DialogInterface import android.content.Intent import android.content.pm.PackageManager import android.graphics.Bitmap import android.graphics.ImageDecoder +import android.net.ConnectivityManager import android.net.Uri import android.os.Build import android.os.Bundle @@ -103,7 +105,10 @@ class Scan : Fragment() { val savedImageUri = saveImageToInternalStorage(pickedBitMap!!) pickedPhoto = savedImageUri Handler(Looper.getMainLooper()).postDelayed({ - showConfirmationDialog() + if(isNetworkAvailable(requireContext())){ + showConfirmationDialog() + } + }, 700) } @@ -149,7 +154,10 @@ class Scan : Fragment() { ivPicture.setImageBitmap(bitmap) pickedBitMap = bitmap Handler(Looper.getMainLooper()).postDelayed({ - showConfirmationDialog() + if(isNetworkAvailable(requireContext())){ + showConfirmationDialog() + } + }, 700) } @@ -302,4 +310,10 @@ class Scan : Fragment() { alertDialog.show() } + fun isNetworkAvailable(context: Context): Boolean { + val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val networkInfo = connectivityManager.activeNetworkInfo + return networkInfo != null && networkInfo.isConnected + } + } \ No newline at end of file