Skip to content
Snippets Groups Projects
Commit f08a275a authored by shidqizh's avatar shidqizh
Browse files

network connectivity

parent 12a54fab
Branches
Tags
No related merge requests found
......@@ -2,9 +2,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
......
......@@ -7,6 +7,8 @@ import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.atm.bondowowo.data.model.LoginRequest
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
import com.atm.bondowowo.utils.NetworkUtils.apiService
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
......@@ -23,6 +25,10 @@ class LoginActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
CoroutineScope(Dispatchers.Main).launch {
if (isUserAuthenticated()) {
navigateToMainActivity()
......
......@@ -8,6 +8,8 @@ import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController
import com.atm.bondowowo.databinding.ActivityMainBinding
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
import com.atm.bondowowo.utils.NetworkUtils
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
......@@ -22,6 +24,10 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
CoroutineScope(Dispatchers.Main).launch {
if (!isUserAuthenticated()) {
navigateToLoginActivity()
......
......@@ -5,6 +5,8 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.atm.bondowowo.R
import com.atm.bondowowo.data.entity.Transaction
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import java.io.File
import java.io.FileOutputStream
......@@ -13,6 +15,9 @@ class ExportToFileActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// setContentView(R.layout.fragment_transaction)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
val transactions: ArrayList<Transaction>? = intent.getSerializableExtra("transactions") as? ArrayList<Transaction>
......
......@@ -8,9 +8,8 @@ import androidx.core.content.FileProvider
import com.atm.bondowowo.R
import java.io.File
import android.content.pm.PackageManager
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
class SendEmailActivity : AppCompatActivity() {
......@@ -19,6 +18,10 @@ class SendEmailActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.fragment_transaction)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
sendEmailWithAttachment2()
}
......
......@@ -5,6 +5,8 @@ import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.atm.bondowowo.MainActivity
import com.atm.bondowowo.R
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
class TransactionActivity : AppCompatActivity(), TransactionInputFragment.TransactionInputListener {
......@@ -12,6 +14,10 @@ class TransactionActivity : AppCompatActivity(), TransactionInputFragment.Transa
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_transaction)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
val transactionInputFragment = TransactionInputFragment()
// Get the id passed from the intent
......
package com.atm.bondowowo.utils
import android.app.AlertDialog
import android.content.Context
import android.content.DialogInterface
object DialogHelper {
fun showNoInternetDialog(context: Context) {
val builder = AlertDialog.Builder(context)
builder.setTitle("No Internet Connection")
builder.setMessage("Please check your internet connection and try again.")
builder.setPositiveButton("OK", DialogInterface.OnClickListener { dialog, _ ->
dialog.dismiss()
})
val dialog = builder.create()
dialog.show()
}
}
package com.atm.bondowowo.utils
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
object NetworkHelper {
fun isInternetAvailable(context: Context): Boolean {
var result = false
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
connectivityManager?.run {
connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)?.run {
result = when {
hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
else -> false
}
}
}
} else {
connectivityManager?.run {
connectivityManager.activeNetworkInfo?.run {
if (type == ConnectivityManager.TYPE_WIFI || type == ConnectivityManager.TYPE_MOBILE) {
result = true
}
}
}
}
return result
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment