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 @@ ...@@ -2,9 +2,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> 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.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_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" <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" /> android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
......
...@@ -7,6 +7,8 @@ import android.widget.EditText ...@@ -7,6 +7,8 @@ import android.widget.EditText
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.atm.bondowowo.data.model.LoginRequest 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 com.atm.bondowowo.utils.NetworkUtils.apiService
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
...@@ -23,6 +25,10 @@ class LoginActivity : AppCompatActivity() { ...@@ -23,6 +25,10 @@ class LoginActivity : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login) setContentView(R.layout.activity_login)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
CoroutineScope(Dispatchers.Main).launch { CoroutineScope(Dispatchers.Main).launch {
if (isUserAuthenticated()) { if (isUserAuthenticated()) {
navigateToMainActivity() navigateToMainActivity()
......
...@@ -8,6 +8,8 @@ import androidx.navigation.findNavController ...@@ -8,6 +8,8 @@ import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import com.atm.bondowowo.databinding.ActivityMainBinding 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 com.atm.bondowowo.utils.NetworkUtils
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
...@@ -22,6 +24,10 @@ class MainActivity : AppCompatActivity() { ...@@ -22,6 +24,10 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater) binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
CoroutineScope(Dispatchers.Main).launch { CoroutineScope(Dispatchers.Main).launch {
if (!isUserAuthenticated()) { if (!isUserAuthenticated()) {
navigateToLoginActivity() navigateToLoginActivity()
......
...@@ -5,6 +5,8 @@ import android.widget.Toast ...@@ -5,6 +5,8 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.atm.bondowowo.R import com.atm.bondowowo.R
import com.atm.bondowowo.data.entity.Transaction 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 org.apache.poi.xssf.usermodel.XSSFWorkbook
import java.io.File import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
...@@ -13,6 +15,9 @@ class ExportToFileActivity : AppCompatActivity() { ...@@ -13,6 +15,9 @@ class ExportToFileActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
// setContentView(R.layout.fragment_transaction) // setContentView(R.layout.fragment_transaction)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
val transactions: ArrayList<Transaction>? = intent.getSerializableExtra("transactions") as? ArrayList<Transaction> val transactions: ArrayList<Transaction>? = intent.getSerializableExtra("transactions") as? ArrayList<Transaction>
......
...@@ -8,9 +8,8 @@ import androidx.core.content.FileProvider ...@@ -8,9 +8,8 @@ import androidx.core.content.FileProvider
import com.atm.bondowowo.R import com.atm.bondowowo.R
import java.io.File import java.io.File
import android.content.pm.PackageManager import android.content.pm.PackageManager
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
class SendEmailActivity : AppCompatActivity() { class SendEmailActivity : AppCompatActivity() {
...@@ -19,6 +18,10 @@ class SendEmailActivity : AppCompatActivity() { ...@@ -19,6 +18,10 @@ class SendEmailActivity : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.fragment_transaction) setContentView(R.layout.fragment_transaction)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
sendEmailWithAttachment2() sendEmailWithAttachment2()
} }
......
...@@ -5,6 +5,8 @@ import android.os.Bundle ...@@ -5,6 +5,8 @@ import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.atm.bondowowo.MainActivity import com.atm.bondowowo.MainActivity
import com.atm.bondowowo.R import com.atm.bondowowo.R
import com.atm.bondowowo.utils.DialogHelper
import com.atm.bondowowo.utils.NetworkHelper
class TransactionActivity : AppCompatActivity(), TransactionInputFragment.TransactionInputListener { class TransactionActivity : AppCompatActivity(), TransactionInputFragment.TransactionInputListener {
...@@ -12,6 +14,10 @@ class TransactionActivity : AppCompatActivity(), TransactionInputFragment.Transa ...@@ -12,6 +14,10 @@ class TransactionActivity : AppCompatActivity(), TransactionInputFragment.Transa
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_transaction) setContentView(R.layout.activity_transaction)
if (!NetworkHelper.isInternetAvailable(this)) {
DialogHelper.showNoInternetDialog(this)
}
val transactionInputFragment = TransactionInputFragment() val transactionInputFragment = TransactionInputFragment()
// Get the id passed from the intent // 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