java.lang.IllegalArgumentException: Navigation /action_abdFragment_to_abcFragment cannot be found from the current destination

Viewed 23

I am trying to navigate to Fragment abc from Fragment abd only if there is internet connection. I am using connectivity manager to check internet connection. Hereby attaching the code.

fun checkInternetConnection(isNetworkAvailable: (Boolean) -> Unit) {
    val capabilities =
        connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
    if (capabilities != null) {
        when {
            capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> {
                isNetworkAvailable(true)

            }
            capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> {
                isNetworkAvailable(true)
            }
            capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> {
                isNetworkAvailable(true)
            }
        }
    } else {
        isNetworkAvailable(false)
    }

    connectivityManager.registerDefaultNetworkCallback(object :
        ConnectivityManager.NetworkCallback() {
        override fun onLost(network: Network) {
            super.onLost(network)
            isNetworkAvailable(false)
        }

        override fun onAvailable(network: Network) {
            super.onAvailable(network)
            isNetworkAvailable(true)
        }
    })
} 

 //calling checkInternetConnection function
 checkInternetConnection({
            if (it) {
                activity?.runOnUiThread {
                    findNavController().navigate(R.id.action_abdFragment_to_abcFragment)
                }
            } else {
                activity?.runOnUiThread {
                    Snackbar.make(
                        binding.root,
                        Constants.NO_INTERNET_MESSAGE,
                        Snackbar.LENGTH_SHORT
                    ).show()
                }
            }
        })

It is showing error like this :

java.lang.IllegalArgumentException: Navigation action/destination abc.abcd:id/action_abdFragment_to_abcFragment cannot be found from the current destination Destination(abc.abcd:id/abcFragment) label=fragment_abc_fragmentclass=abc.abcd.ui.abcFragment

//navigation

<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_nav"
app:startDestination="@id/abcFragment">

<fragment
    android:id="@+id/abdFragment"
    android:name="abc.abcd.ui.abd.adbFragment"
    android:label="fragment_abd"
    tools:layout="@layout/fragment_abd" >
    <action
        android:id="@+id/action_abdFragment_to_abcFragment"
        app:destination="@id/abcFragment" />
</fragment>
<fragment
    android:id="@+id/abcFragment"
    android:name="abc.abcd.ui.abc.abcFragment"
    android:label="fragment_abc"
    tools:layout="@layout/fragment_abc" /></navigation>

seems like an issue with threading. Can someone help me to solve this?

0 Answers
Related